Özellik Mühendisliğinde Kullanılan En İyi 6 Teknik [Makine Öğrenimi]

Yayınlanan: 2021-03-12

İçindekiler

Tanıtım

Özellik mühendisliği, herhangi bir veri bilimi projesinin en önemli yönlerinden biridir. Özellik mühendisliği, ham verilerden özelliklerin çıkarılması ve iyileştirilmesi için kullanılan teknikleri ifade eder. Özellik mühendisliği teknikleri, model için uygun girdi verileri oluşturmak ve modelin performansını iyileştirmek için kullanılır.

Modeller, gerekli çıktıyı sağlamak için ham verilerden elde ettiğimiz özellikler üzerinde eğitilir ve oluşturulur. Sahip olduğumuz veriler, modelin ondan bir şeyler öğrenmesi için yeterince iyi olmayabilir. Altta yatan sorunumuza çözüm bulan özellikleri türetebilirsek, verilerin iyi bir temsili olduğu ortaya çıkacaktır. Verilerin temsili daha iyi, modelin uyumu daha iyi olacak ve model tarafından daha iyi sonuçlar sergilenecektir.

Herhangi bir veri bilimi projesinin iş akışı, tek seferlik bir süreç yerine yinelemeli bir süreçtir. Çoğu veri bilimi projesinde, ham verilerden özellikler oluşturulup rafine edildikten sonra bir temel model oluşturulur. Temel modelin sonuçları elde edildikten sonra, model sonuçlarını optimize etmek için mevcut bazı özellikler değiştirilebilir ve verilerden bazı yeni özellikler de türetilebilir.

Özellik Mühendisliği

Özellik mühendisliği sürecinde kullanılan teknikler, tüm algoritmalar ve veri setleri için aynı şekilde sonuç verebilir. Özellik mühendisliği sürecinde kullanılan yaygın tekniklerden bazıları şunlardır:

1. Değer Dönüşümü

Özniteliklerin değerleri, logaritmik fonksiyon, kök fonksiyon, üstel fonksiyon vb. parametreler kullanılarak başka bir metriğe dönüştürülebilir. Bu fonksiyonlar için bazı sınırlamalar vardır ve tüm veri setleri için kullanılamayabilir. Örneğin, negatif değerler içeren özelliklere kök dönüşüm veya logaritmik dönüşüm uygulanamaz.

En sık kullanılan fonksiyonlardan biri logaritmik fonksiyondur. Logaritmik işlev, bir uca doğru eğrilebilecek verilerin çarpıklığının azaltılmasına yardımcı olabilir. Günlük dönüşümü, aykırı değerlerin modelin performansı üzerindeki etkisini azaltan verileri normalleştirme eğilimindedir.

Ayrıca bir özellikteki değerlerin büyüklüğünü azaltmaya da yardımcı olur. Bu, daha büyük değerlere sahip özelliklerin diğerlerinden daha önemli olduğunu düşünen bazı algoritmalar kullandığımızda kullanışlıdır.

2. Veri İmputasyonu

Veri ataması, bir veri kümesindeki eksik değerlerin bazı istatistiksel değerlerle doldurulması anlamına gelir. Bu teknik önemlidir, çünkü bazı algoritmalar eksik değerler üzerinde çalışmaz, bu da bizi diğer algoritmaları kullanmamızı kısıtlar veya bu eksik değerleri empoze eder. Bir özellikteki eksik değerlerin yüzdesi daha az ise (yaklaşık %5 ila %10) kullanılması tercih edilir, aksi takdirde veri dağılımında daha fazla bozulmaya yol açar. Sayısal ve kategorik özellikler için bunu yapmanın farklı yöntemleri vardır.

Sayısal özelliklerdeki eksik değerleri, belirli bir aralık içinde rastgele değerlerle veya ortalama, medyan, vb. gibi istatistiksel ölçümlerle uygulayabiliriz. İstatistiksel ölçümler, modelin performansını düşürmeyi tercih eden aykırı değerlere eğilimli olduğundan, bu atamalar dikkatli bir şekilde yapılmalıdır. . Kategorik özellikler için, eksik değerleri veri kümesinde eksik olan ek bir kategoriyle veya kategori bilinmiyorsa bunları eksik olarak belirleyebiliriz.

Birincisi, doğru kategoriyi bulabilmek için iyi bir alan bilgisi duygusu gerektirirken, ikincisi daha çok genelleme için bir alternatiftir. Kategorik özellikleri yüklemek için modu da kullanabiliriz. Verilerin mod ile yüklenmesi, eksik değerlerin sayıca çok yüksek olması durumunda en sık kullanılan etiketin aşırı temsil edilmesine de yol açabilir.

Kariyerinizi hızlandırmak için Dünyanın en iyi Üniversiteleri - Yüksek Lisanslar, Yönetici Yüksek Lisans Programları ve Makine Öğrenimi ve Yapay Zeka alanında İleri Düzey Sertifika Programı'ndan çevrimiçi Yapay Zeka kurslarına katılın .

