官术网_书友最值得收藏!

4.2.1 線性回歸的基本原理

線性回歸的原理是,找到當(dāng)訓(xùn)練數(shù)據(jù)集中y的預(yù)測值和其真實值的平方差最小的時候,所對應(yīng)的w值和b值。線性回歸沒有可供用戶調(diào)節(jié)的參數(shù),這是它的優(yōu)勢,但也代表我們無法控制模型的復(fù)雜性。接下來我們繼續(xù)使用make_regression函數(shù),生成一個樣本數(shù)量為100,特征數(shù)量為2的數(shù)據(jù)集,并且用train_test_split函數(shù)將數(shù)據(jù)集分割成訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,再用線性回歸模型計算出w值和b值。現(xiàn)在我們在jupyter notebook中輸入代碼如下:

#導(dǎo)入數(shù)據(jù)集拆分工具
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
X, y = make_regression(n_samples=100,n_features=2,n_informative=2,random_
state=38)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
lr = LinearRegression().fit(X_train, y_train)

在4.1節(jié)我們已經(jīng)學(xué)過,方程的斜率w,也被稱為權(quán)重或者系數(shù),被存儲在coef_屬性中,而截距b被存儲在intercept_屬性中,我們可以通過“print”函數(shù)將它們打印出來看一下:

print('\n\n\n代碼運(yùn)行結(jié)果:')
print('==========\n')
print("lr.coef_: {}".format(lr.coef_[:]))
print("lr.intercept_: {}".format(lr.intercept_))
print('\n==========')
print('\n\n\n')

按下shift+回車鍵后,可以看到結(jié)果如圖4-8所示。

圖4-8 模型的系數(shù)和截距

【結(jié)果分析】intercept_屬性一直是一個浮點數(shù),而coef_屬性則是一個NumPy數(shù)組,其中每個特征對應(yīng)數(shù)據(jù)中的一個數(shù)值,由于我們這次使用make_regression生成的數(shù)據(jù)集中數(shù)據(jù)點有2個特征,所以lr.coef_是一個二維數(shù)組。也就是說,在本例中線性回歸模型的方程可以表示為

y = 70.385 9×X1 + 7.4321×X2 -1.42e-14

主站蜘蛛池模板: 临沭县| 天水市| 和顺县| 横山县| 盐城市| 岳池县| 灵台县| 黑龙江省| 台东县| 崇仁县| 福贡县| 莒南县| 金秀| 贵港市| 景东| 新河县| 项城市| 名山县| 昭苏县| 定边县| 兴海县| 前郭尔| 滦南县| 精河县| 华阴市| 景泰县| 冕宁县| 大渡口区| 井研县| 西畴县| 临泽县| 怀集县| 根河市| 浪卡子县| 云龙县| 夏津县| 特克斯县| 老河口市| 拜泉县| 错那县| 泰州市|