Bölüm-6 Özellik mühendisliği nasıl öğrenilir?

Makine Öğrenme Serisi!

Merhabalar, Bu, makine öğrenmeye bakış açınızı değiştiren en şaşırtıcı makaledir. Tartışmaya başlayalım. Makine mühendisliği için özellik mühendisliğinin neden bu kadar önemli olduğunu tartışmaya başlayalım. Bu makaleyi tamamladıktan sonra, veri setinden özellik mühendisliğini nasıl yapacağınızı öğrenebilirsiniz.

taslak

1. Karakteristik mühendislik nedir?
2. veri işleme
 2.1 Boyutsuzlaştırma
 2.1.1 Normalleştirme
 2.1.2 Aralıklı ölçeklendirme yöntemi
 2.1.3 Normalizasyon ve normalizasyon arasındaki fark
 2.2 Nicel özelliklerin bağlanması
 2.3 Niteliksel özellikler çifti Mat kodlama
 2.4 Eksik değerlerin hesaplanması
 2.5 Veri dönüşümü
3 Özellikler Seç
 3.1 Filtre
 3.1.1 Varyans seçim yöntemi
 3.1.2 Korelasyon katsayısı yöntemi
 3.1.3 Ki-kare testi
 3.1.4 Karşılıklı bilgi yöntemi
 3.2 Sarıcı
 3.2.1 Özyinelemeli özellik eleme yöntemi
 3.3 Gömülü
 3.3.1 Ceza bazlı özellik seçimi yöntemi
 3.3. 2 Ağaç tabanlı özellik seçim yöntemi
4 Boyutluluk azaltma
 4.1 Temel bileşen analizi (PCA)
 4.2 Doğrusal ayırma analizi (LDA)

1. Karakteristik mühendislik nedir?

Endüstride yaygın olarak dağıtılan bir söz vardır: veri ve özellikler, makine öğreniminin üst sınırını belirler ve modeller ve algoritmalar bu üst sınıra yaklaşır. Karakteristik proje nedir? Adından da anlaşılacağı gibi, özü algoritmalar ve modeller tarafından kullanılmak üzere ham verilerden özelliklerin çıkarılmasını en üst düzeye çıkarmak için tasarlanmış bir mühendislik etkinliğidir. Özetleyerek ve özetleyerek insanlar, özellik mühendisliğinin şu yönleri içerdiğini düşünüyor:

Özellik işleme, özellik mühendisliğinin temel parçasıdır. Sklearn, veri ön işleme, özellik seçimi ve boyutluluk azaltma dahil olmak üzere daha eksiksiz bir özellik işleme yöntemi sunar. Sklearn ile ilk temas, genellikle zengin ve kullanışlı algoritma modeli kütüphanesinden etkilenir, ancak burada açıklanan özellik kullanma kütüphanesi de çok güçlüdür!

Bu yazıda, sklearn'deki IRIS (Iris) veri kümesi, özellik işleme fonksiyonlarını göstermek için kullanılmıştır. IRIS veri kümesi, 1936'da Fisher tarafından derlendi ve dört özellik içeriyor (Sepal.Length, Sepal.Width, Petal. Length, Petal.Width), özdeğerler Her ikisi de santimetre cinsinden pozitif kayan nokta sayılarıdır. Hedef değer, Iris (Iris Setosa), Iris Versicolour (Iris Virginica), Iris Virginica (Virginia Iris) sınıflandırmasıdır. IRIS veri setini içe aktarma kodu aşağıdaki gibidir:

2. Veri ön işleme

