Cara melakukan regresi polinomial menggunakan scikit-learn


Regresi polinomial adalah teknik yang dapat kita gunakan ketika hubungan antara variabel prediktor dan variabel respon bersifat nonlinier.

Jenis regresi ini berbentuk:

Y = β 0 + β 1 X + β 2 X 2 + … + β h

di mana h adalah “derajat” polinomial.

Contoh langkah demi langkah berikut menunjukkan cara melakukan regresi polinomial dengan Python menggunakan sklearn.

Langkah 1: Buat datanya

Pertama, mari buat dua array NumPy untuk menampung nilai prediktor dan variabel respons:

 import matplotlib. pyplot as plt
import numpy as np

#define predictor and response variables
x = np. array ([2, 3, 4, 5, 6, 7, 7, 8, 9, 11, 12])
y = np. array ([18, 16, 15, 17, 20, 23, 25, 28, 31, 30, 29])

#create scatterplot to visualize relationship between x and y
plt. scatter (x,y)

Dari scatterplot terlihat bahwa hubungan antara x dan y tidak linier.

Oleh karena itu, sebaiknya sesuaikan model regresi polinomial dengan data untuk menangkap hubungan non-linier antara kedua variabel.

Langkah 2: Sesuaikan model regresi polinomial

Kode berikut menunjukkan cara menggunakan fungsi sklearn agar sesuai dengan model regresi polinomial derajat 3 ke kumpulan data ini:

 from sklearn. preprocessing import PolynomialFeatures
from sklearn. linear_model import LinearRegression

#specify degree of 3 for polynomial regression model
#include bias=False means don't force y-intercept to equal zero
poly = PolynomialFeatures(degree= 3 , include_bias= False )

#reshape data to work properly with sklearn
poly_features = poly. fit_transform ( x.reshape (-1, 1))

#fit polynomial regression model
poly_reg_model = LinearRegression()
poly_reg_model. fit (poly_features,y)

#display model coefficients
print (poly_reg_model. intercept_ , poly_reg_model. coef_ )

33.62640037532282 [-11.83877127 2.25592957 -0.10889554]

Dengan menggunakan koefisien model yang ditunjukkan pada baris terakhir, kita dapat menulis persamaan regresi polinomial yang sesuai sebagai berikut:

kamu = -0,109x 3 + 2,256x 2 – 11,839x + 33,626

Persamaan ini dapat digunakan untuk mencari nilai yang diharapkan dari variabel respon dengan nilai tertentu dari variabel prediksi.

Misalnya, jika x adalah 4, nilai yang diharapkan untuk variabel respons, y, adalah 15,39:

kamu = -0,109(4) 3 + 2,256(4) 2 – 11,839(4) + 33,626= 15,39

Catatan : Untuk menyesuaikan model regresi polinomial dengan derajat berbeda, cukup ubah nilai argumen derajat di fungsi PolynomialFeatures() .

Langkah 3: Visualisasikan model regresi polinomial

Terakhir, kita dapat membuat plot sederhana untuk memvisualisasikan model regresi polinomial yang disesuaikan dengan titik data asli:

 #use model to make predictions on response variable
y_predicted = poly_reg_model. predict (poly_features)

#create scatterplot of x vs. y
plt. scatter (x,y)

#add line to show fitted polynomial regression model
plt. plot (x,y_predicted,color=' purple ')

Dari grafik tersebut, kita dapat melihat bahwa model regresi polinomial tampaknya cocok dengan data tanpa overfitting .

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi sklearn PolynomialFeatures() di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya menggunakan sklearn:

Cara mengekstrak koefisien regresi dari sklearn
Cara menghitung presisi seimbang menggunakan sklearn
Bagaimana menafsirkan laporan klasifikasi di Sklearn

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *