Scikit Learn - Genişletilmiş Doğrusal Modelleme

Bu bölüm, Sklearn'daki polinom özelliklerine ve boru hattı araçlarına odaklanmaktadır.

Polinom Özelliklerine Giriş

Doğrusal olmayan veri işlevleri üzerine eğitilen doğrusal modeller, genellikle doğrusal yöntemlerin hızlı performansını korur. Ayrıca çok daha geniş bir veri aralığına sığmalarına da olanak tanır. Makine öğreniminde doğrusal olmayan fonksiyonlar üzerine eğitilmiş bu tür doğrusal modellerin kullanılmasının nedeni budur.

Böyle bir örnek, basit bir doğrusal regresyonun, katsayılardan polinom özellikleri oluşturarak genişletilebilmesidir.

Matematiksel olarak, standart doğrusal regresyon modelimiz olduğunu varsayalım, o zaman 2 boyutlu veriler için böyle görünecektir -

$$ Y = W_ {0} + W_ {1} X_ {1} + W_ {2} X_ {2} $$

Şimdi, özellikleri ikinci dereceden polinomlarda birleştirebiliriz ve modelimiz aşağıdaki gibi görünecektir -

$$ Y = W_ {0} + W_ {1} X_ {1} + W_ {2} X_ {2} + W_ {3} X_ {1} X_ {2} + W_ {4} X_1 ^ 2 + W_ { 5} X_2 ^ 2 $$

Yukarıdakiler hala doğrusal bir modeldir. Burada, ortaya çıkan polinom regresyonunun aynı lineer modeller sınıfında olduğunu ve benzer şekilde çözülebileceğini gördük.

Bunu yapmak için scikit-learn, PolynomialFeatures. Bu modül, bir girdi veri matrisini belirli bir derecede yeni bir veri matrisine dönüştürür.

Parametreler

Aşağıdaki tablo, PolynomialFeatures modül

Sr.No Parametre ve Açıklama
1

degree - tamsayı, varsayılan = 2

Polinom özelliklerinin derecesini temsil eder.

2

interaction_only - Boolean, varsayılan = yanlış

Varsayılan olarak yanlıştır, ancak doğru olarak ayarlanırsa, çok farklı girdi özelliklerinin ürünü olan özellikler üretilir. Bu tür özelliklere etkileşim özellikleri denir.

3

include_bias - Boolean, varsayılan = doğru

Bir önyargı sütunu, yani tüm polinomların güçlerinin sıfır olduğu özelliği içerir.

4

order - {'C', 'F'} içinde str, varsayılan = 'C'

Bu parametre, yoğun durumda çıktı dizisinin sırasını temsil eder. 'F' sırası daha hızlı hesaplama anlamına gelir, ancak diğer yandan sonraki tahmin edicileri yavaşlatabilir.

Öznitellikler

Aşağıdaki tablo, tarafından kullanılan öznitelikleri içerir PolynomialFeatures modül

Sr.No Öznitelikler ve Açıklama
1

powers_ - dizi, şekil (n_output_features, n_input_features)

Güçler_ [i, j] 'nin i. Çıktıdaki j. Girişin üssü olduğunu gösterir.

2

n_input_features _ - int

Adından da anlaşılacağı gibi, toplam giriş özelliği sayısını verir.

3

n_output_features _ - int

Adından da anlaşılacağı gibi, polinom çıktı özelliklerinin toplam sayısını verir.

Uygulama Örneği

Python komut dosyası kullanımlarının ardından PolynomialFeatures 8 dizisini şekle (4,2) dönüştürmek için transformatör -

from sklearn.preprocessing import PolynomialFeatures
import numpy as np
Y = np.arange(8).reshape(4, 2)
poly = PolynomialFeatures(degree=2)
poly.fit_transform(Y)

Çıktı

array(
   [
      [ 1., 0., 1., 0., 0., 1.],
      [ 1., 2., 3., 4., 6., 9.],
      [ 1., 4., 5., 16., 20., 25.],
      [ 1., 6., 7., 36., 42., 49.]
   ]
)

Pipeline araçlarını kullanarak düzene sokma

Yukarıdaki ön işleme türü, yani bir girdi veri matrisini belirli bir derecedeki yeni bir veri matrisine dönüştürmek, Pipeline temelde birden çok tahmin ediciyi tek bir cihaza bağlamak için kullanılan araçlar.

Misal

Önişlemeyi kolaylaştırmak için Scikit-learn'ün Pipeline araçlarını kullanan aşağıdaki python komut dosyaları (3. dereceden bir polinom verisine uyacaktır).

#First, import the necessary packages.
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
import numpy as np

#Next, create an object of Pipeline tool
Stream_model = Pipeline([('poly', PolynomialFeatures(degree=3)), ('linear', LinearRegression(fit_intercept=False))])

#Provide the size of array and order of polynomial data to fit the model.
x = np.arange(5)
y = 3 - 2 * x + x ** 2 - x ** 3
Stream_model = model.fit(x[:, np.newaxis], y)

#Calculate the input polynomial coefficients.
Stream_model.named_steps['linear'].coef_

Çıktı

array([ 3., -2., 1., -1.])

Yukarıdaki çıktı, polinom özellikler üzerine eğitilmiş doğrusal modelin, girdi polinom katsayılarını tam olarak geri kazanabildiğini göstermektedir.