"Çöp içeri, çöp dışarı" deyimini duymuşsunuzdur. Bu söz, makine öğrenimi modellerini eğitirken gerçekten de geçerlidir. Makine öğrenimi modellerini alakasız verileri kullanarak eğitirsek, en iyi makine öğrenimi algoritmalarının bile pek bir faydası olmaz. Tersine, iyi tasarlanmış anlamlı özelliklerin kullanılması, basit bir makine öğrenimi algoritmasıyla bile üstün performans elde edilebilir. Peki modelimizin performansını maksimuma çıkaracak bu anlamlı özellikleri nasıl yaratabiliriz? Cevap özellik mühendisliğidir. Özellik mühendisliği üzerinde çalışmak, regresyon, karar ağaçları, destek vektör makineleri ve sayısal girdi gerektiren diğerleri gibi geleneksel makine öğrenimi algoritmalarıyla çalışırken özellikle önemlidir. Ancak bu sayısal girdileri oluşturmak yalnızca veri becerileriyle ilgili değildir. Yaratıcılık ve alan bilgisi gerektiren, bilim kadar sanatı da barındıran bir süreçtir.
Genel olarak konuşursak, özellik mühendisliğini iki bileşene ayırabiliriz: 1) yeni özellikler oluşturmak ve 2) bu özellikleri, söz konusu makine algoritmasıyla en iyi şekilde çalışacak şekilde işlemek. Bu makalede, kesitsel, yapılandırılmış, NLP olmayan veri kümeleri için özellik mühendisliğinin bu iki bileşenini tartışacağız.
Ham veri toplamak yorucu olabilir ve bu görevin sonunda ek özellikler oluşturmaya daha fazla zaman ve enerji harcayamayacak kadar yorulmuş olabiliriz. Ancak bu noktada doğrudan model eğitimine dalmanın cazibesine direnmemiz gerekiyor. Buna değeceğine sana söz veriyorum! Bu noktada durup kendimize şu soruyu sormalıyız: "Tahminleri alan bilgime dayanarak manuel olarak yapsaydım, hangi özellikler iyi bir iş çıkarmamı sağlardı?" Bu soruyu sormak, aksi takdirde modelimizin gözden kaçırabileceği yeni anlamlı özelliklerin oluşturulmasına yönelik olasılıkların önünü açabilir. Hangi ek özelliklerden yararlanabileceğimizi düşündükten sonra ham verilerden yeni özellikler oluşturmak için aşağıdaki tekniklerden yararlanabiliriz.
Adından da anlaşılacağı gibi bu teknik, daha bütünsel bir görünüm oluşturmak için birden fazla veri noktasını birleştirmemize yardımcı olur. Toplamaları genellikle sayım, toplam, ortalama, minimum, maksimum, yüzdelik dilim, standart sapma ve değişim katsayısı gibi standart işlevleri kullanarak sürekli sayısal verilere uygularız. Her işlev farklı bilgi öğelerini yakalayabilir ve kullanılacak en iyi işlev, özel kullanım durumuna bağlıdır. Çoğu zaman toplama işlemini, o sorun bağlamında anlamlı olan belirli bir zaman veya olay penceresine uygulayabiliriz.
Belirli bir kredi kartı işleminin hileli olup olmadığını tahmin etmek istediğimiz bir örneği ele alalım. Bu kullanım durumu için şüphesiz işleme özgü özellikleri kullanabiliriz, ancak bu özelliklerin yanı sıra aşağıdaki gibi toplu müşteri düzeyinde özellikler oluşturmanın da faydasını görebiliriz:
Müşterinin son beş yılda kaç kez dolandırıcılık kurbanı olduğu: Daha önce birkaç kez dolandırıcılık mağduru olan bir müşterinin tekrar dolandırıcılık kurbanı olma olasılığı daha yüksek olabilir. Dolayısıyla, bu toplu müşteri düzeyindeki görünümün kullanılması, uygun tahmin sinyalleri sağlayabilir.
Son beş işlem tutarının medyanı: Genellikle, bir kredi kartı ele geçirildiğinde dolandırıcılar, kartı test etmek için birden fazla düşük değerli işlem girişiminde bulunabilir. Düşük değerli tek bir işlem çok yaygındır ve dolandırıcılık belirtisi olmayabilir, ancak kısa süre içinde bu tür birçok işlemi görürsek, bu durum kredi kartının tehlikeye girdiğini gösterebilir.
Birçok problem türünde, belirlenmiş bir modeldeki değişiklik, tahmin veya anormallik tespiti için değerli bir sinyaldir. Farklılıklar ve oranlar, sayısal özelliklerdeki değişiklikleri temsil etmede etkili tekniklerdir. Tıpkı toplamada olduğu gibi, bu teknikleri de söz konusu sorun bağlamında anlamlı bir zaman penceresinde uygulayabiliriz.
Örnekler:
Son 1 saatteki yeni üye işyeri işlemlerinin yüzdesi ile son 30 gündeki yeni üye işyeri işlemlerinin yüzdesi arasındaki fark: Yeni üye işyeri işlemlerinin hızlı bir şekilde art arda gerçekleşmesi yüzdesinin yüksek olması tek başına dolandırıcılık riskinin göstergesi olabilir ancak bu davranışın gerçekleştiğini gördüğümüzde Müşterinin geçmiş davranışlarına göre değiştiğinde daha da belirgin bir sinyal haline gelir.
Mevcut günlük işlem sayısının son 30 günlük ortalama günlük işlem sayısına oranı: Bir kredi kartı ele geçirildiğinde, kısa bir zaman diliminde büyük ihtimalle birçok işlem gerçekleştirecektir ve bu, geçmiş kredi kartı kullanımına uymayabilir. Mevcut günlük işlem sayısının son 30 günlük ortalama günlük işlem sayısına oranının önemli ölçüde yüksek olması, dolandırıcılık amaçlı kullanım modellerinin göstergesi olabilir.
İki zaman damgası veya tarih arasındaki farkı alarak tarih veya zaman damgası özelliklerini sayısal özelliklere dönüştürmek için yaş hesaplama tekniğini kullanabiliriz. Özellik değerleriyle ilişkili kullanım süresi tahmin için değerli bir sinyal olabiliyorsa, belirli sayısal olmayan özellikleri anlamlı sayısal özelliklere dönüştürmek için de bu tekniği kullanabiliriz.
Örnekler:
Gösterge veya Boole özellikleri {1, 0} veya {Doğru, Yanlış} ikili değerlerine sahiptir. Gösterge özellikleri çok yaygındır ve çeşitli ikili bilgi türlerini temsil etmek için kullanılır. Bazı durumlarda bu tür ikili özelliklere sayısal formda zaten sahip olabiliriz, bazı durumlarda ise sayısal olmayan değerlere sahip olabiliriz. Model eğitimi için sayısal olmayan ikili özellikleri kullanmak için tek yapmamız gereken bunları sayısal değerlerle eşlemektir.
Gösterge özelliklerinin bu yaygın oluşumlarının ve kullanımlarının ötesine baktığımızda, sayısal olmayan veri noktaları arasındaki karşılaştırmayı temsil etmek için gösterge kodlamasını bir araç olarak kullanabiliriz. Bu özellik, sayısal olmayan özelliklerdeki değişiklikleri ölçmemiz için bir yol oluşturduğundan onu özellikle güçlü kılar.
Örnekler:
Son oturum açma etkinliği sırasında başarısız doğrulama: Yakın zamanda gerçekleşen başarısız oturum açma etkinliği, daha yüksek sahtekarlık işlemleri riskiyle ilişkilendirilebilir. Bu durumda ham veriler bu özellik için Evet veya Hayır değerlerine sahip olabilir; Burada tek yapmamız gereken bu değerleri 1 veya 0'a eşlemek.
Son işlemden itibaren ülke konumunda değişiklik: Ülke konumunda bir değişiklik, kredi kartının tehlikeye girdiğine işaret edebilir. Burada, sayısal olmayan 'ülke konumu' özelliğindeki değişikliği temsil eden bir gösterge özelliği oluşturmak, bu ülke değişikliği bilgisini yakalayacaktır.
Bu teknik, özellik verilerimizin sayısal veya sayısal olmayan kategorik formda olması durumunda uygulanabilir. Sayısal-kategorik biçim, coğrafi bölge kodları, mağaza kimlikleri ve bu tür diğer veri türleri gibi sürekli olmayan veya ölçülmeyen veriler içeren sayısal verileri ifade eder. Bir sıcak kodlama tekniği, bu tür özellikleri, makine öğrenimi modellerinin eğitiminde kullanabileceğimiz bir dizi gösterge özelliğine dönüştürebilir. Kategorik bir özelliğe bir sıcak kodlama uygulamak, o kategorik değişkendeki her kategori için yeni bir ikili özellik yaratacaktır. Kategori sayısı arttıkça yeni özelliklerin sayısı da arttığı için bu teknik, özellikle daha küçük bir veri setimiz varsa, kategori sayısı az olan özellikler için uygundur. Standart temel kurallardan biri, kategori başına en az on kaydımız varsa bu tekniğin uygulanmasını önerir.
Örnekler:
Bu teknik, tek sıcak kodlamayı uygulayacağımız aynı tip özelliklere uygulanır ancak tek sıcak kodlamaya göre bazı avantaj ve dezavantajlara sahiptir. Kategori sayısı yüksek olduğunda (yüksek kardinalite), tek-etkin kodlamanın kullanılması, özelliklerin sayısını istenmeyen şekilde artıracak ve bu da modelin aşırı uyumuna yol açabilecektir. Denetimli bir öğrenme problemi üzerinde çalışmamız koşuluyla, hedef kodlama bu gibi durumlarda etkili bir teknik olabilir. Her kategori değerini o kategori için hedefin beklenen değeriyle eşleştiren bir tekniktir. Sürekli hedefli bir regresyon problemiyle çalışıyorsanız bu hesaplama, kategoriyi o kategorinin ortalama hedef değeriyle eşleştirir. İkili hedefle ilgili bir sınıflandırma sorunu olması durumunda, hedef kodlama, kategoriyi o kategorinin pozitif olay olasılığıyla eşleştirecektir. One-hot kodlamanın aksine, bu tekniğin özellik sayısını artırmama avantajı vardır. Bu tekniğin dezavantajı yalnızca denetimli öğrenme problemlerine uygulanabilmesidir. Bu tekniğin uygulanması, özellikle bazı kategorilerdeki gözlem sayısının düşük olması durumunda, modeli aşırı uyumdan etkilenmeye açık hale getirebilir.
Örnekler:
Ham verilerden yeni özellikler oluşturduktan sonraki adım, bunları optimum model performansı için işlemektir. Bunu bir sonraki bölümde tartışıldığı gibi özellik işleme yoluyla gerçekleştiriyoruz.
Özellik işleme, makine öğrenimi modellerinin verilere amaçlandığı gibi uymasını sağlayan bir dizi veri işleme adımını ifade eder. Bu işleme adımlarından bazıları, belirli makine öğrenimi algoritmalarını kullanırken gerekli olsa da, diğerleri, özellikler ile söz konusu makine öğrenimi algoritması arasında iyi bir çalışma kimyası oluşturmamızı sağlar. Bu bölümde bazı ortak özellik işleme adımlarını ve bunlara neden ihtiyacımız olduğunu tartışalım.
Çeşitli makine öğrenimi algoritmaları, özellikle de regresyon modelleri gibi parametrik olanlar, aykırı değerlerden ciddi şekilde etkilenir. Bu makine öğrenimi algoritmaları aykırı değerleri gidermeye çalışarak model parametrelerini ciddi şekilde etkiler ve genel performanstan ödün verir. Aykırı değerleri tedavi etmek için önce onları tanımlamalıyız. Ortalama artı üç standart sapmadan daha büyük bir mutlak değere veya en yakın bıyık değerinin (en yakın çeyrek değeri artı çeyrekler arası aralık değerinin 1,5 katı) dışında bir değere sahip olmak gibi belirli temel kuralları uygulayarak belirli bir özellik için aykırı değerleri tespit edebiliriz. Belirli bir özellikteki aykırı değerleri belirledikten sonra aykırı değerleri işlemek için aşağıdaki tekniklerden bazılarını kullanabiliriz:
Çok değişkenli aykırı değerler (birden fazla özelliğe göre aykırı değerler) olan gözlemleri tespit etmeye yönelik tekniklerin bulunduğunu, ancak bunların daha karmaşık olduğunu ve genellikle makine öğrenimi modeli eğitimi açısından fazla değer katmadıklarını unutmayın. Ayrıca, destek vektör makineleri ve karar ağaçları, rastgele ormanlar ve XGBoost gibi ağaç tabanlı algoritmalar gibi parametrik olmayan makine öğrenimi modellerinin çoğuyla çalışırken aykırı değerlerin bir endişe kaynağı olmadığını unutmayın.
Eksik veriler gerçek dünyadaki veri kümelerinde çok yaygındır. XGBoost gibi birkaçı dışında çoğu geleneksel makine öğrenimi algoritması, eğitim veri kümelerinde eksik değerlere izin vermez. Bu nedenle eksik değerleri düzeltmek, makine öğrenimi modellemesindeki rutin görevlerden biridir. Eksik değerleri gidermeye yönelik çeşitli teknikler vardır; ancak herhangi bir tekniği uygulamadan önce eksik verilerin nedenini anlamak veya en azından verilerin rastgele kayıp olup olmadığını bilmek önemlidir. Veriler rastgele eksik değilse, yani belirli alt grupların eksik veriye sahip olma olasılığı daha yüksektir, özellikle de çok az veri varsa veya hiç veri yoksa, bunlara değer atamak zor olabilir. Veriler rastgele eksikse aşağıda açıklanan yaygın tedavi tekniklerinden bazılarını kullanabiliriz. Hepsinin artıları ve eksileri var ve kullanım durumumuza en uygun yöntemin hangisi olduğuna karar vermek bize kalmış.
Çoğu zaman makine öğrenimi modellerinde kullandığımız özellikler farklı aralıklara sahiptir. Bunları ölçeklendirmeden kullanırsak, büyük mutlak değere sahip özellikler tahmin sonucuna hakim olacaktır. Bunun yerine, her özelliğe tahmin sonucuna katkıda bulunma konusunda adil bir fırsat vermek için tüm özellikleri aynı ölçeğe getirmeliyiz. En yaygın iki ölçeklendirme tekniği şunlardır:
Karar ağaçları, rastgele orman, XGBoost ve diğerleri gibi ağaç tabanlı algoritmaların ölçeklenmemiş verilerle çalışabileceğini ve bu algoritmaları kullanırken ölçeklendirmeye ihtiyaç duymadığını unutmayın.
Bugün elimizde çok büyük veriler var ve modellerimizi eğitmek için geniş bir özellik koleksiyonu oluşturabiliyoruz. Çoğu algoritma için daha fazla özelliğe sahip olmak iyidir çünkü model performansını iyileştirmek için daha fazla seçenek sunar. Ancak bu her algoritma için geçerli değildir. Mesafe metriklerine dayalı algoritmalar boyutluluk lanetinden muzdariptir; özelliklerin sayısı önemli ölçüde arttıkça, iki gözlem arasındaki mesafe değeri anlamsız hale gelir. Bu nedenle mesafe ölçümlerine dayanan algoritmalar kullanmak için çok sayıda özellik kullanmadığımızdan emin olmalıyız. Veri kümemizde çok sayıda özellik varsa ve hangilerini tutacağımızı, hangilerini atacağımızı bilmiyorsak Temel Bileşen Analizi (PCA) gibi teknikleri kullanabiliriz. PCA, eski özellikler kümesini bir dizi yeni özelliğe dönüştürür. En yüksek özdeğere sahip olanın eski özelliklerden gelen bilgilerin çoğunu yakalayacağı yeni özellikler yaratır. Daha sonra yalnızca en iyi birkaç yeni özelliği saklayabilir ve geri kalanları atabiliriz.
İlişkilendirme analizi ve özellik seçme algoritmaları gibi diğer istatistiksel teknikler, denetimli öğrenme problemlerinde özellik sayısını azaltmak için kullanılabilir. Ancak genellikle PCA'nın aynı sayıda özellik ile yakaladığı bilgi düzeyini yakalayamazlar.
Bu adım bir istisnadır çünkü özellikler için değil yalnızca hedef için geçerlidir. Ayrıca çoğu makine öğrenimi algoritmasında hedefin dağıtımı üzerinde herhangi bir kısıtlama yoktur, ancak doğrusal regresyon gibi bazı algoritmalar hedefin normal şekilde dağıtılmasını gerektirir. Doğrusal regresyon, tüm veri noktaları için hata değerlerinin simetrik olduğunu ve sıfır etrafında yoğunlaştığını (tıpkı normal dağılımın şekli gibi) varsayar ve normal dağılmış bir hedef değişken bu varsayımın karşılanmasını sağlar. Hedefimizin dağılımını histogram çizerek anlayabiliriz. Shapiro-Wilk testi gibi istatistiksel testler bu hipotezi test ederek bize normallik hakkında bilgi verir. Hedefimizin normal dağılmaması durumunda, hangi dönüşümlerin hedef dağılımını normal yaptığını kontrol etmek için log dönüşümü, kare dönüşümü, karekök dönüşümü ve diğerleri gibi çeşitli dönüşümleri deneyebiliriz. Ayrıca birden fazla parametre değerini deneyen bir Box-Cox dönüşümü de vardır ve hedefimizin dağılımını normale en iyi dönüştüreni seçebiliriz.
Not: Özelliklerdeki özellik işleme adımlarını herhangi bir sırayla uygulayabilsek de, uygulama sırasını iyice dikkate almalıyız. Örneğin, değer ortalaması ikamesini kullanan eksik değer işlemi, aykırı değer tespitinden önce veya sonra uygulanabilir. Bununla birlikte, ikame için kullanılan ortalama değer, eksik değerleri aykırı değer işleminden önce mi yoksa sonra mı ele aldığımıza bağlı olarak farklılık gösterebilir. Bu makalede özetlenen özellik işleme sırası, sorunları ardışık işleme adımları üzerindeki etkilerine göre ele alır. Bu nedenle, bu sırayı takip etmek genellikle çoğu sorunun çözümünde etkili olacaktır.
Giriş bölümünde de belirtildiği gibi özellik mühendisliği, modelin performansını olağanüstü derecede kontrol etmemize olanak tanıyan makine öğreniminin bir boyutudur. Özellik mühendisliğinden potansiyelinden yararlanmak için bu makalede yeni özellikler oluşturmaya ve bunları makine öğrenimi modelleriyle en iyi şekilde çalışacak şekilde işlemeye yönelik çeşitli teknikler öğrendik. Bu makaledeki mühendislik ilkeleri ve teknikleri hangi özelliği kullanmayı seçerseniz seçin, buradaki önemli mesaj, makine öğreniminin yalnızca algoritmadan kalıpları bulmasını istemekten ibaret olmadığını anlamaktır. Algoritmanın ihtiyaç duyduğu veriyi sağlayarak işini etkili bir şekilde yapmasını sağlamamızla ilgilidir.