3. Kategorik Kodlama

Birçok algoritmadaki gereksinimlerden biri, girdi verilerinin doğası gereği sayısal olması gerektiğidir. Bu, bu tür algoritmalarda kategorik özellikleri kullanmak için bir kısıtlama olarak ortaya çıkıyor. Kategorik özellikleri sayı olarak göstermek için kategorik kodlama yapmamız gerekiyor. Kategorik özellikleri sayılara dönüştürmek için kullanılan yöntemlerden bazıları şunlardır:

1. One-hot kodlama: – One-hot kodlama, kategorik bir özellikteki her etiket için bir değer (0 veya 1) alan yeni bir özellik oluşturur. Bu yeni özellik, kategori etiketinin her gözlem için mevcut olup olmadığını gösterir. Örneğin, bir kategorik özellikte 4 etiket olduğunu varsayalım, daha sonra one-hot kodlama uygulandığında 4 Boole özelliği oluşturacaktır.

Aynı miktarda bilgi, tüm özellikler 0 içeriyormuş gibi 3 özellik ile de çıkarılabilir, o zaman kategorik özelliğin değeri 4. etiket olacaktır. Bu yöntemin uygulanması, veri setinde çok sayıda etikete sahip çok sayıda kategorik öznitelik varsa öznitelik uzayını arttırır.

2. Frekans kodlaması: – Bu yöntem, kategorik özellikteki her bir etiketin sayısını veya yüzdesini hesaplar ve aynı etiketle eşler. Bu yöntem, veri kümesinin özellik alanını genişletmez. Bu yöntemin bir dezavantajı, iki veya daha fazla etiketin veri setinde aynı sayıya sahip olması durumunda, haritaya tüm etiketler için aynı numarayı vermesidir. Bu, önemli bilgilerin kaybolmasına yol açacaktır.

3. Sıralı kodlama: – Etiket kodlaması olarak da bilinen bu yöntem, kategorik bir özelliğin farklı değerlerini 0 ile n-1 arasında değişen bir sayı ile eşler; n, özellikteki belirgin etiket sayısıdır. Bu yöntem, veri kümesinin özellik alanını büyütmez. Ancak bir özellikteki etiketler içinde sıralı bir ilişki yaratır.

4. Aykırı Değerlerin Ele Alınması

Aykırı değerler, değerleri partinin geri kalanından çok farklı olan veri noktalarıdır. Bu aykırı değerleri ele almak için önce onları tespit etmemiz gerekir. Python'da box-plot ve scatter-plot gibi görselleştirmeleri kullanarak bunları tespit edebiliriz veya çeyrekler arası aralığı (IQR) kullanabiliriz. Çeyrekler arası aralık, ilk çeyrek (25. yüzdelik dilim) ve üçüncü çeyrek (75. yüzdelik dilim) arasındaki farktır.

(Q1 – 1.5*IQR) ve (Q3 + 1.5*IQR) aralığına girmeyen değerler aykırı değer olarak adlandırılır. Aykırı değerleri saptadıktan sonra, bunları veri kümesinden kaldırarak, bazı dönüşümler uygulayarak, bazı yöntemler kullanarak onları atamak için eksik değerler olarak ele alarak vb. işleyebiliriz.

5. Özellik Ölçeklendirme

Özellik ölçekleme, özelliklerin değerlerini değiştirmek ve bunları bir aralığa getirmek için kullanılır. Değerlerin büyüklüğüne duyarlı SVM, Lineer regresyon, KNN vb. algoritmalar kullanıyorsak bu işlemi uygulamak önemlidir. Özellikleri ölçeklendirmek için standardizasyon, normalizasyon, min-maks ölçekleme yapabiliriz. Normalleştirme, bir özellik aralığının değerlerini -1 ile 1 arasında yeniden ölçeklendirir . Her gözlemin çıkarılmasının ve ortalamanın, o özelliğin maksimum ve minimum değerinin çıkarılmasına oranıdır. yani [X – ortalama(X)]/[maks(X) – min(X)].

Min-maks ölçeklemede, ortalama yerine özelliğin minimum değerini kullanır. Bu yöntem, yalnızca özelliğin son değerlerini dikkate aldığı için aykırı değerlere karşı çok hassastır. Standardizasyon, bir özelliğin değerlerini 0'dan 1'e yeniden ölçeklendirir. Önceki yöntem bunu yaparken veri dağılımını normalleştirmez.

6. Tarih ve Saat Değişkenlerini İşleme

Tarih ve saati farklı formatlarda belirten birçok değişkenle karşılaşıyoruz. Tarihten ay, haftanın günü/ayın günü, yıl, hafta sonu veya değil, tarihler arasındaki fark gibi daha fazla özellik türetebiliriz. Bu, veri setinden daha anlaşılır bilgiler çıkarmamızı sağlayabilir. Zaman özelliklerinden saat, dakika, saniye vb. bilgileri de çıkarabiliriz.

