Scikit Learn - Extended Linear Modeling

Bab ini berfokus pada fitur polinomial dan alat pipelining di Sklearn.

Pengantar Fitur Polinomial

Model linier yang dilatih pada fungsi non-linier data umumnya mempertahankan performa cepat metode linier. Ini juga memungkinkan mereka untuk menyesuaikan data yang jauh lebih luas. Itulah alasan dalam pembelajaran mesin model linier seperti itu, yang dilatih tentang fungsi nonlinier, digunakan.

Salah satu contohnya adalah regresi linier sederhana dapat diperpanjang dengan membangun fitur polinomial dari koefisien.

Secara matematis, misalkan kita memiliki model regresi linier standar maka untuk data 2-D akan terlihat seperti ini -

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

Sekarang, kita dapat menggabungkan fitur dalam polinomial orde dua dan model kita akan terlihat seperti berikut -

$$ 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 $$

Di atas masih model linier. Di sini, kita melihat bahwa regresi polinomial yang dihasilkan berada dalam kelas model linier yang sama dan dapat diselesaikan dengan cara yang sama.

Untuk melakukannya, scikit-learn menyediakan modul bernama PolynomialFeatures. Modul ini mengubah matriks data masukan menjadi matriks data baru dengan derajat tertentu.

Parameter

Tabel berikut berisi parameter yang digunakan oleh PolynomialFeatures modul

Sr Tidak Parameter & Deskripsi
1

degree - bilangan bulat, default = 2

Ini mewakili derajat fitur polinomial.

2

interaction_only - Boolean, default = false

Secara default, ini salah tetapi jika disetel sebagai true, fitur-fitur yang merupakan produk dari sebagian besar fitur input yang berbeda, diproduksi. Fitur tersebut disebut fitur interaksi.

3

include_bias - Boolean, default = true

Ini mencakup kolom bias yaitu fitur di mana semua pangkat polinomial adalah nol.

4

order - str di {'C', 'F'}, default = 'C'

Parameter ini mewakili urutan larik keluaran dalam kasus padat. Urutan 'F' berarti lebih cepat untuk menghitung tetapi di sisi lain, itu dapat memperlambat penduga berikutnya.

Atribut

Tabel berikut berisi atribut-atribut yang digunakan oleh PolynomialFeatures modul

Sr Tidak Atribut & Deskripsi
1

powers_ - larik, bentuk (n_output_features, n_input_features)

Ini menunjukkan pangkat_ [i, j] adalah eksponen dari input ke-j dalam output ke-i.

2

n_input_features _ - int

Seperti namanya, ini memberikan jumlah total fitur input.

3

n_output_features _ - int

Seperti namanya, ini memberikan jumlah total fitur keluaran polinomial.

Contoh Implementasi

Mengikuti penggunaan skrip Python PolynomialFeatures transformator untuk mengubah susunan 8 menjadi bentuk (4,2) -

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

Keluaran

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.]
   ]
)

Merampingkan menggunakan alat Pipeline

Jenis preprocessing di atas yaitu mengubah matriks data masukan menjadi matriks data baru dengan derajat tertentu, dapat dirampingkan dengan Pipeline alat, yang pada dasarnya digunakan untuk menghubungkan beberapa penduga menjadi satu.

Contoh

Skrip python di bawah ini menggunakan alat Pipeline Scikit-learn untuk merampingkan pemrosesan awal (akan cocok dengan data polinomial order-3).

#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_

Keluaran

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

Keluaran di atas menunjukkan bahwa model linier yang dilatih pada fitur polinomial mampu memulihkan koefisien polinomial masukan yang tepat.