paint-brush
Makine Öğrenimi için Özellik Mühendisliğiile@sumitmakashir
841 okumalar
841 okumalar

Makine Öğrenimi için Özellik Mühendisliği

ile Sumit Makashir15m2024/05/15
Read on Terminal Reader

Çok uzun; Okumak

Özellik mühendisliği, makine öğrenimi modellerinin performansını en üst düzeye çıkarmak için çok önemlidir. Anlamlı özellikler oluşturup işleyerek basit algoritmalar bile üstün sonuçlar elde edebilir. Anahtar teknikler toplama, farklılıklar ve oranlar, yaş kodlaması, gösterge kodlaması, tek-sıcak kodlama ve hedef kodlamayı içerir. Etkili özellik işleme, aykırı değerlerin işlenmesini, eksik değerlerin ele alınmasını, ölçeklendirmeyi, boyutluluğun azaltılmasını ve hedeflerin normal dağılıma dönüştürülmesini içerir.
featured image - Makine Öğrenimi için Özellik Mühendisliği
Sumit Makashir HackerNoon profile picture
0-item


"Çö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.


Yeni Özellik Oluşturma

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.


1. Toplama

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:

  1. 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.

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


Üstteki grafik bireysel işlem tutarlarını gösteriyor ve izole edilmiş düşük değerli işlemlerin nadir olmadığını ve dolandırıcılığa işaret etmediğini görebiliyoruz, ancak birbirini takip eden birden fazla düşük değerli işlem bir dolandırıcılık işaretidir. Alttaki grafik, son beş işlem tutarının yuvarlanan ortalamasını gösterir ve yalnızca birden fazla ardışık düşük değerli işlemden oluşan bir model varsa düşük bir değer döndürür. Bu durumda, alt toplu görünüm, işlem tutarını bir özellik olarak kullanarak meşru düşük değerli işlemler ile sahte düşük değerli işlemler arasında ayrım yapmayı mümkün kılar.



2. Farklılıklar ve Oranlar

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:

  1. 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.

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


Yukarıdaki tablodan, belirli bir günde yüksek işlem sayısının tek başına anormal işlem davranışının bir göstergesi olmayabileceğini görebiliriz. Buna karşılık, oran bazlı bir özellik, müşterinin mevcut işlem davranışı ile geçmiş işlem davranışı arasındaki karşılaştırmayı kolaylaştırabilir ve böylece anormallikleri daha etkili bir şekilde yakalayabilir.

3. Yaş Kodlaması

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

  1. Kredi kartının son kullanıldığı günden bu yana geçen günler: Uzun süredir hareketsiz durumdaki bir kredi kartında ani bir işlem yapılması, yüksek dolandırıcılık riskiyle ilişkilendirilebilir. Bu özelliği, kredi kartının son kullanıldığı tarih ile güncel işlem tarihi arasındaki zaman farkını alarak hesaplayabiliriz.
  2. Müşterinin cihazının ilk kullanıldığı günden bu yana geçen gün sayısı: Yeni bir cihazdan gelen bir işlem görürsek, müşterinin daha uzun süredir kullandığı bir cihazdan yapılan işleme göre daha riskli olması muhtemeldir. Müşterinin bu cihazı ilk kullandığı tarih ile güncel işlem tarihi arasındaki fark olarak cihazın yaşını gösteren bir özellik oluşturabiliriz.

Yukarıdaki tablolarda yaş kodlamasının bir örneği gösterilmektedir. Burada müşterinin cihazını ilk kullanım tarihi ile mevcut işlem tarihi arasındaki gün farkı olarak "İşlem cihazının ilk kullanıldığı tarihten itibaren geçen gün sayısı" şeklinde yeni bir sayısal özellik oluşturduk.


4. Gösterge Kodlaması

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:

  1. 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.

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


Yukarıdaki tablolar gösterge kodlamasının bir örneğini göstermektedir. Burada müşterinin mevcut işlem ülkesi konumunu önceki işlem ülkesi konumuyla karşılaştırarak yeni bir sayısal özellik olan "Önceki işlemden ülke değişikliği" oluşturduk.


