Verileriniz bir TFX ardışık düzeninde olduğunda, onu analiz etmek ve dönüştürmek için TFX bileşenlerini kullanabilirsiniz. Bir modeli eğitmeden önce bile bu araçları kullanabilirsiniz.
Verilerinizi analiz etmek ve dönüştürmek için birçok neden vardır:
- Verilerinizdeki sorunları bulmak için. Yaygın sorunlar şunları içerir:
- Boş değerlere sahip özellikler gibi eksik veriler.
- Modelinizin eğitim sırasında doğru cevaba göz atabilmesi için etiketler özellik olarak işlenir.
- Beklediğiniz aralığın dışında değerlere sahip özellikler.
- Veri anormallikleri.
- Öğrenilen transfer modeli, eğitim verileriyle eşleşmeyen ön işlemeye sahiptir.
- Daha etkili özellik kümeleri tasarlamak için. Örneğin, şunları tanımlayabilirsiniz:
- Özellikle bilgilendirici özellikler.
- Gereksiz özellikler.
- Öğrenmeyi yavaşlatabilecek kadar geniş ölçekte değişen özellikler.
- Çok az veya hiç benzersiz öngörü bilgisi olmayan özellikler.
TFX araçları hem veri hatalarını bulmaya hem de özellik mühendisliğine yardımcı olabilir.
TensorFlow Veri Doğrulaması
genel bakış
TensorFlow Veri Doğrulama, eğitim ve veri sunmadaki anormallikleri tanımlar ve verileri inceleyerek otomatik olarak bir şema oluşturabilir. Bileşen, verilerdeki farklı anormallik sınıflarını tespit edecek şekilde yapılandırılabilir. Bu olabilir
- Veri istatistiklerini kullanıcının beklentilerini kodlayan bir şemayla karşılaştırarak geçerlilik kontrolleri yapın.
- Eğitim ve sunum verilerindeki örnekleri karşılaştırarak eğitim-hizmet eğriliğini tespit edin.
- Bir dizi veriye bakarak veri kaymasını tespit edin.
Bu işlevlerin her birini bağımsız olarak belgeliyoruz:
Şema Tabanlı Örnek Doğrulama
TensorFlow Veri Doğrulaması, veri istatistiklerini bir şemayla karşılaştırarak giriş verilerindeki anormallikleri tanımlar. Şema, veri türleri veya kategorik değerler gibi girdi verilerinin karşılaması beklenen özellikleri kodlar ve kullanıcı tarafından değiştirilebilir veya değiştirilebilir.
Tensorflow Veri Doğrulaması tipik olarak TFX ardışık düzeni bağlamında birden çok kez çağrılır: (i) ExampleGen'den elde edilen her bölme için, (ii) Transform tarafından kullanılan tüm önceden dönüştürülmüş veriler için ve (iii) tarafından oluşturulan tüm dönüşüm sonrası veriler için Dönüştür. Transform (ii-iii) bağlamında çağrıldığında, istatistik seçenekleri ve şema tabanlı kısıtlamalar, stats_options_updater_fn
tanımlanarak ayarlanabilir. Bu özellikle yapılandırılmamış verileri (örneğin metin özellikleri) doğrularken kullanışlıdır. Örnek için kullanıcı koduna bakın.
Gelişmiş Şema Özellikleri
Bu bölüm, özel kurulumlarda yardımcı olabilecek daha gelişmiş şema yapılandırmasını kapsar.
Seyrek Özellikler
Örneklerdeki seyrek özellikleri kodlamak, genellikle tüm Örnekler için aynı değere sahip olması beklenen birden çok Özelliği tanıtır. Örneğin, seyrek özellik:
WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
dizin ve değer için ayrı Özellikler kullanılarak kodlanır:
WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
tutucu2, dizin ve değer özelliğinin değerliğinin tüm Örnekler için eşleşmesi gerektiği kısıtlamasıyla. Bu kısıtlama, bir sparse_feature tanımlanarak şemada açık hale getirilebilir:
sparse_feature {
name: 'WeightedCategories'
index_feature { name: 'WeightedCategoriesIndex' }
value_feature { name: 'WeightedCategoriesValue' }
}
Seyrek özellik tanımı, şemada var olan özelliklere atıfta bulunan bir veya daha fazla dizin ve bir değer özelliği gerektirir. Seyrek özelliklerin açık bir şekilde tanımlanması, TFDV'nin atıfta bulunulan tüm özelliklerin değerlerinin eşleştiğini kontrol etmesini sağlar.
Bazı kullanım durumları, Özellikler arasında benzer değerlik kısıtlamaları getirir, ancak mutlaka seyrek bir özelliği kodlamaz. Seyrek özelliğinin kullanılması engelinizi kaldırmalıdır, ancak ideal değildir.
Şema Ortamları
Varsayılan doğrulamalar, bir işlem hattındaki tüm Örneklerin tek bir şemaya bağlı olduğunu varsayar. Bazı durumlarda, küçük şema varyasyonları eklemek gereklidir, örneğin etiket olarak kullanılan özellikler eğitim sırasında gereklidir (ve doğrulanmalıdır), ancak sunum sırasında eksiktir. Ortamlar bu tür gereksinimleri ifade etmek için kullanılabilir, özellikle default_environment()
, in_environment()
, not_in_environment()
.
Örneğin, eğitim için 'LABEL' adlı bir özelliğin gerekli olduğunu, ancak sunumda eksik olması beklendiğini varsayalım. Bu şu şekilde ifade edilebilir:
- Şemada iki farklı ortam tanımlayın: ["SERVING", "TRAINING"] ve "LABEL" öğesini yalnızca "TRAINING" ortamıyla ilişkilendirin.
- Eğitim verilerini "TRAINING" ortamıyla ve servis verilerini "SERVING" ortamıyla ilişkilendirin.
Şema Oluşturma
Giriş verisi şeması, TensorFlow Şemasının bir örneği olarak belirtilir.
Bir geliştirici, sıfırdan manuel olarak bir şema oluşturmak yerine, TensorFlow Data Validation'ın otomatik şema yapısına güvenebilir. Spesifik olarak, TensorFlow Data Validation, işlem hattında bulunan eğitim verileri üzerinden hesaplanan istatistiklere dayalı olarak otomatik olarak bir başlangıç şeması oluşturur. Kullanıcılar, bu otomatik oluşturulmuş şemayı basitçe gözden geçirebilir, gerektiği gibi değiştirebilir, bir sürüm kontrol sisteminde kontrol edebilir ve daha fazla doğrulama için açıkça ardışık düzene aktarabilir.
TFDV, otomatik olarak bir şema oluşturmak için infer_schema()
içerir. Örneğin:
schema = tfdv.infer_schema(statistics=train_stats)
tfdv.display_schema(schema=schema)
Bu, aşağıdaki kurallara dayalı olarak otomatik bir şema oluşturmayı tetikler:
Bir şema zaten otomatik olarak oluşturulmuşsa, olduğu gibi kullanılır.
Aksi takdirde, TensorFlow Data Validation, mevcut veri istatistiklerini inceler ve veriler için uygun bir şema hesaplar.
Not: Otomatik oluşturulan şema en iyi çabadır ve yalnızca verilerin temel özelliklerini çıkarmaya çalışır. Kullanıcıların gerektiğinde gözden geçirmesi ve değiştirmesi beklenir.
Eğitim-Sunma Eğrilik Algılama
genel bakış
TensorFlow Veri Doğrulaması, eğitim ve sunum verileri arasındaki dağılım çarpıklığını algılayabilir. Eğitim verileri için özellik değerlerinin dağılımı, sunulan verilerden önemli ölçüde farklı olduğunda, dağıtım çarpıklığı meydana gelir. Dağılım çarpıklığının temel nedenlerinden biri, istenen bütünlükteki ilk veri eksikliğinin üstesinden gelmek için veri üretimi için tamamen farklı bir bütünce kullanılmasıdır. Diğer bir neden de, üzerinde çalışılacak hizmet verisinin yalnızca bir alt örneğini seçen hatalı bir örnekleme mekanizmasıdır.
Örnek Senaryo
Eğitim-hizmet eğriliği algılamayı yapılandırma hakkında bilgi için TensorFlow Veri Doğrulama Başlangıç Kılavuzu'na bakın.
Sürüklenme Algılama
Sürüklenme algılama, örneğin farklı eğitim verileri günleri arasında olduğu gibi ardışık veri aralıkları arasında (yani, aralık N ve aralık N+1 arasında) desteklenir. Kategorik öznitelikler için L-sonsuz uzaklığı cinsinden kaymayı ve sayısal öznitelikler için yaklaşık Jensen-Shannon sapmasını ifade ediyoruz. Eşik mesafesini, sapma kabul edilebilirden daha yüksek olduğunda uyarı alacak şekilde ayarlayabilirsiniz. Doğru mesafeyi ayarlamak, tipik olarak, alan bilgisi ve deney gerektiren yinelemeli bir süreçtir.
Sürüklenme algılamayı yapılandırma hakkında bilgi için TensorFlow Veri Doğrulama Başlangıç Kılavuzu'na bakın.
Verilerinizi Kontrol Etmek İçin Görselleştirmeleri Kullanma
TensorFlow Data Validation, özellik değerlerinin dağılımını görselleştirmek için araçlar sağlar. Bu dağılımları bir Jupyter not defterinde Facets kullanarak inceleyerek, verilerle ilgili genel sorunları yakalayabilirsiniz.
Şüpheli Dağılımların Belirlenmesi
Özellik değerlerinin şüpheli dağılımlarını aramak için bir Yönlere Genel Bakış ekranı kullanarak verilerinizdeki yaygın hataları belirleyebilirsiniz.
Dengesiz Veri
Dengesiz bir özellik, bir değerin baskın olduğu bir özelliktir. Dengesiz özellikler doğal olarak ortaya çıkabilir, ancak bir özellik her zaman aynı değere sahipse, bir veri hatası yaşayabilirsiniz. Bir Yönlere Genel Bakışta dengesiz özellikleri tespit etmek için, "Sıralama ölçütü" açılır menüsünden "Tekdüzeliksizlik"i seçin.
En dengesiz özellikler, her özellik türü listesinin başında listelenecektir. Örneğin, aşağıdaki ekran görüntüsü, "Sayısal Özellikler" listesinin en üstünde, tamamı sıfır olan bir özelliği ve son derece dengesiz bir saniyeyi gösterir:
Düzgün Dağıtılmış Veriler
Düzgün dağılmış bir özellik, tüm olası değerlerin aynı frekansa yakın olarak göründüğü bir özelliktir. Dengesiz verilerde olduğu gibi, bu dağılım doğal olarak meydana gelebilir, ancak veri hataları tarafından da üretilebilir.
Bir Yönlere Genel Bakışta tek tip dağıtılmış özellikleri tespit etmek için, "Sıralama ölçütü" açılır menüsünden "Tekdüzeliksizlik"i seçin ve "Ters sıra" onay kutusunu işaretleyin:
Dize verileri, 20 veya daha az benzersiz değer varsa çubuk grafikler kullanılarak ve 20'den fazla benzersiz değer varsa kümülatif dağılım grafiği olarak temsil edilir. Bu nedenle, dize verileri için, tek biçimli dağılımlar, yukarıdaki gibi düz çubuk grafikler veya aşağıdaki gibi düz çizgiler olarak görünebilir:
Düzgün Dağıtılmış Veri Üretebilen Hatalar
Tek tip olarak dağıtılmış veriler üretebilen bazı yaygın hatalar şunlardır:
Tarihler gibi dize olmayan veri türlerini temsil etmek için dizeleri kullanma. Örneğin, "2017-03-01-11-45-03" gibi temsillerle bir tarih-saat özelliği için birçok benzersiz değere sahip olacaksınız. Benzersiz değerler eşit olarak dağıtılacaktır.
Özellikler olarak "satır numarası" gibi endeksler dahil. Burada yine birçok benzersiz değeriniz var.
Kayıp veri
Bir özelliğin değerlerinin tamamen eksik olup olmadığını kontrol etmek için:
- "Sıralama ölçütü" açılır menüsünden "Eksik miktar/sıfır"ı seçin.
- "Ters sıra" onay kutusunu işaretleyin.
- Bir özellik için eksik değerlere sahip örneklerin yüzdesini görmek için "eksik" sütununa bakın.
Bir veri hatası, eksik özellik değerlerine de neden olabilir. Örneğin, bir özelliğin değer listesinin her zaman üç öğeye sahip olmasını bekleyebilir ve bazen yalnızca bir öğeye sahip olduğunu keşfedebilirsiniz. Eksik değerleri veya özellik değeri listelerinin beklenen sayıda öğeye sahip olmadığı diğer durumları kontrol etmek için:
Sağdaki "Gösterilecek grafik" açılır menüsünden "Değer listesi uzunluğu"nu seçin.
Her bir özellik satırının sağındaki grafiğe bakın. Grafik, özellik için değer listesi uzunlukları aralığını gösterir. Örneğin, aşağıdaki ekran görüntüsünde vurgulanan satır, bazı sıfır uzunluklu değer listelerine sahip bir özelliği gösterir:
Unsurlar Arasındaki Ölçekte Büyük Farklar
Özellikleriniz ölçekte büyük farklılıklar gösteriyorsa, model öğrenmede zorluk çekebilir. Örneğin, bazı özellikler 0 ile 1 arasında ve diğerleri 0 ile 1.000.000.000 arasında değişiyorsa, büyük bir ölçek farkı var demektir. Çok çeşitli ölçekleri bulmak için özellikler arasında "maks" ve "min" sütunlarını karşılaştırın.
Bu geniş varyasyonları azaltmak için özellik değerlerini normalleştirmeyi düşünün.
Geçersiz Etiketlere Sahip Etiketler
TensorFlow'un Tahmincileri, etiket olarak kabul ettikleri veri türü üzerinde kısıtlamalara sahiptir. Örneğin, ikili sınıflandırıcılar genellikle yalnızca {0, 1} etiketleriyle çalışır.
Yönlere Genel Bakış bölümündeki etiket değerlerini gözden geçirin ve Tahmin Edicilerin gereksinimlerine uyduklarından emin olun.