Özellik çıkarımı sayesinde, işlenmemiş özelliklere sahip olabiliriz ve şu anda özelliklerde aşağıdaki sorunlar olabilir:

  • Aynı boyuta ait değil: bir başka deyişle, özelliklerin özellikleri farklı ve birlikte karşılaştırılamıyor. Boyutsuzlaştırma bu sorunu çözebilir.
  • Bilgi fazlalığı: Bazı nicel özellikler için, içerilen etkili bilgiler akademik başarı gibi aralıklarla bölünmedir. Sadece “başarılı” ya da “başarılı” değil, kantitatif test puanını “1” ve “0” değerine dönüştürmeniz gerekir. “” Geçti ve başarısız olduğunu gösterir. İkilileştirme bu sorunu çözebilir.
  • Niteliksel özellikler doğrudan kullanılamaz: bazı makine öğrenme algoritmaları ve modelleri yalnızca niceliksel özelliklerden gelen girdileri kabul edebilir, bu nedenle niteliksel özelliklerin niceliksel özelliklere dönüştürülmesi gerekir. En kolay yol, her nitel değer için nicel bir değer belirlemektir, ancak bu yöntem çok esnektir ve ayarlama işini artırır. Niteliksel özellik genellikle sahte kodlama yoluyla niceliksel bir özelliğe dönüştürülür: N niteliksel değerleri varsa, bu özellik N özelliklerine genişletilir. Orijinal özellik değeri i-nitel değer olduğunda, i-inci genişletilmiş özelliği atanır. 1 ise, diğer uzatma özelliklerine 0 değeri atanmıştır. Doğrudan belirtilen yöntemle karşılaştırıldığında, aptal kodlama yönteminin parametre ayarlarının çalışmasını arttırması gerekmez. Doğrusal model için, dilsiz kodlanmış özelliğin kullanılması doğrusal olmayan bir etki sağlayabilir.
  • Eksik değerler var: eksik değerlerin eklenmesi gerekiyor.
  • Düşük bilgi kullanımı: Farklı makine öğrenme algoritmaları ve modelleri verilerde farklı bilgiler kullanır. Daha önce de belirtildiği gibi, lineer modellerde, nitel özelliklerin aptal kodlaması kullanımı doğrusal olmayan etkileri başarabilir. Benzer şekilde, kantitatif değişkenlerin veya diğer dönüşümlerin polinomlaştırılması, doğrusal olmayan etkiler elde edebilir.

Yukarıdaki problemin çözümünü kapsayacak şekilde veri ön işleme için sklearn'deki ön işleme kütüphanesini kullanıyoruz.

2.1 Boyutsuz

Boyutsuz, farklı özelliklerin verilerini aynı özelliklere dönüştürür. Yaygın olarak kullanılan boyutlandırma yöntemleri standartlaştırma ve aralık ölçeklendirmedir. Standardizasyonun öncülü özdeğerlerin normal bir dağılımı takip etmesi ve normalleşmeden sonra standart bir normal dağılıma dönüştürülmesidir. Aralıklı ölçeklendirme yöntemi, özellik aralığını [0, 1] gibi bir dizi özelliğe ölçeklendirmek için sınır değer bilgisini kullanır.

2.1.1 Standardizasyon

Standardizasyon, özelliğin ortalama ve standart sapmasının hesaplanmasını gerektirir;

Ön işleme kütüphanesinin StandardScaler sınıfını kullanarak verileri normalleştiren kod aşağıdaki gibidir:

2.1.2 Aralıklı ölçeklendirme yöntemi

Aralıklı ölçeklendirme için birçok fikir var. Ortak olan ölçeklemek için iki maksimum değer kullanmaktır. Formül şu şekilde ifade edilir:

Ön işleme kütüphanesinin MinMaxScaler sınıfını kullanarak verilerin aralıklı ölçeklenmesi için kod aşağıdaki gibidir:

2.1.3 Standardizasyon ve normalizasyon arasındaki fark

Basit bir ifadeyle, standardizasyon, özellikleri özellik matrisinin sütunlarına göre işleyerek, örneklerin özellik değerlerini z-skoru yöntemi ile aynı boyuta çevirir. Normalleştirme, verilerin özellik matrisinin satırlarına göre işlenmesidir. Amaç, nokta çarpma işlemi veya diğer çekirdek işlevi benzerliği hesapladığında örnek vektörün tek tip bir standarda sahip olmasıdır, yani bir “birim vektör” e dönüştürülür. L2 kuralına sahip normalleştirme formülü aşağıdaki gibidir:

Ön işleme kütüphanesinin Normalizer sınıfını kullanarak verileri normalleştiren kod aşağıdaki gibidir:

2.2 İkili Kantitatif Özellikler

Kantitatif özellik çiftleşmesinin çekirdeği bir eşik belirlemektir. Eşik değerden büyük olan değer 1, eşik değerden küçük veya eşik değer 0'dır. Formül aşağıdaki gibidir:

Ön işleme kütüphanesinin Binarizer sınıfını kullanarak verileri binarize etme kodu aşağıdaki gibidir:

2.3 Niteliksel özellikler için aptal kodlama

IRIS veri setinin özelliklerinin tümü nicel özellikler olduğundan, hedef değerleri sahte kodlama için kullanılır (aslında gerekli değildir). Ön işleme kütüphanesinin OneHotEncoder sınıfını kullanan aptal kodlama verisi kodu aşağıdaki gibidir:

2.4 Eksik değer hesaplaması

IRIS veri setinde eksik değerler bulunmadığından, veri setine yeni bir örnek eklenir ve dört özelliğe de verilerin eksik olduğunu belirten bir NaN değeri atanır. Ön işleme kütüphanesinin Imputer sınıfını kullanarak eksik veri hesaplamaları için kod şöyledir:

2.5 Veri Dönüşümü

Yaygın veri dönüşümleri polinom tabanlı, üstel tabanlı, log tabanlı fonksiyonlardır. Derece 2 ile polinom dönüşüm formülünün dört özelliği aşağıdaki gibidir:

Ön işleme kütüphanesinin PolynomialFeatures sınıfını kullanarak verilerin polinom dönüşümüne ilişkin kod aşağıdaki gibidir:

Tek argüman işlevine dayanan veri dönüşümü birleştirilmiş bir şekilde yapılabilir. Ön işleme kütüphanesinin FunctionTransformer'ı kullanılarak verilerin logaritmik fonksiyon dönüştürmesi için kod şöyledir:

3. Özellik seçimi

Veri ön işleme tamamlandığında, makine öğrenmesi için eğitmek için anlamlı algoritmalar ve makine modelleri seçmemiz gerekir. Genel olarak, iki bakış açısıyla özellikleri seçin:

  • Özelliğin farklılık gösterip göstermediği: Bir özellik farklılık göstermiyorsa, örneğin, varyans sıfıra yakınsa, yani, örnek bu özellikte büyük ölçüde farklılık göstermiyorsa, bu özellik örnekleri ayırt etmek için kullanışlı değildir.
  • Özellikler ve hedefler arasındaki korelasyon: Bu daha açıktır ve hedefle yüksek oranda ilişkili olan özellikler tercih edilmelidir. Varyans yöntemine ek olarak, bu makalede açıklanan diğer yöntemler korelasyondan ele alınmıştır.

Özellik seçimi biçimine göre, özellik seçimi yöntemi üç türe ayrılabilir:

  • Filtre: Her özelliği ayrışma veya korelasyona göre puanlayan Filtre yöntemi, eşiği veya seçilecek eşik sayısını belirler ve özellikleri seçer.
  • Sarıcı: Bir kerede birkaç özellik seçen veya bir objektif fonksiyona (genellikle bir tahmin edici etki puanı) dayalı birkaç özelliği hariç tutan bir sarmalayıcı yöntemi.
  • Gömülü: Öncelikle bazı makine öğrenme algoritmaları ve modellerini eğitmek için kullanan entegrasyon yöntemi, her bir özelliğin ağırlık katsayılarını elde eder ve özellikleri büyükten küçüğe kadar katsayılara göre seçer. Filter yöntemine benzer, ancak özelliğin avantaj ve dezavantajlarını belirlemek için eğitilmiştir.

Özellik seçimi için sklearn'deki feature_selection kütüphanesini kullanıyoruz.

3.1 Filtre
3.1.1 Varyans Seçim Yöntemi

Varyans seçim yöntemi kullanılarak, her bir özelliğin varyansı ilk olarak hesaplanır ve daha sonra varyansı eşikten büyük olan özellik eşiğe göre seçilir. Feature_selection kütüphanesinin Varyans Eşiği sınıfını kullanarak özellik seçme kodu şöyledir:

3.1.2 Korelasyon katsayısı yöntemi

Korelasyon katsayısı yöntemi kullanılarak, her bir özelliğin korelasyon katsayısı ile hedef değer arasındaki korelasyon katsayısı ve korelasyon katsayısının P değeri ilk olarak hesaplanır. Özellik kodunu seçmek üzere korelasyon katsayılarını birleştirmek için feature_selection kütüphanesinin SelectKBest sınıfını kullanın:

3.1.3 Ki-kare testi

Klasik ki-kare testi, nitel bağımsız değişkenlerin nitel bağımlı değişkenlerle ilişkisini test etmektir. Bağımsız değişkenin N değerine sahip olduğunu ve bağımlı değişkenin M değerlerine sahip olduğunu varsayalım. Gözlemlenen değer ile bağımsız değişkeni i, bağımlı değişkeni j'ye eşit olan örneklem frekansının beklenen değeri arasındaki farkı göz önünde bulundurun ve istatistiği oluşturun:

Bu istatistiğin anlamının sadece bağımsız değişkenin bağımlı değişkenle korelasyonu olduğunu bulmak zor değildir. Özellik kodunu aşağıdaki gibi seçmek için özellik_election kütüphanesinin SelectKBest sınıfını ki-kare testi ile birlikte kullanın:

3.1.4 Karşılıklı Bilgi Yöntemi

Niteliksel bağımsız değişkenlerin nitel bağımlı değişkenlerle ilişkisini değerlendirmek için klasik karşılıklı bilgi de kullanılır. Karşılıklı bilgi hesaplama formülü aşağıdaki gibidir:

