En iyi uygulamaları anlayan veri kümeleri


13

Veri madenciliği alanında CS yüksek lisans öğrencisiyim. Yöneticim bir keresinde bana herhangi bir sınıflandırıcı çalıştırmadan veya veri kümesiyle herhangi bir şey yapmadan önce verileri tam olarak anlamam ve verilerin temiz ve doğru olduğundan emin olmam gerektiğini söyledi.

Sorularım:

  • Bir veri kümesini (sayısal ve nominal özniteliklere sahip yüksek boyutlu) anlamak için en iyi uygulamalar nelerdir?

  • Veri kümesinin temiz olduğundan emin olmak için uygulamalar?

  • Veri kümesinin yanlış değerlere sahip olmadığından emin olmak için uygulamalar?

Yanıtlar:


8

Herhangi bir veri kümesiyle yapabileceğiniz temel şeyler vardır:

  1. Değerleri doğrulayın (Dize uzunluğu toleransı, veri türü, biçimlendirme maskeleri, gerekli alan varlığı vb.)
  2. Aralık doğruluğu (Bu, görünüşte doğru veriler beklenen değer aralıklarına giriyor mu?)
  3. Ön işleme (Bu verileri analiz etmeye çalışırsam, hatalarla karşılaşmadan temel bilgileri gerçekleştirebilir miyim)
  4. Ön raporlama (bir veri kümesine karşı bir rapor çalıştırın ve bir sağlık testinden geçtiğinden emin olun)
  5. Herhangi bir veri sütunu için null - empty - zero vs. False tanımlanması
  6. Yerinde olmayan verileri belirleme (sayısal değerler veri kümesindeki diğer değerlerden önemli ölçüde farklı, yanlış yazılmış gibi görünen dize değerleri vb.)
  7. Açıkça hatalı verileri ortadan kaldırmak veya düzeltmek

Hataları tanımlamak için verileri anlamak tamamen farklı bir top oyunudur ve çok önemlidir.

Örneğin, belirli bir veri kümesinde seri numarasının bulunması ve seri numarasının maksimum dize uzunluğu 255 ve minimum dize uzunluğu 5 olmak üzere alfasayısal olması gerektiğini söyleyen bir kuralınız olabilir.

Verilere bakarak, belirli bir seri numarası değeri okuyor bulabilirsiniz "PLEASE ENTER SERIAL" Bu tamamen geçerli, ancak yanlış.

Bu çok açık bir şey, ancak hisse senedi verilerini işlediğinizi ve bir doların altındaki 1000 hisse senedi için bir fiyat aralığınız olduğunu varsayalım. Birçok insan, belirli borsalarda bu kadar düşük bir hisse senedi fiyatının geçersiz olduğunu ve diğerlerinde mükemmel bir şekilde geçerli olduğunu bilemez. Gördüğünüz şeyin sorunlu olup olmadığını anlamak için verileriniz hakkında bilgiye ihtiyacınız var.

Gerçek dünyada, verilerinizi her zaman yakından anlama lüksüne sahip değilsiniz.

Sorunlardan kaçınma yolum etrafımdaki insanları güçlendirmektir. Küçük veri kümeleri için, birisinden verileri bütünüyle incelemesini isteyebilirim. Büyük olanlar için, bir dizi rastgele numune çekmek ve birisinden veriler üzerinde bir sağlık kontrolü yapmasını istemek daha uygundur.

Ayrıca, verilerin kaynağını ve bu veri kaynağına ne kadar güvenilir olabileceğini sorgulamak zorunludur. Sıklıkla birbiriyle çelişen birden çok veri kaynağım var ve "gerçeğin kaynağı" nı belirlemek için kurallar oluşturuyoruz. Bazen bir veri kümesinin belirli bir açıdan mükemmel verileri vardır, ancak diğer veri kümeleri diğer alanlarda daha güçlüdür.

Manuel olarak girilen veriler genellikle en şüpheci olduğum şeydir, ancak bazı durumlarda otomasyon yoluyla edinilebilecek her şeyden daha güçlüdür.


5

@Kallestad cevabını çok seviyorum, ama bir meta-adım eklemek istiyorum: Verilerin nasıl toplandığı ve ne tür kısıtlamaların olduğunu anladığınızdan emin olun. Ben veri toplandığında nerede belirgin olmayan hiçbir adım olduğunu düşünmek çok yaygın olduğunu düşünüyorum, ama durum böyle değil: Çoğu zaman, bazı süreç veya indivudal verilerle bir şeyler yaptı ve bu adımlar olabilir ve olacak verinin şeklini etkiler.