5. Tek Kullanımlık Kodlama

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:

  1. İşlem satın alma kategorisi: Belirli satın alma kategorisi türleri daha yüksek dolandırıcılık riskiyle ilişkilendirilebilir. Satın alma kategorisi adları metin verileri olduğundan, bu özelliği bir dizi sayısal gösterge özelliğine dönüştürmek için tek-etkin kodlama tekniğini uygulayabiliriz. On farklı satın alma kategorisi adı varsa, tek sıcak kodlama, her satın alma kategorisi adı için bir tane olmak üzere on yeni gösterge özelliği yaratacaktır.
  2. Cihaz türü: Çevrimiçi bir işlem iPhone, Android telefon, Windows PC ve Mac gibi birkaç farklı cihaz türü aracılığıyla yapılabilir. Bu cihazlardan bazıları kötü amaçlı yazılımlara karşı daha hassastır veya dolandırıcılar tarafından kolayca erişilebilir durumdadır ve bu nedenle daha yüksek bir dolandırıcılık riskiyle ilişkilendirilebilir. Cihaz tipi bilgisini sayısal biçimde dahil etmek için, cihaz tipine tek-etkin kodlama uygulayabiliriz; bu, her cihaz tipi için yeni bir gösterge özelliği yaratacaktır.

Yukarıdaki tablolarda tek-etkin kodlamanın bir örneği gösterilmektedir. Burada sayısal olmayan kategorik özellik "Cihaz Türü"ne tek-etkin kodlama tekniğini uygulayarak bir dizi yeni sayısal gösterge özelliği oluşturduk.


6. Hedef Kodlama

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:

  1. Satıcı adı: Belirli satıcılara karşı yapılan işlemler dolandırıcılık faaliyetine işaret edebilir. Her biri farklı dolandırıcılık işlemleri riskine sahip bu tür binlerce satıcı olabilir. Satıcı adlarını içeren bir özelliğe tek-etkin kodlamanın uygulanması, istenmeyen bir durum olan binlerce yeni özelliğin ortaya çıkmasına neden olabilir. Bu gibi durumlarda hedef kodlama, özellik sayısını artırmadan satıcının dolandırıcılık riski bilgilerinin yakalanmasına yardımcı olabilir.
  2. İşlem posta kodu: Tıpkı satıcılar gibi, farklı posta kodlarıyla yapılan işlemler de farklı dolandırıcılık riski düzeylerini temsil edebilir. Posta kodlarının sayısal değerleri olmasına rağmen sürekli ölçüm değişkenleri değildirler ve modelde olduğu gibi kullanılmamalıdırlar. Bunun yerine, hedef kodlama gibi bir teknik uygulayarak her bir posta koduyla ilişkili dolandırıcılık riski bilgilerini dahil edebiliriz.

Yukarıdaki tablolarda hedef kodlamanın bir örneği gösterilmektedir. Burada sayısal olmayan kategorik bir özellik olan "İşyeri Adı"na hedef kodlama tekniği uygulayarak tek bir yeni sayısal özellik olan "İşyeri Adı hedef kodlaması" oluşturduk. Adından da anlaşılacağı gibi bu teknik, yeni özellik değerlerini hesaplamak için hedef değerlere dayanır.



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 İşleme

Ö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.

1. Aykırı Değer Tedavisi

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

  1. Silme: En az bir aykırı değere sahip gözlemleri silebiliriz. Ancak verilerimizin farklı özelliklerde çok fazla aykırı değeri varsa birçok gözlemi kaybedebiliriz.
  2. Değiştirme: Aykırı değerleri belirli bir özelliğin ortalaması, medyanı ve modu gibi ortalamalarla değiştirebiliriz.
  3. Özellik dönüşümü veya standardizasyon: Aykırı değerlerin büyüklüğünü azaltmak için log dönüşümünü veya özellik standardizasyonunu (ölçeklemede açıklandığı gibi) kullanabiliriz.
  4. Sınırlama ve döşeme: Belirli bir değerin ötesindeki aykırı değerleri bu değerle değiştirebiliriz; örneğin, 99. yüzdelik dilimin üzerindeki tüm değerleri 99. yüzdelik değerle ve 1. yüzdelik dilimin altındaki tüm değerleri 1. yüzdelik değerle değiştirmek gibi.


