線性迴歸實戰

import pandas as pd 
from sklearn.linear_model import LinearRegression 
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error,r2_score

data = pd.read_csv('./Desktop/汽車銷售數據.csv')
data.head()


#查看數據是否有空值
data.isnull().any()

out:
券代碼                False
日期                 False
傳統汽車銷量             False
國內生產總值當季值(億元)x1    False
汽油價格(元/噸)x2        False
人民幣貸款基準利率%x3       False
汽車總產量(萬輛)x4        False
公路里程數              False
汽車整車股票指數           False
消費者信心指數            False


#去除空值
data = data.dropna()

#劃分訓練集與測試集
X = data.iloc[:,3:]
Y = data.iloc[:,2]
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size = 0.2,random_state = 1234)

#由於各特徵的範圍不一,需要標準化
ss = StandardScaler()
ss.fit(x_train)
x_train_ss = ss.transform(x_train)
x_test_ss = ss.transform(x_test)

#構建模型
lr = LinearRegression()
lr.fit(x_train_ss,y_train)

out:
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
             normalize=False)


#各特徵的係數
lr.coef_

out:
    array([-14.97630252,   2.32553882,   1.41436362, 237.23659298,
             3.42730138,   1.80472323,  -4.99775286])


#截距
lr.intercept_

out:
430.7574509803923


y_pred = lr.predict(x_test_ss)

#輸出mse值
mean_squared_error(y_test,y_pred)

out:
19.500348658914465

#輸出R平方值
r2_score(y_test,y_pred)

out:
0.9995192568677627

 

發佈了33 篇原創文章 · 獲贊 31 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章