Ana içeriğe geç Tamamlayıcı içeriğe geç

Veri türlerini dönüştürme

Makine öğrenimi modelini eğittiğinizde veri kümesinin tüm veri türlerini doğru biçimde temsil etmesi önemlidir. Bir değişken yanlış temsil ediliyorsa bu, modelin doğruluğunun düşük olmasına veya model iyi görünmesine rağmen gerçek dünya verilerine uygulandığında iyi tahminler yapamamasına neden olabilir. Her bir özelliğin neyi ölçtüğünü ve söz konusu özellik için uygun bir temsilin nasıl atanacağını ayırt edebiliyor olmanız gerekir.

Genellikle makine öğrenimi, ondalık veri türündeki her şeyi sayısal değer, dize biçimindeki tüm değerleri ise kategorik olarak kabul eder. Ancak bu, aşağıdaki örneklerde göreceğimiz gibi her zaman doğru yorumlama biçimi olmayabilir.

Örnekler, şu soruyu yanıtlamak üzere toplanmış bir veri kümesini temel alır: "Kullanıcı, ilk kez satın alma işlemi yaptığı tarihten sonra 30 gün içinde yeniden satın alma gerçekleştirecek mi?" Veri kümesi dize, ondalık, tam sayı, boole değeri ve tarih gibi farklı veri türleri barındıran sütunlar içerir.

Sütunlar ve veri türleri

Sütun adlarını ve veri türlerini içeren tablo.

Dizeler

Aşağıdaki tabloda, veri türü dize olan iki sütun gösterilmektedir. MarketingSource sütunundaki değerler arasında, örneğin "Facebook" ve "Müşteri Tavsiyesi" arasında ölçülebilir bir fark yoktur. Sayısal veya skaler ilişki bulunmadığından sütun, kategorik olarak kabul edilmelidir.

Diğer taraftan, SourceCostPerAcquisition sütunundaki değerler "Düşük" ile "Yüksek" olarak değişmektedir ve aralarındaki fark daha ölçülebilirdir. Kaynak ediniminin dolar cinsinden ortalama maliyeti gibi kesin olmasa da değerler arasında belirgin bir boyut sıralaması vardır. Bu durumda SourceCostPerAcquisition sütununu kategorik veya sayısal olarak kabul etmek gerekip gerekmediği tartışılabilir.

PersonID, MarketingSource ve SourceCostPerAquisition sütunları için örnek veriler

Örnek veriler içeren tablo.

Bu durumlarda önerilen bir uygulama, her biri özelliklerin farklı bir olası sınıflandırmasına sahip iki ayrı yapılandırma oluşturmaktır. Bu deneyler ayrı olarak yürütülecektir. İlk yapılandırma orijinal dize gösterimi için olacaktır. İkinci yapılandırmada, sütunu double veri türüne dönüştürerek farklı değerlere sayısal bir eşleme verirsiniz. Örneğin, "Düşük" = 1,0, "Orta" = 2,0 ve "Yüksek" = 3,0. Her bir yapılandırmayı çalıştırdıktan sonra, söz konusu kullanım durumu için hangi yapılandırmanın daha iyi çalıştığını daha iyi anlayabilirsiniz. Bazı durumlarda, bir dize gösterimi kullanmak mantıklıdır ve diğerlerinde sayısal bir gösterim daha mantıklı olabilir.

Sayılar

Sütundaki verilerin tanımladıkları arasında ölçülebilir bir fark olduğunda bu, sayısal değerlerle temsil edilmelidir. Maliyet, gelir, kâr, miktar, toplam ve ortalama buna örnek olarak gösterilebilir.

Veri kümesi, bazen sözlük veya kimlik numarası gibi artan bir değer olduğundan ölçülebilir olmayan sayısal değerler içerebilir. Örneğimizde, PersonID sütunundaki değerler "Person_" ile başlamasaydı yanlışlıkla sayısal değer olarak algılanabilirdi. Kimlik numaraları sayısal değerler olarak işlenirse bu satırlar arasındaki fark hatalı temsil edilmiş olur. Bu tür durumlarda en iyi uygulama, kimli numaralarının dize olarak gösterilmesidir. Bir veri kümesini kullanmadan önce sayısal sütunlardan herhangi birinin kategorik değerlere dönüştürülüp dönüştürülmeyeceğini belirlemeniz gerekebilir.