Nicel verilerin işlenmesi için azami bilgi katsayısı yöntemi önerilmiştir. Özellikleri seçmek için maksimum bilgi katsayısı yöntemiyle birleştirilmiş özellik_election kütüphanesinin SelectKBest sınıfını kullanan kod şöyledir:

3.2 Sarıcı
3.2.1 Özyinelemeli Özellik Eliminasyonu

Özyinelemeli eleme özelliği yöntemi, çoklu eğitim turlarını gerçekleştirmek için bir temel model kullanır. Her antrenmandan sonra, çeşitli ağırlık katsayılarının özellikleri elimine edilir ve bir sonraki antrenman turu yeni özellik setine göre yapılır. Özellikleri seçmek için feature_selection kütüphanesinin RFE sınıfını kullanan kod aşağıdaki gibidir:

3.3 Gömülü
3.3.1 Cezaya dayalı özellik seçimi

Temel modeli ceza terimleriyle kullanmak, özellikleri filtrelemenin yanı sıra, boyutluluk azaltma da yapılır. Özellik kodunu aşağıdaki gibi seçmek için, özellik regülasyon kütüphanesinin SelectFromModel sınıfını, L1 cezasıyla birlikte lojistik regresyon modeli ile birlikte kullanın:

Aslında, L1 ceza süresinin boyut küçültme ilkesi, hedef değerle aynı derecede uygun özelliklerden birini korumaktır, bu nedenle seçilmemiş özellik önemsiz değildir. Bu nedenle, L2 ceza terimiyle birlikte optimize edilebilir. Spesifik işlem aşağıdaki gibidir: eğer bir özellik L1'de 1 ağırlığa sahipse, L2'deki ağırlıklar arasında küçük bir fark olan bir özellik ve L1'deki 0 ağırlık homojen bir küme oluşturur ve kümedeki özellikler eşit olarak bölünür. L1'e. Ağırlık, bu yüzden yeni bir lojistik regresyon modeli oluşturmalısınız:

Özellik kodunu aşağıdaki gibi seçmek için, özellik_selection kütüphanesinin SelectFromModel sınıfını, L1 ve L2 ceza koşullarına sahip lojistik regresyon modeli ile birlikte kullanın:

3.3.2 Ağaç modeline göre özellik seçimi

Ağaç modelinde, GBDT, özellik seçimi için temel model olarak da kullanılabilir. Özelliğin kodu, GBDT modeliyle bağlantılı olarak özellik_election kütüphanesinin SelectFromModel sınıfı kullanılarak seçilir.

4. Boyutluluk azaltma

Özellik seçimi tamamlandığında, model doğrudan eğitilebilir, ancak özellik matrisi çok büyüktür, bu da büyük miktarda hesaplama ve uzun bir eğitim süresi sağlar. Bu nedenle, özellik matrisinin boyutunu azaltmak da gereklidir. Yaygın boyutluluk azaltma yöntemleri Yukarıda belirtilen L1 ceza temelli modele ek olarak, temel bileşen analizi (PCA) ve doğrusal ayırma analizi (LDA) vardır. Lineer diskriminant analizinin kendisi de bir sınıflandırma modelidir. PCA ve LDA'nın özü, orijinal örneği daha düşük boyutlu örneklem alanına eşlemek olan birçok benzerliğe sahiptir, ancak PCA ve LDA'nın eşleme hedefi farklıdır: PCA, eşlenen numunenin en büyük sapmaya sahip olmasını sağlamaktır. LDA, haritalanmış örneğe en iyi sınıflandırma performansını vermek için tasarlanmıştır. Bu nedenle PCA denetlenmemiş bir boyutluluk azaltma yöntemidir ve LDA denetimli bir boyutluluk azaltma yöntemidir.

4.1 Temel Bileşen Analizi (PCA)

Ayrıştırma kütüphanesinin PCA sınıfını kullanarak özellik seçme kodu aşağıdaki gibidir:

4.2 Lineer Ayırt Edici Analiz (LDA)

Lda kütüphanesinin LDA sınıfını kullanarak özellik seçme kodu aşağıdaki gibidir:

Referanslar:

  1. https://www.quora.com/topic/Data-Cleansing
  2. https://www.quora.com/What-is-the-real-meaning-of-data-cleaning-for-a-Data-Scientist
  3. https://www.quora.com/What-is-your-best-description-of-data-cleaning-in-data-analysis-and-machine-learninghttps://www.quora.com/What-is- your-best-açıklama-of-data-temizlik-data-analizde-ve-makine-öğrenme