机器学习实验1.2——影厅观影人数预测

实验内容:影厅观影人数预测

实验要求:

1.读取给定文件中数据集文件。(数据集路径:data/data72160/1_film.csv)

2.绘制影厅观影人数(filmnum)与影厅面积(filmsize)的散点图。

3.绘制影厅人数数据集的散点图矩阵。

4.选取特征变量与相应变量,并进行数据划分。

5.进行线性回归模型训练。

6.根据求出的参数对测试集进行预测。

7.绘制测试集相应变量实际值与预测值的比较。

8.对预测结果进行评价。
In [39]
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn import metrics
from sklearn.metrics import r2_score  

#1.读取给定文件中数据集文件。(数据集路径:data/data72160/1_film.csv)
csv_data=pd.read_csv('data/data72160/1_film.csv')#直接读取为DataFrame格式
print(csv_data.shape)#查看读取情况
print(csv_data[:5])

#2.绘制影厅观影人数(filmnum)与影厅面积(filmsize)的散点图。
 #先截取对应数据
filmnum=csv_data.loc[:,'filmnum'].values.reshape(-1,1)
filmsize=csv_data.loc[:,'filmsize'].values.reshape(-1,1)
 #绘图
plt.figure()
plt.scatter(filmsize,filmnum)
plt.xlabel('filmsize')
plt.ylabel('filmnum')
plt.title('filmsize-filmnum')
plt.show()

#3.绘制影厅人数数据集的散点图矩阵。
plt.figure()
tmp=np.arange(0,len(filmnum),1)
plt.scatter(tmp,filmnum,color='r')
plt.ylabel('filmnum')
plt.xlabel('index')
plt.title('index-filmnum')
plt.show()

#4.选取特征变量与相应变量,并进行数据划分。
x=csv_data.iloc[:,1:]
y=filmnum
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25)
x_train.shape,x_test.shape,y_train.shape,y_test.shape

#5.进行线性回归模型训练。
lr=LinearRegression()
lr.fit(x_train,y_train)

#6.根据求出的参数对测试集进行预测。
y_hat=lr.predict(x_test)

#7.绘制测试集相应变量实际值与预测值的比较。
plt.figure()
t = np.arange(len(x_test))  #创建t变量
plt.plot(t, list(y_test), 'r', label='y_test') #绘制y_test曲线
plt.plot(t, list(y_hat), 'g', label='y_hat')   #绘制y_hat曲线
plt.legend() #设置图例
plt.show()

#8.对预测结果进行评价。
print ("r2_score:",r2_score(y_test, y_hat)) #使用metrics的r2_score来对预测集的拟合优度进行评价
(126, 4)
   filmnum  filmsize  ratio  quality
0       45       106     17        6
1       44        99     15       18
2       61       149     27       10
3       41        97     27       16
4       54       148     30        8
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
r2_score: 0.7764138417718565
posted @ 2022-03-10 20:15  XDawned  阅读(164)  评论(0)    收藏  举报