第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何找到擬合多項式特征模型的回歸曲線方程

如何找到擬合多項式特征模型的回歸曲線方程

一只斗牛犬 2023-07-27 10:23:06
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.linear_model import LinearRegressionfrom sklearn.preprocessing import PolynomialFeaturesdata=pd.DataFrame({"input": [0.001,0.015,0.066,0.151,0.266,0.402,0.45,0.499,0.598,0.646,0.738,0.782,0.86,0.894,0.924,0.95],"output":[0.5263157894736842,0.5789473684210524,0.6315789473684206,0.6842105263157897, 0.6315789473684206, 0.7894736842105263, 0.8421052631578945, 0.7894736842105263,  0.736842105263158,0.6842105263157897,  0.736842105263158,  0.736842105263158,0.6842105263157897, 0.6842105263157897, 0.6315789473684206,0.5789473684210524]})我有上述數(shù)據(jù),其中包括輸入和輸出數(shù)據(jù),我想制作一條正確擬合這些數(shù)據(jù)的曲線。首先繪制輸入和輸出值:我已經(jīng)編寫了這段代碼:X=data.iloc[:,0].to_numpy()X=X.reshape(-1,1)y=data.iloc[:,1].to_numpy()y=y.reshape(-1,1)poly=PolynomialFeatures(degree=2)poly.fit(X,y)X_poly=poly.transform(X)reg=LinearRegression().fit(X_poly,y)plt.scatter(X,y,color="blue")plt.plot(X,reg.predict(X_poly),color="orange",label="Polynomial Linear Regression")plt.xlabel("Temperature")plt.ylabel("Pressure")plt.legend(loc="upper left")情節(jié)是:但是我沒有找到上面的曲線方程(橙色曲線)我怎么找到?
查看完整描述

2 回答

?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗 獲得超8個贊

您的繪圖實際上對應(yīng)于您運行的代碼

poly=PolynomialFeatures(degree=7)

而不是degree=2。事實上,通過上述更改運行代碼,我們得到:

http://img1.sycdn.imooc.com//64c1d54d0001d4f803840230.jpg

現(xiàn)在,您的多項式特征是:


poly.get_feature_names()

# ['1', 'x0', 'x0^2', 'x0^3', 'x0^4', 'x0^5', 'x0^6', 'x0^7']

線性回歸的相應(yīng)系數(shù)是:


reg.coef_

# array([[   0.        ,    5.43894411,  -68.14277256,  364.28508827,

#         -941.70924401, 1254.89358662, -831.27091422,  216.43304954]])

加上截距:


reg.intercept_

# array([0.51228593])

鑒于上述情況,并設(shè)置


coef = reg.coef_[0]

由于這里我們的初始數(shù)據(jù)只有一個特征,因此您的回歸方程為:


y = reg.intercept_ + coef[0] + coef[1]*x + coef[2]*x**2 + coef[3]*x**3 + coef[4]*x**4 + coef[5]*x**5 + coef[6]*x**6 + coef[7]*x**7

為了進(jìn)行視覺驗證,我們可以用以下x數(shù)據(jù)繪制上述函數(shù)[0, 1]


x = np.linspace(0, 1, 15) 

運行上面的表達(dá)式y(tǒng)并


plt.plot(x, y)

給出:

http://img1.sycdn.imooc.com//64c1d55a00016ea603440214.jpg

使用一些隨機生成的數(shù)據(jù)x,我們可以驗證方程的結(jié)果y_eq確實等于y_reg數(shù)值精度范圍內(nèi)回歸模型產(chǎn)生的結(jié)果:


x = np.random.rand(1,10)

y_eq = reg.intercept_ + coef[0] + coef[1]*x + coef[2]*x**2 + coef[3]*x**3 + coef[4]*x**4 + coef[5]*x**5 + coef[6]*x**6 + coef[7]*x**7

y_reg = np.concatenate(reg.predict(poly.transform(x.reshape(-1,1)))) 


y_eq

# array([[0.72452703, 0.64106819, 0.67394222, 0.71756648, 0.71102853,

#         0.63582055, 0.54243177, 0.71104983, 0.71287962, 0.6311952 ]])


y_reg

# array([0.72452703, 0.64106819, 0.67394222, 0.71756648, 0.71102853,

#        0.63582055, 0.54243177, 0.71104983, 0.71287962, 0.6311952 ])


np.allclose(y_reg, y_eq)

# True

與問題無關(guān),我想您已經(jīng)知道嘗試將如此高階的多項式擬合到如此少的數(shù)據(jù)點并不是一個好主意,并且您可能應(yīng)該保持 2 或 3 的低階數(shù)......


查看完整回答
反對 回復(fù) 2023-07-27
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗 獲得超0個贊

請注意您如何生成問題中所示的圖。當(dāng)我運行你的代碼時,我得到了以下(度= 2)多項式,按預(yù)期擬合數(shù)據(jù):

http://img1.sycdn.imooc.com//64c1d56b000177e904180281.jpg

現(xiàn)在您已經(jīng)擬合了數(shù)據(jù),您可以看到模型的系數(shù):


print(reg.coef_)

print(reg.intercept_)

# [[ 0.          0.85962436 -0.83796885]]

# [0.5523586]

請注意,用于擬合此模型的數(shù)據(jù)相當(dāng)于以下內(nèi)容:


X_poly = np.concatenate([np.ones((16,1)), X, X**2], axis=1)

因此,單個數(shù)據(jù)點是按如下方式創(chuàng)建的向量:


temp = 0.5

x = np.array([1, temp, temp**2]).reshape((1,3))

您的多項式模型只是多項式特征的線性模型:


y = 軸 + B


或者


y = reg.coef_.dot(x.T) + reg.intercept_

print(y) #  [[0.77267856]]

確認(rèn):


print(reg.predict(x))  # array([[0.77267856]])


查看完整回答
反對 回復(fù) 2023-07-27
  • 2 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號