İki örnek: Son zamanlarda dünya çapında çeşitli traktörler tarafından toplanan verilerin toplandığı bir çalışmam vardı. Brifingde değildim, bu yüzden benim için opaktı. Ne yazık ki, Fransa'nın bazı bölümleri için yapılan ölçümler: İnsanlar buz kütlesini sevdiler, ancak rastgele bir dağılım bekledik. Bu tekdüzeliğin açık bir nedeni yoktu, bu yüzden hataları avlamaya başladım. Yüklenicileri sorguladığımda, brifingi yanlış anlamış ve veritabanından sadece dondurma severleri seçmişti.

İkinci hata daha zorlayıcıydı: Bazı coğrafi analizler yaparken, birçok insanın çok büyük hareket kalıplarına sahip olduğunu gördüm, bu da birçoğunun Münih'ten Hamburg'a birkaç dakika içinde gittiğini gösterdi. Yukarı akıştaki insanlarla konuştuğumda, veri toplama yazılımlarında daha önce fark edilmeyen ince bir hata buldular.

Sonuç:

  • Verilerinizin mükemmel süreçler / insanlar tarafından toplandığını varsaymayın.
  • Veri sağlayıcılarınızın sınırlarını anlamaya çalışın.
  • Bireysel kalıplara / değerlere bakın ve mantıklı olup olmadıklarını belirlemeye çalışın (hareket / coğrafi veriler için kolay)

4

Genellikle iki aşamalı bir yaklaşım benimsiyorum

  1. her değişken için ortalama, aralık, varyans, kayıp sayısı, kardinalite vb. gibi tek değişkenli (değişkene göre değişken) özet istatistikleri hesaplar ve tuhaflıkları arar (örneğin değişkenin anlamı göz önüne alındığında makul olmayan aralık). Bu tek değişkenler için histogramları çizin.

  2. verileri yönetilebilir alt kümelere ayırın (anlamlı bir değişken seçin ve verileri buna göre bölün, örneğin tüm pozitif örnekler ve tüm negatifler) ve görsel olarak inceleyin (örneğin, ggobi ile ). Özellikle değişkenlerin birbirine nasıl bağlandığını anlamak için fırçalama ve saçılma grafikleri gibi araçlar kullanın.

Model oluşturmaya başladığınızda, kalıntıları çizdiğinizden, bir aykırı değerden kaynaklanabilecek aşırı hataları aradığınızdan veya karışıklık matrisine baktığınızdan ve dengeli olduğundan emin olun. Modellerinizi optimize etmek için k-kat çapraz doğrulamayı kullanın ve her kat için eğitim hatasının varyansına bakın, bir kat diğerlerinden daha kötü performans gösteriyorsa, aykırı değerler içerebilir.


4

Aşağıda , tümüyle sağlanan Veri Bilimi StackExchange ( /datascience//a/722/2452 ) ile ilgili (ancak veri temizleme özelliğine odaklanmış) bir soruya verdiğim yanıtın bir kopyasını burada bulabilirsiniz. okuyucuların rahatlığı. Sorunuza kısmen cevap verdiğine inanıyorum ve yardımcı olacağını umuyorum. Cevap Rekosisteme odaklanırken, diğer veri analiz ortamları için benzer paketler ve / veya kütüphaneler bulunabilir . Dahası, veri hazırlama hakkındaki iki alıntı makalesinde de R örnekleri yer alsa da, bu makaleler genel iş akışı (çerçeve) ve herhangi biri için geçerli olan en iyi uygulamaları sunar veri analiz ortamı.

R, bir içeren standart onun içinde, veri temizleme için kullanılabilecek veri manipülasyonu için fonksiyonlar, taban paketi ( gsub, transformörneğin, vs.) ve aynı zamanda çeşitli üçüncü taraf paketlerini stringr , reshape , reshape2 ve plyr . Bu paketlerin ve işlevlerinin kullanım örnekleri ve en iyi örnekleri aşağıdaki makalede açıklanmıştır: http://vita.had.co.nz/papers/tidy-data.pdf .

Ek olarak, R özellikle veri temizleme ve dönüştürmeye odaklanan bazı paketler sunar :

R'de veri temizlemeye kapsamlı ve tutarlı bir yaklaşım , düzenleme kuralları ve doğru olmayan paketlerin kullanımı ve R'deki veri temizlemesinin iş akışının ( çerçeve ) bir açıklaması da dahil olmak üzere aşağıdaki makalede sunulmaktadır: http : : //cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf .



1

Bir şey ekleyeceğim - mümkünse, verileri başka bir kaynakla karşılaştırarak mantıklılık kontrolü yapın. Görünüşe göre bunu yapamadığımda yanıyorum :(

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.