Tarihler

Makine öğrenimi bağlamında tarih alanı türleri, kategorik değişkenlerdir. Tarihler ve zaman damgaları ile çıkarma işlemi yapılabilir ancak tarihin birden çok bileşeni vardır. Önemli olan bu bileşenlerden hangilerinin nasıl değerlendirileceğidir: Değer yıl, ay, ayın veya yılın günü ya da günün saati mi olmalıdır? Belki de dakika olarak farkı kullanmak istiyoruz. En fazla tahmin gücünü elde etmek için tarih, en azından birkaç bileşene ayrıştırılmalıdır. Bu bileşenlerden bazıları kategorik, bazıları da sayısal olabilir.

Örneğin, tarih haftanın günü olarak ayrıştırılabilir. Bu, sayısal bir değerle (1-7 arasında) veya dize değeriyle ("Pazar" - "Cumartesi" arasında) temsil edilebilir.

Sayı ve dize olarak haftanın günleri

Haftanın günlerinin sayı ve dize olarak temsil edildiği tablo.

Haftanın gününün sayısal değerle temsil etmek bazı sorunları beraberinde getirir. Hafta ne zaman başlıyor? Pazartesi mi pazar mı? Ayrıca haftanın günü önemli olsa bile döngüsel bir trendde gizlenmiş olabilir.

Bazı durumlarda, haftanın pazartesi ile başladığı Grafik 1'deki gibi, trend son derece açıklayıcı olabilir.

Grafik 1: Pazartesi ile başlayan haftada gün başına ortalama satışlar

Açık bir trend çizgisine sahip haftanın günü başına satışlar grafiği.

Grafik 2, Grafik 1 ile aynı verileri içeriyor ancak bir gün kaydırıldığından hafta Pazar gününden başlıyor. Burada verinin önemi çok daha azdır.

Grafik 2: Pazar ile başlayan haftada gün başına ortalama satışlar

Açık bir trend çizgisi bulunmayan, haftanın günü başına satışlar grafiği.

Grafik 3'te, sayısal değer olarak ayrıştırılmış tarih bileşeni kullanımıyla ilgili başka bir sorun gösterilmektedir. Belirgin bir örüntü bulunuyor olabilir ancak bu örüntü doğrusal değilse fark edilmez. Bu durumdan ve tarih bileşenlerinde sıkça görülen döngüsel trendlerden (ör. günlük veya çeyrek dönemlik mevsimsellik) ötürü ilgili bileşenlerin sayısal değer olarak değil, kategorik değer olarak kullanılması önerilir.

Grafik 3: Hafta ortasında yükseliş gösteren haftanın günü başına ortalama satışlar

Hafta ortasında zirveye ulaşan döngüsel trendi barındıran haftanın günü başına ortalama satış grafiği.

Qlik AutoML, tarih ve zaman damgası bileşenlerini kendi farklı sütunlarına ayırmak için otomatik özellik mühendisliğini kullanır. Bu, oluşturduğunuz modellerin tahmin yeteneğini geliştirmeye yardımcı olur. Bir ana tarih özelliğinden türetilen otomatik mühendislik özellikleri sayısal özellikler olarak sınıflandırılır. Gerekirse tarih sütunlarının kategorik olarak ele alınması için bu işlevi geçersiz kılabilirsiniz. Daha fazla bilgi için bkz. Tarih özelliği mühendisliği.

Tarih farkları

Tarih farkları, artan kimlik numaralarının iyi bir alternatifi olarak kullanılabilir. Artan kimlik numaraları, yalnızca kayıtların tabloya eklenme sırasını açıklar. Artan kimlik numaraları hacimdeki değişim (çoğu örnekte gün başına düşen müşteri sayısı) nedeniyle kolayca eğrilebilir ancak tarih farkı bu hızdan bağımsızdır.

Tarih farkı, saniye, saat, gün, ay veya çeyrek gibi çeşitli ölçümlerden biri olabilir. Verilerinizin detay seviyesine en uygun olan seçeneği belirleyin. Örneğin, aylık verilere bakarken gün olarak tarih farkı hiçbir değer katmaz. Bu durumda ay olarak tarih farkı daha uygun olacaktır.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!