Python | 多項式回歸的實現


  多項式回歸是一種線性回歸形式,其中自變量x和因變量y之間的關系被建模為n次多項式。多項式回歸擬合x的值與y的相應條件均值之間的非線性關系,表示為E(y | x)

為什么多項式回歸:

  • 研究人員假設的某些關系是曲線的。顯然,這種類型的案例將包括多項式項。
  • 檢查殘差。如果我們嘗試將線性模型擬合到曲線數據,則預測變量(X軸)上的殘差(Y軸)的散點圖將在中間具有許多正殘差的斑塊。因此,在這種情況下,這是不合適的。
  • 通常的多元線性回歸分析的假設是所有自變量都是獨立的。在多項式回歸模型中,不滿足該假設。

多項式回歸的使用:

  這些基本上用於定義或描述非線性現象,例如:

  • 組織生長速度。
  • 疾病流行病的進展
  • 湖泊沉積物中碳同位素的分布

  回歸分析的基本目標是根據自變量x的值來模擬因變量y的期望值。在簡單回歸中,我們使用以下等式 -

y = a + bx + e

  這里y是因變量,a是y截距,b是斜率,e是誤差率。

  在許多情況下,這種線性模型將無法解決。例如,如果我們在這種情況下根據合成溫度分析化學合成的產生,我們使用二次模型

y = a + b1x + b2 ^ 2 + e

  這里y是x的因變量,a是y截距,e是誤差率。

  通常,我們可以將其建模為第n個值。

y = a + b1x + b2x ^ 2 + .... + bnx ^ n

  由於回歸函數在未知變量方面是線性的,因此這些模型從估計的角度來看是線性的。

因此,通過最小二乘技術,讓我們計算y的響應值。

Python中的多項式回歸:

要獲得用於分析多項式回歸的數據集,請單擊此處

  • 步驟1:導入庫和數據集
    導入重要的庫和我們用於執行多項式回歸的數據集。
# Importing the libraries 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

# Importing the dataset 
datas = pd.read_csv('data.csv') 
datas 

image.png

  • 第2步:將數據集分為2個組件

  將數據集划分為兩個組件,即X和yX將包含1到2之間的列.y將包含2列。

X = datas.iloc[:, 1:2].values 
y = datas.iloc[:, 2].values 
  • 第3步:將線性回歸擬合到數據集

  擬合線性回歸模型在兩個組件上。

# Fitting Linear Regression to the dataset 
from sklearn.linear_model import LinearRegression 
lin = LinearRegression() 

lin.fit(X, y) 
  • 第4步:將多項式回歸擬合到數據集

  將多項式回歸模型擬合到兩個分量X和y上。

# Fitting Polynomial Regression to the dataset 
from sklearn.preprocessing import PolynomialFeatures 

poly = PolynomialFeatures(degree = 4) 
X_poly = poly.fit_transform(X) 

poly.fit(X_poly, y) 
lin2 = LinearRegression() 
lin2.fit(X_poly, y) 
  • 步驟5:在此步驟中,我們使用散點圖可視化線性回歸結果。
# Visualising the Linear Regression results 
plt.scatter(X, y, color = 'blue') 

plt.plot(X, lin.predict(X), color = 'red') 
plt.title('Linear Regression') 
plt.xlabel('Temperature') 
plt.ylabel('Pressure') 

plt.show() 

image

  • 步驟6:使用散點圖可視化多項式回歸結果。
# Visualising the Polynomial Regression results 
plt.scatter(X, y, color = 'blue') 

plt.plot(X, lin2.predict(poly.fit_transform(X)), color = 'red') 
plt.title('Polynomial Regression') 
plt.xlabel('Temperature') 
plt.ylabel('Pressure') 

plt.show() 

image

  • 步驟7:使用線性和多項式回歸預測新結果。
# Predicting a new result with Linear Regression 
lin.predict(110.0) 

image

# Predicting a new result with Polynomial Regression 
lin2.predict(poly.fit_transform(110.0)) 

image

使用多項式回歸的優點:

  • 廣泛的功能可以適應它。
  • 多項式基本上適合寬范圍的曲率。
  • 多項式提供了依賴變量和自變量之間關系的最佳近似。

使用多項式回歸的缺點

  • 這些對異常值過於敏感。
  • 數據中存在一個或兩個異常值會嚴重影響非線性分析的結果。
  • 此外,遺憾的是,用於檢測非線性回歸中的異常值的模型驗證工具少於線性回歸。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM