Python与机器学习-- 电影数据分析与预测(多项式回归)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

new_df['影片类型(爱情)'] = le.fit_transform(new_df['是
否爱情片'])
fit_transform: 什么时候出现过?
三、数据预测与可视化展现
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
电影数据分析(多项式回归)
课堂小结
重点 • 机器学习算法应用过程 • 一元线性回归 • 异常值(噪声) • 归一化 • 数据集的切分 难点 • 归一化处理、可视化
Car 情报局
思考 • 模型评估:如何判断模型好不
好? 作业 • 线上客观题 • 实验报告
知识点图谱
Car 情报局
• 1802-谢佳佳 • 1801-董露丹
Car 情报局
THANK YOU!
Car 情报局
多项式回归
前面已经对放映天数与票房进行了线性拟合,但结果不尽如人意。
多项式回归
任意一个函数至少在一个较小的范围内都可以用多项式任意逼近,因此在比较复杂的实际问题中。
Car 情报局
一元多项式回归
1. 只涉及一个自变量和一个应变量 2. 应变量与自变量呈曲线拟合关系 3. 应变量与自变量的关系可以用一个多项式方程表示
• 异常值处理:删除 数据筛选: 条件df['日均票房/万'] < 5000 。 • 范围缩放:归一化 数据预处理:preprocessing minmax_scale。 • 数据集的切分:训练集与测试集
模型选择:model_selection train_test_split。
知识回顾
salary.csv中存储了工龄与工资数据
期','日均票房/万’]], df[['评分’]], train_size=0.8, test_size=0.2)
regr = linear_model.LinearRegression()
regr.fit(x_train, y_train)
# 系数、截距
print('系数:',regr.coef_)
polymodel.fit(xt, y)
plt.scatter(x, y, color='black')
plt.scatter(x, polymodel.predict(xt), color='green',linewidth=1,label=u"多项式回归")
plt.legend(loc=2)
预测: 使用训练好的模型预测原始数据输入。
Car 情报局
项目应用:多项式回归(可视化)
Car 情报局
要求1:可视化如右图格式 要求2:添加线性回归线
思考: poly = PolynomialFeatures(degree = 3)? 要求3:要求2*2四个子图,分别degree=2,3,4,5
上机时间:25min
分步完成:
• 多项式回归 • 可视化曲线 • 比较不同degree • 实验报告步骤3-4
一、数据准备
Car 情报局
df[‘评分’] = df[‘评分’].astype(float) df[‘是否为爱情片']= df['影片类型'].str.contains('爱情').astype(str)
(1)得出判断结果: 判断是否含有爱情两字。
name_to_type = {'True':'1','False':'0’};
(2)设立映射规则: 规则的格式。
df['影片类型(爱情)']=df['是否爱情片'].map(name_to_type);
(3)执行映射: 使用设立的规则对一列进行映射。
二、数据分析:多元线性回归
Car 情报局
from sklearn import linear_model
x_train, x_test,y_train, y_test=train_test_split(df[['影片类型(爱情)’, '放映周
Car 情报局
一元VS多元线性回归
Car 情报局
票房只与放映天数有关吗?
• 上映时间 • 电影评价 • 国别 • 体裁
• 导演 • 演员 • 电影类别 • ….
多元线性回归
前面已经对放映天数与票房进行了线性拟合,但票房是多因素相关的
Car 情报局
多因素分析:日均票房、放映天数、影片类型(爱情)对评分的影响
y_pred = regr.predict(x_test)
# 显示预测值与测试值
plt.plot(range(len(y_test)),y_test,'green',label=u"测试值") plt.plot(range(len(y_pred)),y_pred,'red', linewidth=2.5,label=u"预测值")
(1)系数: 几维? (2)截距:几维?
print('截距:',regr.intercept_)
一、数据准备:标签映射
Car 情报局
Sklearn中的数据预处理: from sklearn import preprocessing
LabelEncoder
# 对电影类别进行数值化处理
le = preprocessing.LabelEncoder()
什么参数最重要?
项目应用:多项式回归(分析)
✓ 模型应用与可视化
poly = PolynomialFeatures(degree = 3) xt = poly.fit_transform(x)
构造多项式: 猜一猜degree用来指定什么?
建立多项式特征: 为输入x构建多项式特征。 polymodel = linear_model.LinearRegression()
plt.legend(loc=2) plt.show()
Car 情报局
上机时间:20min
• 多元分析与预测 • 数据可视化 • 实验报告步骤5-6
Car 情报局
课堂小结
重点:
• 数据集的切分 • 多项式回归 • 多元线性回归 • 标签映射
难点:多项式回归的实现
Car 情报局
思考:特征选择、如何提高准确率? 作业:实验报告
知识回顾
film.txt中存储了放映时间与票房数据
ห้องสมุดไป่ตู้
Car 情报局
from sklearn import linear_model
x=df[['放映天数']] y=df[['日均票房/万']] regr = linear_model.LinearRegression() regr.fit(x, y) y_pred = regr.predict(x)
c= ‘颜色可选’ marker= '点的样式’ cmap= '颜色变化’ alpha=“透明度” linewidths=“线宽” s= '点的大小'
主要教学内容
回归分析
多项式回归 多元线性回归 文本数据:标签映射
项目:电影数据分析与预测(多项式回归)
多项式回归 多元回归分析 练习:多元、多项式回归分析
dataset = pd.read_csv('salary.csv', delimiter=',’) x_train=dataset[['Year’]] y_train=dataset[['Salary’]] regr = linear_model.LinearRegression() regr.fit(x_train,y_train)
基本步骤: • 数据读取 • 数据清洗 • 数据类型转换 • 奇异值处理 • 归一化 • 数据集切分 • 模型训练 • 模型预测 • 可视化 循序渐进
Car 情报局
实验难点:可视化进阶
Car 情报局
x_min = x.values.min() - 0.1 x_max = x.values.max() + 0.1 x_new = np.arange(x_min,x_max,0.01).reshape(-1, 1) 产生序列: 最小值、最大值、步长确定等间隔的数据。 plt.scatter(x_new, regr.predict(x_new),s=3, color='red',linewidth=1,label=u"线性回归") plt.show()
相关文档
最新文档