Python回歸分析五部曲(三)—一元非線性回歸


(一)基礎鋪墊

  • 一元非線性回歸分析(Univariate Nonlinear Regression)

    • 在回歸分析中,只包括一個自變量和一個因變量,且二者的關系可用一條曲線近似表示,則稱為一元非線性回歸分析。

    • 一元二次方程:

y=a2x2+a1x1+a0x0


    • 一元三次方程:

y=a3x3a2x2+a1x1+a0x0


    • 一元 n 次方程:

y=anxn......+a1x1+a0x0

(二)案例-金融場景為例

產品編號 手續費(%) 金融產品銷售額
1 2.2 25.5
2 2.3 22.5
3 2.4 19.5
4 2.5 16.5
5 2.7 13.5
6 3.1 10.5
7 3.6 7.5
8 4.8 4.5
9 7.0 1.5

1.建模邏輯

  • 一元非線性回歸方程轉為多元一次回歸方程

y=a2x2+a1x1+a0x0

y=a2x¯2+a1x¯1+a0x¯0

shujudata

x¯0=x0

x¯1=x1

x¯2=x2

2.實操

  • jacky關鍵點提示:把一元非線性方程轉化為多元線性方程的方法

    • 轉化的方法是PolynomialFeatures類

    • 要確定是一元幾次方程(從圖形中觀察),然后確定degree是幾(多少階的方程)

#---author:朱元祿---
import pandas
data = pandas.read_csv(
    'file:///Users/apple/Desktop/jacky_1.csv',encoding='GBK'
)

x = data[["手續費(%)"]]
y = data[["金融產品銷售額"]]

import matplotlib
font = {
    'family':'SimHei'
}
matplotlib.rc('font',**font)
matplotlib.rcParams['axes.unicode_minus'] = False
from pandas.plotting import scatter_matrix

scatter_matrix(
    data[["手續費(%)","金融產品銷售額"]],
    alpha = 0.8,figsize =(10,10),diagonal = 'kid'
)

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

pf = PolynomialFeatures(degree=2)
x_2_fit = pf.fit_transform(x)

lrModel = LinearRegression()
lrModel.fit(x_2_fit,y)

lrModel.score(x_2_fit,y)

x_2_predict = pf.fit_transform([9],[10])
lrModel.predict(x_2_predict)


免責聲明!

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



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