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 版权协议,转载请附上原文出处链接和本声明。