Ukrayna için DevFest'te bize katılın 14-15 Haziran Online Şimdi kaydolun

TensorFlow Veri Doğrulaması: Verilerinizi kontrol etme ve analiz etme

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. Yapabilir

  1. Veri istatistiklerini kullanıcının beklentilerini kodlayan bir şemayla karşılaştırarak geçerlilik kontrolleri yapın.
  2. Eğitim ve sunum verilerindeki örnekleri karşılaştırarak eğitim-hizmet eğriliğini tespit edin.
  3. 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 bağlamında çağrıldığında (-iii ii), istatistik seçenekleri ve şema tabanlı kısıtlamalar tanımlayarak ayarlanabilir stats_options_updater_fn . Bu özellikle yapılandırılmamış verileri (örneğin metin özellikleri) doğrularken kullanışlıdır. Bkz kullanıcı kodu bir örnek için.

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)]
: indeksi ve değeri için ayrı Özellikler kullanılarak kodlanmış olacağını

WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
endeks ve değer özelliği değerlik tüm Örnekler için eşleşmesi gerektiğini kısıtlama. Bu kısıtlama, bir sparse_feature tanımlayarak şemada belirgin kılınan

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, özellikle bu gerekleri, ifade etmek için kullanılabilir 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ş veri şeması TensorFlow bir örneği olarak belirtilen Şema .

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 içerir infer_schema() otomatik olarak bir şema oluşturmak için. Ö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

Bkz TensorFlow Veri Doğrulama Başlayın Kılavuzu eğitim-hizmet veren çarpık algılama yapılandırma hakkında bilgi için.

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. Biz açısından sürüklenme ifade L-sonsuzluk mesafesi kategorik özellikler ve yaklaşık için Jensen-Shannon sapma sayısal özellikler için. 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.

Bkz TensorFlow Veri Doğrulama Başlayın Kılavuzu sürüklenme algılama yapılandırma hakkında bilgi için.

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. Kullanarak bir Jupyter defterde bu dağılımlarını inceleyerek Façetaları veri içeren genel sorunları yakalayabilirsiniz.

Özellik istatistikleri

Şü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:

Dengesiz verilerin görselleştirilmesi

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:

Tek tip verilerin histogramı

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:

Çizgi grafiği: tek tip verilerin kümülatif dağılımı

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:

  1. "Sıralama ölçütü" açılır menüsünden "Eksik miktar/sıfır"ı seçin.
  2. "Ters sıra" onay kutusunu işaretleyin.
  3. 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:

  1. Sağdaki "Gösterilecek grafik" açılır menüsünden "Değer listesi uzunluğu"nu seçin.

  2. 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:

Sıfır uzunluklu özellik değer listeleri ile özellik içeren Yönlere Genel Bakış ekranı

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ÖNÜ Genel Bakış etiket değerleri inceleyin ve emin onlar uygun hale Tahmincilerinin gereklerine .