实践-python实现回归分析
作业:本周是统计学学习小组-第二期的第十三周,我们这周是python实践周,实现的内容是第十二周的回归分析部分,大家尝试着自定义函数实现上周的知识点,也可以调用python中自带的库实现。这次给大家提供的数据是汽车销售数据,各位可以使用数据进行实际操作
代码实现如下
#coding=utf-8
import sys
from sklearn.model_selectionimport train_test_split
import numpyas np
from sklearnimport datasets,linear_model
import pandasas pd
data = pd.read_csv('car_data.csv')
data = data.rename(columns={"券代码 ":'A',"日期":'B',"传统汽车销量":'C',"国内生产总值当季值(亿元)x1":'D',"汽油价格(元/吨)x2":'E',"人民币贷款基准利率%x3":'F',"汽车总产量(万辆)x4":'G',"公路里程数":'H',"汽车整车股票指数":'I',"消费者信心指数":'J'})
#print(data.head())
#print(data.describe())
#判断是否存在有特征值里面含有空值
# data.isnull().any()
#公路里程数存在空值,#将特征中的空值用均值进行填充
data['H']=data['H'].fillna(data['H'].mean())
#y = data.iloc[:,2]
#x = data.iloc[:, 3:5]
label = data[['J']].copy()
train=data.iloc[:,2:]
train=train.drop(['J'],axis=1)
print(train)
#结果见下:
#label
print(label)
# 训练数据#
# 将数据划分为训练集和测试集 #并且按照28的比例进行划分
x_train, x_test, y_train, y_test = train_test_split(train, label,test_size =0.2,random_state =1)
#训练回归模型
regr = linear_model.LinearRegression()
regr.fit(x_train,y_train)
#训练完进行预测
# print(x_test.dtypes)
#y_test=regr.predict(x_test)
y_pred=regr.predict(x_test)
# print(y_test.dtypes)
#将完全平方误差作为评价指标(MAE)
from sklearn.metricsimport mean_absolute_error
accs=mean_absolute_error(y_test['J'],y_pred)
#accs
print('coefficients(b1,b2...):',regr.coef_)
print('intercept(b0):',regr.intercept_)
# 预测数据
#y_pred = regr.predict(x_test)
# 查看模型得分
print(regr.score(x_test, y_test))
最终执行结果如下: