SIG TFX-Addons topluluğuna katılın ve TFX'in daha da iyi olmasına yardımcı olun! SIG TFX Eklentilerine Katılın

TensorFlow Veri Doğrulama: Verilerinizi kontrol etme ve analiz etme

Verileriniz bir TFX işlem hattında olduğunda, onu analiz etmek ve dönüştürmek için TFX bileşenlerini kullanabilirsiniz. Bir modeli eğitmeden önce 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 atması için etiketler özellik olarak ele alınır.
    • Beklediğiniz aralığın dışında değerlere sahip özellikler.
    • Veri anormallikleri.
    • Öğrenilen aktarım modeli, eğitim verileriyle eşleşmeyen ön işleme sahiptir.
  • 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 bilgisi içeren veya hiç içermeyen ö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. Yapabilir

  1. Veri istatistiklerini kullanıcının beklentilerini kodlayan bir şemayla karşılaştırarak geçerlilik kontrolleri gerçekleştirin.
  2. Eğitim ve sunum verilerindeki örnekleri karşılaştırarak eğitim sunumundaki çarpıklığı tespit edin.
  3. Bir dizi veriye bakarak veri sürüklenmesini 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.

Tensorflow Veri Doğrulaması genellikle TFX ardışık düzeni bağlamında birden çok kez çağrılır: (i) ExampleGen'den elde edilen her bölünme için, (ii) Dönüştürme 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üştürme sonrası veriler için Dönüşüm. 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 stats_options_updater_fn . Bu, özellikle yapılandırılmamış verileri (ör. 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 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 Özellik sunar. Örneğin seyrek özellik:


WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
, endeks ve değer:

WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
için ayrı Özellikler kullanılarak kodlanacak ve endeks 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 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 dizin 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, özellikle default_environment() , in_environment() , not_in_environment() gibi gereksinimleri ifade etmek için kullanılabilir.

Ö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ş verileri ş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ğrulamanı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 ilk şema oluşturur. Kullanıcılar bu otomatik oluşturulmuş şemayı kolayca inceleyebilir, gerektiği gibi 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 olarak 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.

Eğitim-Sunum Eğiklik Algılama

Genel Bakış

TensorFlow Veri Doğrulaması, 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 almak için yalnızca sunum verilerinin bir alt örneğini seçen hatalı bir örnekleme mekanizmasıdır.

Örnek Senaryo

Eğitim sunan çarpıklık 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

Kayma algılama, farklı eğitim verileri günleri gibi ardışık veri aralıkları arasında (yani, aralık N ile aralık N + 1 arasında) desteklenir. Sürüklenmeyi kategorik özellikler için L-sonsuz mesafesi 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, tipik olarak alan bilgisi ve deneyim gerektiren yinelemeli bir süreçtir.

Kayma algılamayı yapılandırma hakkında bilgi için TensorFlow Veri Doğrulamaya Başlarken Kılavuzuna bakın.

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.

Özellik istatistikleri

Şüpheli Dağıtımları Tespit Etme

Özellik değerlerinin şüpheli dağılımlarını aramak için Özelliklere Genel Bakış ekranını 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 hatasıyla karşılaşabilirsiniz. Façetlere Genel Bakış'taki dengesiz unsurları tespit etmek için, "Sıralama Ölçütü" açılır menüsünden "Tekdüzelik Olmama" yı 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, tamamı sıfır olan bir özelliği ve son derece dengesiz olan bir saniyeyi gösterir:

Dengesiz verilerin görselleştirilmesi

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:

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. Dolayısıyla, dizi 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:

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

Eşit Şekilde 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:

  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 ö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:

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

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

Sıfır uzunluklu özellik değeri listelerine sahip özellikli Facets Overview ekranı

Unsurlar Arasındaki Ölçekte Büyük Farklılıklar

Özellikleriniz ölçek olarak büyük farklılıklar gösteriyorsa, model öğrenmede güçlük çekebilir. Ö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 tipik olarak yalnızca {0, 1} etiketleriyle çalışır.

Özelliklere Genel Bakış'taki etiket değerlerini gözden geçirin ve Tahmincilerin gereksinimlerine uygun olduklarından emin olun.