Scikit-learn kullanılarak polinom regresyon nasıl gerçekleştirilir


Polinom regresyon, yordayıcı değişken ile yanıt değişkeni arasındaki ilişkinin doğrusal olmadığı durumlarda kullanabileceğimiz bir tekniktir.

Bu tür bir regresyon şu şekli alır:

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

burada h polinomun “derecesidir”.

Aşağıdaki adım adım örnek, Python’da sklearn kullanılarak polinom regresyonunun nasıl gerçekleştirileceğini gösterir.

1. Adım: Verileri oluşturun

Öncelikle bir tahmincinin ve bir yanıt değişkeninin değerlerini tutacak iki NumPy dizisi oluşturalım:

 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)

Dağılım grafiğinden x ve y arasındaki ilişkinin doğrusal olmadığını görebiliriz.

Bu nedenle, iki değişken arasındaki doğrusal olmayan ilişkiyi yakalamak için verilere bir polinom regresyon modeli uydurmak iyi bir fikirdir.

Adım 2: Polinom regresyon modelini yerleştirin

Aşağıdaki kod, bu veri kümesine 3. derece polinom regresyon modelini sığdırmak için sklearn işlevlerinin nasıl kullanılacağını gösterir:

 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]

Son satırda gösterilen model katsayılarını kullanarak uygun polinom regresyon denklemini aşağıdaki gibi yazabiliriz:

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

Bu denklem, tahmin edilen değişkenin belirli bir değeri verildiğinde yanıt değişkeninin beklenen değerini bulmak için kullanılabilir.

Örneğin, eğer x 4 ise yanıt değişkeni y için beklenen değer 15,39 olacaktır:

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

Not : Bir polinom regresyon modelini farklı bir dereceye sığdırmak için, PolynomialFeatures() işlevindeki derece bağımsız değişkeninin değerini değiştirmeniz yeterlidir.

Adım 3: Polinom regresyon modelini görselleştirin

Son olarak, orijinal veri noktalarına uyan polinom regresyon modelini görselleştirmek için basit bir grafik oluşturabiliriz:

 #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 ')

Grafikten, polinom regresyon modelinin verilere aşırı uyum sağlamadan iyi uyum sağladığını görebiliriz.

Not : Sklearn PolynomialFeatures() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde sklearn kullanılarak diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Sklearn’den regresyon katsayıları nasıl çıkarılır
Sklearn kullanarak dengeli hassasiyet nasıl hesaplanır
Sklearn’de sınıflandırma raporu nasıl yorumlanır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir