对某路口的交通流量监测数据,对车流量的信息进行多项式回归

数据介绍: 数据为某路口的交通流量监测数据,记录全年小时级别的车流量。

实验目的: 根据已有的数据创建多项式特征,使用岭回归模型代替一般的线性模型,对车流量的信息进行多项式回归。
在这里插入图片描述
(本节内容数据见电脑”F:\python数据\test5“或腾讯微云文件”python数据\test5“)
在这里插入图片描述

import numpy as np
import pandas as pd
from sklearn.linear_model import Ridge #加载岭回归方法
from sklearn import model_selection #加载交叉验证模块
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures

a=pd.read_csv('F:/python数据/test5.csv')
data=np.array(a)

'''
data的样子是:
[[ 79   0   3   1   1  31]
 [ 79   1   3   1   1  20]
 ...
 [ 79  22   4 365  53  44]
 [ 79  23   4 365  53  32]]
'''

#使用plt展示车流量信息
plt.plot(data[:,5])
plt.show()

#X用于保存0-5维数据,即属性
X=data[:,:5]
#y用于保存第6维数据,即车流量
y=data[:,5]


#用于创建最高次数6次方的的多项式特征,多次试验后决定采用6次
poly =PolynomialFeatures(6)
X=poly.fit_transform(X)
train_set_X,test_set_X,train_set_y,test_set_y=model_selection.train_test_split(X,y,test_size=0.3,random_state=0) #random_state是随机数种子


#创建回归器,并进行训练
clf =Ridge(alpha=1.0,fit_intercept=True)
clf.fit(train_set_X,train_set_y)
clf.score(test_set_X,test_set_y)
#利用测试集计算回归曲线的拟合优度,clf.score返回值为0.7375拟合优度,
# 用于评价拟合好坏,最大为1,无最小值。

start =200 #花一段200到300范围内的拟合曲线
end =300
y_pre =clf.predict(X) #是调用predict函数的拟合值
time =np.arange(start,end)
plt.plot(time,y[start:end],'b',label="real")
plt.plot(time,y_pre[start:end],'r',label='predict')
plt.legend(loc='upper left')
plt.show()

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45014721/article/details/114653411