线性回归实战

  • Post author:
  • Post category:其他


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



版权声明:本文为d345389812原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。