Yukarıdaki resim, tek değişkenli aykırı değerleri tespit etmek için yaygın olarak kullanılan iki tekniği göstermektedir. İki tekniğin farklı aykırı değerler üretebildiğini görebiliriz. Veriler normal bir dağılım izliyorsa ortalama+3 SD tekniği kullanılmalıdır. Kutu grafiği bıyık tabanlı teknik daha geneldir ve herhangi bir dağılıma sahip verilere uygulanabilir.


Yukarıdaki tablolar aykırı değerlerin işlenmesi için yaygın olarak kullanılan tekniklerin uygulanmasını göstermektedir.


Ç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.


2. Eksik Değerlerin Tedavisi

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ış.

  1. Silme: En az bir özellik değeri eksik olan gözlemleri silebiliriz. Ancak verilerimizin farklı özelliklerde çok fazla eksik değeri varsa, birçok gözlemi kaybedebiliriz.
  2. Bırakma: Bir özelliğin çok sayıda eksik değeri varsa, onu bırakmayı seçebiliriz.
  3. Ortalamalarla değiştirme: Eksik değerleri değiştirmek için belirli bir özelliğin ortalama, medyan ve modu gibi ortalamaları kullanabiliriz. Bu yöntemin uygulanması basittir ancak her türlü gözlem için iyi tahminler sağlayamayabilir. Örneğin, dolandırıcılık riski yüksek bir işlemin ortalama işlem tutarı, dolandırıcılık riski düşük olan işlem tutarından farklı olabilir ve yüksek dolandırıcılık riskli eksik işlem tutarı için genel bir ortalamanın kullanılması, iyi bir ikame olmayabilir.
  4. Maksimum olasılık, çoklu atama, K en yakın komşu: Bunlar, veri kümesindeki diğer özelliklerle ilişkiyi dikkate alan daha karmaşık yöntemlerdir ve genel ortalamalardan daha doğru tahminler sağlayabilir. Ancak bu yöntemlerin uygulanması ek modelleme veya algoritma uygulaması gerektirecektir.

Yukarıdaki tablolar kayıp değerlerin giderilmesi için yaygın olarak kullanılan tekniklerin uygulamasını göstermektedir.

3. Ölçeklendirme

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

  1. Normalleştirme: Bu ölçeklendirme tekniği özellik değerlerini 0 ile 1 arasında sınırlandırır. Normalleştirmeyi uygulamak için minimum özellik değerini çıkarıp o özelliğin aralığına (min ve maksimum arasındaki farka) böleriz. Bazı özelliklerimizde keskin bir çarpıklık veya birkaç aşırı aykırı değer varsa normalleştirme iyi bir teknik olmayabilir.
  2. Standardizasyon: Bu teknik, özellik veri dağılımını standart normal dağılıma dönüştürür. Bu tekniği ortalamayı çıkarıp standart sapmaya bölerek uygulayabiliriz. Bu teknik genellikle özelliğin keskin bir eğimi veya birkaç aşırı aykırı değeri varsa tercih edilir.

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.

Yukarıdaki tablolar yaygın olarak kullanılan iki özellik ölçeklendirme tekniğinin uygulamasını göstermektedir.


Yukarıdaki resim orijinal, normalleştirilmiş ve standartlaştırılmış özellik değerleri arasındaki ölçek farkını göstermektedir. Gördüğümüz gibi ölçeklendirme veri dağılımının şeklini etkilemez.

4. Boyutsallığın Azaltılması

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.

Yukarıdaki tablolar özellik azaltma için PCA uygulamasını göstermektedir. Gördüğümüz gibi ilk üç özellik, orijinal veri setinde yer alan bilgilerin %87'sinden fazlasını yakalıyor. Bu durumda, <%13 bilgi kaybı için iki özelliği (f4 ve f5) dışarıda bırakmayı seçebiliriz. Saklanacak özelliklerin sayısı ve ortadan kaldırılacak özelliklerin sayısı, çeşitli faktörlere bağlı olarak sorundan soruna değişecektir.


5. Normal Dağılıma Geçiş

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.

Yukarıdaki resim orijinal hedef verinin üç dönüşümünü göstermektedir. Bu özel durumda, orijinal veri dağılımını normal dağılıma dönüştürmek için log dönüşümünün en iyi sonucu verdiğini görebiliriz.


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.


Çözüm

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.