Verileriniz bir TFX işlem hattında olduğunda, onu analiz etmek ve dönüştürmek için TFX bileşenlerini kullanabilirsiniz. Bu araçları bir modeli eğitmeden önce bile 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 atması için etiketler özellik olarak ele alınır.
- Beklediğiniz aralığın dışında değerlere sahip özellikler.
- Veri anormallikleri.
- Daha etkili özellik kümeleri tasarlamak için. Örneğin, şunları tanımlayabilirsiniz:
- Özellikle bilgilendirici özellikler.
- Yedekli özellikler.
- Öğrenmeyi yavaşlatabilecek ölçek olarak çok büyük farklılıklar gösteren özellikler.
- Çok az benzersiz tahmin bilgisine sahip olan veya hiç olmayan özellikler.
TFX araçları hem veri hatalarının bulunmasına hem de özellik mühendisliğine yardımcı olabilir.
TensorFlow Veri Doğrulaması
Genel Bakış
TensorFlow Veri Doğrulaması, eğitim ve veri sunumundaki anormallikleri tanımlar ve verileri inceleyerek otomatik olarak bir şema oluşturabilir. Bileşen, verilerdeki farklı anormallik sınıflarını algılayacak şekilde yapılandırılabilir. Bu olabilir
- Veri istatistiklerini kullanıcının beklentilerini kodlayan bir şemayla karşılaştırarak geçerlilik kontrolleri gerçekleştirin.
- Eğitim ve sunum verilerindeki örnekleri karşılaştırarak eğitim sunumundaki çarpıklığı tespit edin.
- Bir dizi veriye bakarak veri kaymasını tespit edin.
Bu işlevlerin her birini bağımsız olarak belgeleriz:
Şema Tabanlı Örnek Doğrulama
TensorFlow Veri Doğrulaması, veri istatistiklerini bir şemayla karşılaştırarak giriş verilerindeki herhangi bir anormalliği 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.
Gelişmiş Şema Özellikleri
Bu bölüm, özel kurulumlara yardımcı olabilecek daha gelişmiş şema yapılandırmasını kapsar.
Seyrek Özellikler
Örneklerdeki seyrek özelliklerin kodlanması, genellikle tüm Örnekler için aynı değerliliğe sahip olması beklenen birden çok Özelliği sunar. Örneğin seyrek özellik:
, indeks ve değer:
WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
için ayrı Özellikler kullanılarak kodlanacak ve indeks ve değer özelliğinin değerliliğinin tüm Örnekler için eşleşmesi kısıtlamasıyla. Bu kısıtlama, bir sparse_feature:
WeightedCategoriesIndex = ['CategoryA', 'CategoryX'] WeightedCategoriesValue = [0.3, 0.7]
tanımlanarak şemada açık hale getirilebilir
sparse_feature { name: 'WeightedCategories' index_feature { name: 'WeightedCategoriesIndex' } value_feature { name: 'WeightedCategoriesValue' } }
Seyrek özellik tanımı, şemada bulunan özelliklere atıfta bulunan bir veya daha fazla indeks ve bir değer özelliği gerektirir. Seyrek özelliklerin açıkça tanımlanması, TFDV'nin başvurulan tüm özelliklerin değerlerinin eşleşip eşleşmediğini kontrol etmesini sağlar.
Bazı kullanım senaryoları, Özellikler arasında benzer değerlik kısıtlamaları getirir, ancak seyrek bir özelliği mutlaka kodlamaz. Seyrek özelliği kullanmak sizi engellemelidir, ancak ideal değildir.
Şema Ortamları
Varsayılan olarak doğrulamalar, bir ardışık düzen içindeki tüm Örneklerin tek bir şemaya bağlı olduğunu varsayar. Bazı durumlarda, 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 varsayın. Bu şu şekilde ifade edilebilir:
- Şemada iki farklı ortam tanımlayın: ["HİZMET", "EĞİTİM"] ve "ETİKET" i yalnızca "EĞİTİM" ortamıyla ilişkilendirin.
- Eğitim verilerini "EĞİTİM" ortamı ile ve sunum verilerini "SERVING" ortamı ile ilişkilendirin.
Şema Oluşturma
Giriş veri şeması, TensorFlow Şemasının bir örneği olarak belirtilir.
Bir geliştirici, sıfırdan manuel olarak bir şema oluşturmak yerine, TensorFlow Veri Doğrulamasının otomatik şema yapısına güvenebilir. Spesifik olarak, TensorFlow Veri Doğrulaması, ardışık düzen içinde bulunan eğitim verileri üzerinden hesaplanan istatistiklere dayalı olarak otomatik olarak bir başlangıç şeması oluşturur. Kullanıcılar, bu otomatik olarak oluşturulmuş şemayı kolayca inceleyebilir, gerektiğinde değiştirebilir, bir sürüm kontrol sistemine kontrol edebilir ve daha fazla doğrulama için açık bir şekilde boru hattına itebilir.
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 göre otomatik bir şema oluşturmayı tetikler:
Bir şema zaten otomatik olarak oluşturulmuşsa, olduğu gibi kullanılır.
Aksi takdirde, TensorFlow Veri Doğrulama, 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 bunu gerektiği gibi gözden geçirmesi ve değiştirmesi beklenir.
Genel Bakış
TensorFlow Data Validation, eğitim ve sunum verileri arasındaki dağılım çarpıklığını tespit edebilir. Dağılım çarpıklığı, eğitim verileri için özellik değerlerinin dağıtımı verileri sunmaktan önemli ölçüde farklı olduğunda ortaya çıkar. Dağıtım çarpıklığının en önemli nedenlerinden biri, istenen derlemedeki ilk veri eksikliğinin üstesinden gelmek için veri oluşturma eğitimi için tamamen farklı bir topluluk kullanmaktır. Diğer bir neden, üzerinde eğitim için hizmet verisinin yalnızca bir alt örneğini seçen hatalı bir örnekleme mekanizmasıdır.
Example Scenario For instance, in order to compensate for an underrepresented slice of data, if a biased sampling is used without upweighting the downsampled examples appropriately, the distribution of feature values between training and serving data gets artificially skewed.
Eğitim hizmeti çarpıklığı algılamasını yapılandırma hakkında bilgi için TensorFlow Veri Doğrulama Başlangıç Kılavuzuna bakın.
Sürüklenme Algılama
Kayma algılama, farklı eğitim verileri günleri gibi ardışık veri aralıkları arasında (yani, aralık N ve aralık N + 1 arasında) desteklenir. Sürüklenmeyi kategorik özellikler için L-sonsuz mesafe cinsinden ve sayısal özellikler için yaklaşık Jensen-Shannon uzaklaşması cinsinden ifade ediyoruz. Sapma kabul edilebilir olandan daha yüksek olduğunda uyarılar almanız için eşik mesafesini ayarlayabilirsiniz. Doğru mesafeyi ayarlamak, genellikle alan bilgisi ve deneysellik gerektiren yinelemeli bir süreçtir.
Verilerinizi Kontrol Etmek İçin Görselleştirmeleri Kullanma
TensorFlow Veri Doğrulaması, özellik değerlerinin dağılımını görselleştirmek için araçlar sağlar. Kullanarak bir Jupyter defterde bu dağılımlarını inceleyerek Façetaları veri içeren genel sorunları yakalayabilirsiniz.
Şüpheli Dağıtımları Belirleme
Özellik değerlerinin şüpheli dağılımlarını aramak için Özelliklere Genel Bakış ekranı kullanarak verilerinizdeki yaygın hataları belirleyebilirsiniz.
Dengesiz Veriler
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 hatanız olabilir. Façetlere Genel Bakış'taki dengesiz unsurları tespit etmek için, "Sırala" açılır menüsünden "Tekdüzelik Olmayan" seçeneğini seçin.
En dengesiz özellikler, her özellik türü listesinin en üstünde listelenecektir. Örneğin, aşağıdaki ekran görüntüsü, "Sayısal Özellikler" listesinin en üstünde, tümü sıfır olan bir özelliği ve son derece dengesiz olan bir saniyeyi göstermektedir:
Düzgün Dağıtılmış Veriler
Düzgün dağıtılmış bir özellik, tüm olası değerlerin aynı frekansa yakın göründüğü bir özelliktir. Dengesiz verilerde olduğu gibi, bu dağılım doğal olarak gerçekleşebilir, ancak veri hataları tarafından da üretilebilir.
Bir Özelliklere Genel Bakışta tek tip olarak dağıtılmış özellikleri tespit etmek için, "Sırala" açılır menüsünden "Tekdüzelik Olmama" yı seçin ve "Ters sıralama" 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. Dolayısıyla, dize verileri için tek tip 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ış Veriler Üretebilen Hatalar
Eşit şekilde 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 temsillere sahip 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.
Özellik olarak "satır numarası" gibi endeksler dahil. Burada yine birçok benzersiz değeriniz var.
Kayıp veri
Bir özelliğin 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 özelliğin eksik değerleri olan örneklerin yüzdesini görmek için "eksik" sütununa bakın.
Bir veri hatası da eksik özellik değerlerine 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 özellik satırının sağındaki grafiğe bakın. Grafik, özellik için değer listesi uzunluklarının 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 Farklılıklar
Özellikleriniz ölçek açısından büyük farklılıklar gösteriyorsa, model öğrenmede zorluk yaşayabilir. Örneğin, bazı özellikler 0 ile 1 arasında ve diğerleri 0 ile 1.000.000.000 arasında değişiyorsa, ölçekte büyük bir farkınız olur. Büyük ölçüde değişen ö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 Etiketli Etiketler
TensorFlow'un Tahmincilerinin etiket olarak kabul ettikleri veri türlerine ilişkin kısıtlamaları vardır. Örneğin, ikili sınıflandırıcılar genellikle yalnızca {0, 1} etiketleriyle çalışır.
Özelliklere Genel Bakış'taki etiket değerlerini inceleyin ve Tahmin Edicilerin gereksinimlerine uygun olduklarından emin olun.