Çoğu insanın gözden kaçırdığı bir şey, tüm tarih ve saat değişkenlerinin döngüsel özellikler olmasıdır. Örneğin, Çarşamba (3) ve Cumartesi (7) arasındaki hangi günün Pazar'a (1'dir) daha yakın olduğunu kontrol etmemiz gerektiğini varsayalım. Artık Cumartesinin daha yakın olduğunu biliyoruz ama sayısal olarak, 3 ile 1 arasındaki mesafe 7 ile 1 arasındaki mesafeden daha az olduğu için Çarşamba olacak. Saat formatı 24 saat formatında olduğunda da aynı şey uygulanabilir.

Bu problemin üstesinden gelmek için bu değişkenleri sin ve cos fonksiyonunun bir temsili olarak ifade edebiliriz. 'Dakika' özelliği için, döngüsel doğada temsil etmek için NumPy kullanarak sin ve cos işlevini aşağıdaki gibi uygulayabiliriz:

dakika_özelliği_sin = np.sin(df['dakika_özelliği']*(2*π/60))

dakika_özelliği_cos = np.cos(df['dakika_özelliği']*(2*π/60))

(Not: Bir saatte 60 dakika olduğu için 60'a bölme. Aylarca yapmak isterseniz 12'ye bölün vb.)

Bu özellikleri bir dağılım grafiğinde çizerek, bu özelliklerin aralarında döngüsel bir ilişki sergilediğini fark edeceksiniz.

Ayrıca Okuyun: Makine Öğrenimi Proje Fikirleri ve Konuları

Çözüm

Makale, özellik mühendisliği sürecinde kullanılan bazı yaygın tekniklere atıfta bulunmanın yanı sıra özellik mühendisliğinin önemine odaklandı. Yukarıda listelenenlerin hangi tekniklerinin daha iyi içgörü sağlayacağına karar vermek, algoritmaya ve eldeki verilere bağlıdır.

Ancak bu gerçekten zor bir yakalamadır ve veri kümeleri farklı olabileceğinden ve veriler için kullanılan algoritmalar da değişebileceğinden varsayılması güvenli değildir. Daha iyi bir yaklaşım, özellik mühendisliğini pervasızca yapmak yerine, aşamalı bir yaklaşım izlemek ve sonuçlarıyla birlikte oluşturulan modellerin kaydını tutmaktır.

Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka alanında Yönetici PG Programına göz atın. -B Mezunu statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Ortalama medyan tabanlı veri atama tekniğini kullanmanın eksileri nelerdir?

Ortalama atamayı kullanırken, değişkenler arasındaki bağlantılar ve korelasyonlar korunmaz. Ancak ortalamayı hesaplamak, gözlemlenen verilerin ortalamasını korur. Sonuç olarak, tüm veriler rastgele eksik olsa bile, ortalama tahmin tarafsız kalacaktır. Yüklenen değişkenlerin varyansı, ortalama değerleme kullanılarak azaltılır. Ortalama değerlendirme, standart hataları azaltarak çoğu hipotez testini ve güven aralığı hesaplamalarını hatalı hale getirir. Bunun gibi tip I hatalar bilinçsizce yapılır.

Özellik çıkarma neden gereklidir?

Özellik çıkarımı, sınıflandırıcının etkinliğini artırmak için en küçük ve en bilgilendirici özellik koleksiyonunu (farklı desenler) bulmak için kullanılır. Özellik çıkarma, bir veri koleksiyonundaki gereksiz verilerin azaltılmasına yardımcı olur, böylece yalnızca ilgili bilgi ve özelliklere vurgu yapılır. Son olarak, verilerin azaltılması, makinenin daha az çabayla modeli geliştirmesini kolaylaştırırken, makine öğrenmesi sürecinde öğrenme ve genelleme süreçlerini hızlandırır. Öznitelik mühendisliğinin en önemli uygulaması, öznitelik çıkarmanın önemli bir unsur olduğu biyomedikal sinyal sınıflandırmasıdır, çünkü öznitelikler dikkatli bir şekilde seçilmezse, sınıflandırma performansı düşebilir.

Özellik çıkarma tekniğini kullanmanın herhangi bir dezavantajı var mı?

Özellik çıkarma, sıradan insanlar tarafından okunamayan veya anlaşılamayan bazı yeni özelliklerle geldi. Ölçeklenebilirlik, özellik çıkarımı sırasında karşılaşılan bir diğer zorluktur. Veri kümeleri büyükse, bazı özellik çıkarma teknikleri uygulanamayacaktır. Özellikle karmaşık doğrusal olmayan özellik çıkarma yaklaşımlarını uygulamak imkansız olurdu. Çoğu teknik, öznitelik seçimi problemini verimli bir şekilde ele almak için bir tür yaklaşıma dayanır; bu, belirli durumlarda kesin problemin üstesinden gelmekten acizdir.