Bizim bakış açımız – ki bu oldukça mütevazı bir bakış açısı: Biz Geonode olarak, web’den veri toplayan kişilere proxy hizmeti sunuyoruz; bu nedenle birçok veri setini, oluşturuldukları anda görüyoruz. Aktarılması gereken gözlem şudur: Pahalıya mal olan hatalar, veri toplama aşamasında meydana gelir ve ancak aylar sonra fark edilir. Verilerin ne zaman toplandığını not etmemek, hangi alanların eksik olabileceğini kaydetmemek, ham yanıtları saklamamak — bunların hiçbiri ilk gün bir sorun yaratmaz, ancak biri sizin öngörmediğiniz bir soru sorduğunda tüm bunlar veri setini kullanılamaz hale getirir. Bu makalede yer alan hiçbir şey bir şey satın almanızı gerektirmez; iyi alışkanlıklar ücretsizdir ve çoğu sadece birkaç dakika sürer.
Temel Yapı
Çoğu veri kümesi, formatı ne olursa olsun aynı yapıya sahiptir.
Kayıtlar — tek tek öğeler. Bir tablodaki satırlar, bir JSON dizisindeki nesneler, bir dizindeki dosyalar. Bir kayıt, tanımladığınız tek bir şeydir: bir kişi, bir işlem, bir ürün, bir fotoğraf.
Alanlar — her kaydın özellikleri. Tablodaki sütunlar, nesnedeki anahtarlar. Ad, fiyat, tarih, kategori.
Değerler — belirli bir kayıt için belirli bir alanın içerdiği değerlerdir.
Şema — hangi alanların mevcut olduğu, hangi türleri içerdiği ve hangilerinin zorunlu olduğu ile ilgili açıklamadır. Bazen resmi ve zorunlu, bazen gayri resmi bir anlaşma, bazen de hiç yoktur — ki bu durum daha sonra sorunlara yol açar.
Meta Veriler — veri kümesinin kendisiyle ilgili veriler. Ne zaman, kim tarafından, nereden, hangi lisans altında ve bilinen hangi kısıtlamalarla toplandığı.
Sonuncusu, yeni başlayanların atladığı, deneyimli uygulayıcıların ise üzerinde ısrar ettiği konudur. Meta verileri olmayan bir veri kümesi, sorunuzu yanıtlayıp yanıtlamadığını değerlendiremeyeceğiniz bir sayı kümesidir.
Yapılandırılmış, Yarı Yapılandırılmış ve Yapılandırılmamış
Ön işleme yapmadan neler yapabileceğinizi belirlediği için faydalı bir üçlü ayrımdır.
Yapılandırılmış veriler sabit bir şemaya ve tutarlı türlere sahiptir. Bir veritabanı tablosu, sabit başlıklı bir CSV dosyası, bir elektronik tablo. Bu verileri doğrudan sorgulayabilir, filtreleyebilir ve toplama işlemleri yapabilirsiniz.
Yarı yapılandırılmış veriler düzenli bir yapıya sahiptir ancak katı bir şeması yoktur. Kayıtların farklı alanlara sahip olabileceği JSON, XML, günlük satırları gibi. Ayrıştırılması gereken bir yapı vardır ve bu yapı kayıtlar arasında değişiklik gösterir.
Yapılandırılmamış verilerde doğuştan gelen bir kayıt yapısı yoktur. Metin belgeleri, görüntüler, ses, video. Bilgi olmadığı anlamına gelmez; bunlardan alanları çıkarmak için bir model veya insan müdahalesi gerekir.
Uygulamada bu sınırlar belirsizleşir. Dosya adlarını, boyutlarını ve etiketlerini içeren bir CSV dosyası ile birlikte bir resim dizini, yapılandırılmış bir dizine sahip yapılandırılmamış içeriktir — bu, makine öğrenimi veri kümeleri için standart bir düzenleme olup genel olarak iyi bir örnektir.
Gerçek işlerin çoğu, bu iki tür arasında dönüştürme yapmayı içerir. Veri kazıma, yapılandırılmamış web sayfalarını yapılandırılmış kayıtlara dönüştürür; hataların çoğu bu dönüştürme aşamasında ortaya çıkar ve bu nedenle ham kaynağın korunması önemlidir.
Biçimler ve Size Ne Kadara Mal Olurlar
Bu seçim, göründüğünden daha önemlidir.
| Biçim | Yapı | Korunan türler | Akışlar | Ne için uygundur |
|---|---|---|---|---|
| CSV | Düz tablo | Hayır — her şey metindir | Evet | Elektronik tablolar, veritabanı yükleme |
| JSON | İç içe | Evet | Hayır, belgenin tamamı gerekir | API'ler, yapılandırma, iç içe kayıtlar |
| JSON Lines | Satır başına iç içe | Evet | Evet | Koleksiyon, günlükler, olay akışları |
| Parquet | Sütunlu, türlü | Evet, tam olarak | Kısmen | Analitik, arşivleme, büyük veriler |
| SQLite | İlişkisel | Evet | Sorgu tabanlı | Taşınabilir ilişkisel veriler |
Çoğu durumu belirleyen üç nokta.
CSV'nin resmi bir spesifikasyonu yoktur. RFC 4180, "çoğu uygulamada takip edildiği görülen" özellikleri açıklayarak bunu kendisi de belirtir. Bu durum, herkesin karşılaştığı sınırlayıcı, kodlama ve tırnak işaretleme sorunlarının kaynağıdır. Aynı zamanda kompakt ve evrensel olarak okunabilir olması, hala kullanılmaya devam etmesinin sebebidir.
JSON Lines yeterince kullanılmamaktadır ve genellikle veri toplama için uygundur. Her satıra bir JSON belgesi: sabit bellekte akış sağlar, güvenli bir şekilde ekleme yapar ve kesik bir dosyadan bile tüm tam kayıtlar elde edilebilir. Bir JSON dizisi bunların hiçbirini yapmaz ve çöken bir veri toplama işi, ayrıştırılamaz bir dosya bırakır.
Parquet, büyük ve analitik işler için doğru hedeftir. Sütunlu depolama, kırk sütundan üçüne dokunan bir sorgunun yalnızca o üçünü okuduğu anlamına gelir; benzer değerler bir arada bulunduğundan sıkıştırma metin formatından çok daha iyidir ve türler tam olarak korunur. İnsan tarafından okunabilir olmaması ise bunun bedelidir.
Mantıklı bir iş akışı, kesintilere tolerans gösterdiği için verileri JSON satırları olarak toplar, ardından analiz için toplu olarak Parquet'e dönüştürür. Metin formatlarını JSON vs CSV başlıklı yazımızda ayrıntılı olarak karşılaştırdık.
Bir Veri Kümesini Kullanılabilir Kılan Nedir: FAIR
Bilim camiası bunu resmileştirmiştir ve bu çerçeve, araştırma alanının çok ötesinde de geçerlidir.
2016 yılında yayınlanan FAIR ilkeleri, dört özelliği ortaya koymaktadır.
Bulunabilirlik. F1, “(Meta)verilere küresel olarak benzersiz ve kalıcı bir tanımlayıcı atanmasını” gerektirir; F2, “Verilerin zengin meta verilerle tanımlanmasını” gerektirir; F3, meta verilerin “tanımladıkları verilerin tanımlayıcısını açık ve net bir şekilde içermesini” gerektirir; ve F4, meta verilerin “aranabilir bir kaynakta kaydedilmesini veya indekslenmesini” gerektirir.
Erişilebilir. A1, "standartlaştırılmış bir iletişim protokolü kullanılarak tanımlayıcıları aracılığıyla" verilerin alınmasını gerektirir. A2, insanların şaşırtıcı bulduğu ve tartışmasız en değerli olan özelliktir: "Veriler artık mevcut olmasa bile meta verilere erişilebilir." Bir veri kümesinin açıklaması, veri kümesinden daha uzun ömürlü olmalıdır; böylece yıllar sonra bir makaleyi okuyan kişi, hangi verilerin kullanıldığını anlayabilir.
Birbiriyle Uyumlu. I1, “bilgi temsiline yönelik resmi, erişilebilir, paylaşılan ve geniş çapta uygulanabilir bir dil” gerektirir; I2, kendileri de FAIR ilkelerine uyan sözlükler; I3 ise “diğer (meta) verilere nitelikli referanslar” gerektirir.
Yeniden Kullanılabilir. R1, verilerin “çok sayıda doğru ve ilgili öznitelikle zengin bir şekilde tanımlanmasını” gerektirir.
Sıradan bir projeye uygulandığında bu şu anlama gelir: veri kümenize sabit bir tanımlayıcı verin, içeriğini ve kaynağını yazın, varsa standart alan adlarını ve birimlerini kullanın, lisansı belirtin ve verileri silseniz bile belgeleri saklayın.
Bir Veri Kümesinin Belgelenmesi
FAIR ilkeleri, belgelemenin önemine vurgu yapar. “Veri Kümeleri için Teknik Veri Sayfaları” başlıklı belge ise ne yazılması gerektiğini belirtir.
Bu 2018 tarihli öneri, her bileşenin bir teknik veri sayfasıyla birlikte sevk edildiği elektronik endüstrisinden esinlenmiştir. Öneri, “veri kümesi oluşturucuları ile veri kümesi kullanıcıları arasında daha iyi iletişimi kolaylaştırmak ve makine öğrenimi topluluğunu şeffaflık ve hesap verebilirliğe öncelik vermeye teşvik etmek” amacıyla her veri kümesinin “amaç, bileşim, toplama süreci, önerilen kullanımlar vb.” konularını kapsayan bir dokümantasyonla birlikte sunulması gerektiğini savunmaktadır.
Bundan ortaya çıkan pratik kontrol listesi:
Bu veri seti neden var? Hangi soruyu yanıtlamak için toplandı? Bu, sizin sorunuzu yanıtlayıp yanıtlamadığını belirler.
İçinde neler var? Kayıtlar, alanlar, türler, birimler ve neyin eksik sayıldığı.
Nasıl toplandı? Yöntem, tarihler, kaynaklar, örnekleme. Bir haftada tek bir siteden toplanan veri kümesi, bir yıl boyunca biriktirilen bir veri kümesinden farklı bir nesnedir.
Nedir, ne değildir? Bilinen eksiklikler, önyargılar, hariç tutulan popülasyonlar, eksik dönemler. En değerli bölüm budur ve genellikle en çok eksik olan da budur.
Nasıl kullanılmalı, nasıl kullanılmamalı? Amaçlanan kullanım alanları ve bilinen uygun olmayan kullanımlar.
Lisansı nedir? Ve kiminle iletişime geçileceği.
Nasıl güncellenir? Güncellenip güncellenmeyeceği ve sürümlerin nasıl tanımlandığı.
Veri kümesi yeni olduğunda bunu yazmak bir saat sürer; ancak on sekiz ay sonra, verileri toplayan kişi işten ayrıldığında bu neredeyse imkansız hale gelir.
Kalite Değerlendirmesi
Altı boyut vardır ve her biri için gerçekten uygulayabileceğiniz bir kontrol yöntemi mevcuttur.
Eksiksizlik. Ne kadar eksiklik var ve bu eksiklikler rastgele mi? Her alan için boş değerlerin sayısını sayın. %40 oranında boş olan bir alan size bir şey anlatıyor — ya veri toplama hatası ya da belgelemeniz gereken gerçek bir isteğe bağlılık.
Doğruluk. Değerler gerçeği yansıtıyor mu? Genel olarak doğrulaması zor, ancak ayrıntılarda yönetilebilir: rastgele bir örneği kaynakla karşılaştırarak elle kontrol edin. Yirmi kaydı kontrol etmek on beş dakika sürer ve sistematik hataların çoğunu ortaya çıkarır.
Tutarlılık. Aynı şeyler aynı şekilde mi görünüyor? Karışık biçimlerdeki tarihler, hem UK hem de United Kingdom şeklinde yazılmış ülkeler, para birimi sembollü ve sembolsüz fiyatlar. Kategorik alan başına farklı değerleri sayın — üç yüz farklı "ülke" içeren bir alanda normalleştirme sorunu vardır.
Güncellik. Veriler ne zaman toplandı ve bu, sorunuz açısından önemli mi? Geçen çeyreğe ait fiyatlar, veri olmaktan çok geçmişe aittir.
Temsiliyet. Örneklem, ilgilendiğiniz popülasyonla eşleşiyor mu? Yorumlardan oluşan bir veri kümesi, yorum yazan kişilerin veri kümesidir.
Kaynak. Her bir kaydı kaynağına kadar izleyebiliyor musunuz? Bu, verileri yeniden türetmenize, denetlemenize ve düzeltmenize olanak tanır — ve işlenmiş kayıtların yanı sıra ham yanıtları da saklamanın depolama açısından değerinin olmasının nedeni budur.
Bunları analizden sonra değil, analizden önce uygulayın. Bir grafikte normalleştirme sorununu keşfetmek, değer sayımında keşfetmekten çok daha maliyetlidir.
Makine Öğrenimi için Verilerin Bölünmesi
Veri kümesi bir modeli eğitmek için kullanılıyorsa, verilerin nasıl bölündüğü de veriler kadar önemlidir.
Eğitim kümesi — modelin öğrendiği veriler. Genellikle verilerin çoğunluğunu oluşturur. Doğrulama kümesi — modelleri ayarlamak ve aralarından seçim yapmak için kullanılır. Test kümesi — tamamen ayrı tutulur, gerçek dünyadaki performansı tahmin etmek için tek seferlik kullanılır.
Bu süreçte sıkça karşılaşılan üç hata vardır.
Sızıntı. Test kümesindeki bilgiler eğitimi etkiler. Bölme işleminden önce tüm veri kümesi üzerinde hesaplanan istatistikleri kullanarak ölçeklendirme veya değer atama yapmak klasik bir hatadır ve sonuçlarınızı fark edilmeden şişirir.
Bölümler arasında yinelenen kayıtlar. Hem eğitim hem de test kümelerinde neredeyse aynı öğelerin bulunması, modelin cevabı gördüğü anlamına gelir. Aynı içerik birden fazla URL’de göründüğü için, web’den toplanan veriler bu duruma özellikle yatkındır.
Zamansal sızıntı. Zaman sırasına göre düzenlenmiş verilerde, rastgele bir bölme, modelin gelecekten öğrenmesine yol açar. Bunun yerine tarihe göre bölün.
Genel ilke şudur: Test kümesi, gerçekte karşılaşacağınız duruma benzemelidir. Bugünden yarını tahmin edecekseniz, zamana göre bölün. Yeni kullanıcılar görecekseniz, kullanıcıya göre bölün.
Lisanslama: Ne Yapabileceğinizi Belirleyen Unsur
Yasal olarak kullanamayacağınız bir veri kümesi, sahip olduğunuz bir veri kümesi değildir. Lisanslama, olması gerektiği kadar sık kontrol edilmez; bunun nedeni genellikle, lisanslamanın tek önemli unsur haline geldiği noktaya kadar sıkıcı bir konu olmasıdır.
Açık veri lisansları. Creative Commons, bu alandaki yaygın lisans ailesidir. CC0, yasaların izin verdiği ölçüde eserleri kamu malı haline getirir ve hiçbir koşul getirmez. CC BY, kaynak gösterilmesini gerektirir. CC BY-SA ise “aynı şekilde paylaşma” koşulunu ekler; bu, türev eserlerin de aynı lisansı taşıması gerektiği anlamına gelir — ki bu, ticari bir ürünle uyumsuz olabilir. CC BY-NC ticari kullanımı yasaklar ve “ticari olmayan” tanımı, kullanımınız belirsizse gerçek bir risk oluşturacak kadar geniş tutulmuştur. Devlet portalları genellikle uygulamada esnek olan özel açık lisanslar kullanır; varsayımda bulunmak yerine bunları bir kez okuyun.
Veritabanı hakları, telif hakkından ayrıdır. AB ve Birleşik Krallık’ta, sui generis hakkı, tek tek kayıtların telif hakkına tabi olup olmadığına bakılmaksızın, bir veritabanının içeriğinin elde edilmesi, doğrulanması veya sunulmasına yönelik önemli yatırımları korur. Yalnızca yalın gerçeklerden oluşan bir veri kümesi bile bir veritabanı olarak korunabilir; bu da tam olarak veri toplama projelerinin karşı karşıya kaldığı durumdur.
Hizmet şartları sözleşmeye dayalıdır. Otomatik erişimi yasaklayan şartlara sahip bir siteden toplanan bir veri kümesi, tek tek kayıtların içeriği ne olursa olsun bu sorunu beraberinde getirir. Bu, telif hakkından farklı bir konudur ve gerçeklerin kendisi koruma altında olmasa bile geçerlidir.
Kişisel veriler kendi düzenlemelerini beraberinde getirir. Kayıtlar kişileri — doğrudan veya birleşik olarak — tanımlıyorsa, veri koruma kanunu sadece verilerin toplanmasına değil, elinizde bulundurmanıza ve işlemenize de uygulanır. Bu, yasal bir dayanak, saklama süreleri ve veri sahiplerinin size karşı kullanabileceği haklar anlamına gelir. "Herkese açık olarak görülebiliyordu" ifadesi tek başına yasal bir dayanak değildir.
Ayrıca, türetilmiş veri kümeleri de kısıtlamaları devralır. Bir modeli "paylaş-aynı-şekilde" lisanslı bir veri kümesi üzerinde eğitmek veya farklı lisanslara sahip birkaç kaynağı birleştirmek, en esnek olan lisansın değil, girdilerin birleşiminden oluşan yükümlülükler doğurur.
Uygulamada yaygın olan yöntem, toplama anında veri setinin belgelerine lisansı kaydetmek ve o gün geçerli olan şartlara bir bağlantı eklemektir. Lisanslar değişir, şartlar sayfaları yeniden yazılır; toplama sırasında neyi kabul ettiğinizi gösterebilmek, bunu hatırlamaktan daha değerlidir.
Veri Kümelerinin Kaynakları
Her birinin gerektirdiği iş yüküne göre azalan sırayla beş kaynak.
Yayınlanmış açık veri kümeleri. Devlet portalları, araştırma veri havuzları, kurumsal arşivler. Ücretsiz, belgelenmiş ve genellikle yeterince kalitelidir. Önce bunları kontrol edin — halihazırda kamuya açık olan verileri yeniden toplamak için harcanacak çaba oldukça fazladır.
API’ler. Yapılandırılmış, onaylanmış, istikrarlı. Bir kaynak API yayınlıyorsa, bu neredeyse her zaman doğru yoldur.
Ticari veri sağlayıcıları. Lisanslı, destekli ve buna uygun fiyatlandırılmış. Mühendislik süresi de hesaba katıldığında, aynı şeyi kendiniz oluşturmaktan genellikle daha ucuzdur.
Kendi sistemleriniz. Günlükler, işlemler, telemetri. Genellikle bir kuruluşun elindeki en değerli veriler bunlardır, ancak en çok ihmal edilenler de bunlardır.
Web'den veri toplama. Satış yaptığımız alan. Veriler herkese açık olduğunda ve onaylanmış bir yol bulunmadığında uygundur — ancak bununla birlikte bazı yükümlülükler de getirir: robots.txt, hizmet şartları, telif hakkı, veritabanı hakları ve kişisel verilerin söz konusu olduğu durumlarda veri koruma kanunu. Aynı zamanda en çok belgeleme gerektiren kaynaktır, çünkü ne zaman ve nereden alındığına dair bir kayıt bulunmayan kazınmış bir veri kümesini savunmak veya yeniden üretmek çok zordur.
İnsanlar Ayrıca Şunu Soruyor
Veri kümesi basit bir ifadeyle nedir?
Bir birim olarak üzerinde çalışılabilmesi için düzenlenmiş, birbiriyle ilişkili verilerin toplamıdır — genellikle alanlara (özelliklerine) sahip kayıtlar (öğeler) ve bu alanların ne anlama geldiğine dair bir açıklamadan oluşur. Bir elektronik tablo, bir veritabanı tablosu ve etiketlenmiş resimlerden oluşan bir klasör, hepsi veri kümesidir.
Veri ile veri kümesi arasındaki fark nedir?
Veri, ham malzemedir; veri kümesi ise belirli bir amaç için bir araya getirilmiş, sınırları belirlenmiş ve düzenlenmiş bir veri koleksiyonudur. Düzen ve sınırlar, veri kümesini kullanılabilir kılan unsurlardır — bir veri kümesindeki kayıtları sayabilir, alanlarını tanımlayabilir ve kaynağını belirtebilirsiniz.
Yapılandırılmış ve yapılandırılmamış veriler nedir?
Yapılandırılmış veriler, bir veritabanı tablosu gibi sabit bir şemaya ve tutarlı türlere sahiptir. Yapılandırılmamış verilerin ise doğası gereği bir kayıt yapısı yoktur — metin, görseller, ses gibi. Yarı yapılandırılmış veriler ise ikisinin arasında yer alır; JSON veya günlük dosyaları gibi, düzenli ancak şekli değişken olan verilerdir.
Bir veri kümesi için hangi formatı kullanmalıyım?
Hesap tablolarına veya bir veritabanı yükleyicisine aktarılacak düz tablolar için CSV. Kademeli olarak toplanan her şey için JSON Lines, çünkü akış sağlar ve kesilmeye dayanıklıdır. Büyük analitik veriler için Parquet, çünkü sütunlu depolama ve tipleme sorguları çok daha ucuz hale getirir.
Bir veri kümesini kaliteli kılan nedir?
Eksiksizlik, doğruluk, iç tutarlılık, güncelliği, ilgilendiğiniz popülasyonu temsil etme özelliği ve izlenebilir kaynak bilgisi. Her birinin somut bir kontrol yöntemi vardır — boş değer sayımı, elle doğrulanmış örneklem, kategorik alan başına farklı değer sayımı.
Bir veri setini nasıl belgelemeliyim?
Veri setinin neden var olduğunu, ne içerdiğini, nasıl ve ne zaman toplandığını, bilinen eksiklikleri ve önyargıları nelerdir, nasıl kullanılması ve kullanılmaması gerektiğini, lisansını ve nasıl bakımının yapıldığını kaydedin. “Datasheets for Datasets” önerisi bu konuda standart referanstır.
FAIR ilkeleri nelerdir?
Bulunabilir, Erişilebilir, Birbiriyle Uyumlu, Yeniden Kullanılabilir — 2016 yılında yayınlanan bir veri yönetimi çerçevesi. En az değer verilen gereklilik, meta verilerin "veriler artık mevcut olmasa bile" erişilebilir kalması gerektiğidir; böylece açıklama, veri setinin kendisinden daha uzun ömürlü olur.
Makine öğrenimi için bir veri setini nasıl bölerim?
Eğitim, doğrulama ve test kümelerine bölünür; test kümesi yalnızca bir kez kullanılır. Her türlü dönüşümü yalnızca eğitim kümesinden hesaplayın, bölünmeler arasında neredeyse aynı olan verileri kaldırın ve zaman sıralı veriler için rastgele değil zamana göre bölün — bu üçü de sonuçların fark edilmeden şişirilmesine yol açan yaygın nedenlerdir.
Sonuç
Bir veri kümesi, kayıtlar, alanlar ve değerlerden oluşur; bunlara anlam kazandıran açıklama da buna dahildir. Bu açıklama, altı ay sonra sizin de dahil olmak üzere herhangi birinin bu veriyi kullanıp kullanamayacağını belirleyen unsurdur.
Biçimler, alışkanlıklardan daha az önemlidir. Uygun olduğu durumlarda CSV, kesintiye uğrayan bir işten sonra da verileri koruduğu için kademeli olarak topladığınız her şey için JSON Lines, veriler büyük ve sorgular analitik olduğunda ise Parquet. Bunların hepsi işe yarar; başarısızlık, uzun süren bir veri toplama işlemi için JSON dizisi seçmek ve bir çökme sonrasında ayrıştırılamayan bir dosya ile karşılaşmaktır.
En çok çabaya değen şey, veri kümesi henüz taze iken yazılan belgelemedir. Varlık nedeni, nasıl ve ne zaman toplandığı, nelerin eksik olduğu ve ne için kullanılmaması gerektiği. FAIR ilkeleri bunu resmi olarak ifade eder, “Veri Kümeleri için Veri Sayfaları” önerisi size bir kontrol listesi sunar ve her ikisi de aynı noktaya işaret eder: meta veriler, verilerden daha uzun ömürlü olmalıdır.
Analiz yapmadan önce kaliteyi kontrol edin. Her alan için boş değer sayısı, kategorik alanlar için farklı değerler ve kaynakla karşılaştırılarak elle doğrulanmış yirmi kayıt, en sistematik sorunların çoğunu bir saatten az bir sürede ortaya çıkarır — bu da sonuç aşamasında bunları bulmaktan çok daha ucuzdur.
