Python与机器学习-- 电影数据分析(线性回归) [自动保存的]

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

Car 情报局
一、数据预处理
df['上映时间'] = pd.to_datetime(df['上映时间']) df['闭映时间'] = pd.to_datetime(df['闭映时间’]) 第1-2行:为什么要类型转换。to_datetime()日期转换 df['放映天数']=(df['闭映时间'] - df['上映时间']).dt.days + 1 第3行:日期减法后,结果是什么类型?dt.days读取什么?+1是这什么? df['票房/万'] = df['票房/万'].astype(float) 第4行:类型转换 df['日均票房/万'] = df['票房/万']/df['放映天数']
的模型假设, 建立学习器对未标签样本进行标签
强化学习
*上述只是其中一种机器学习算法的分类方式
一、机器学习
• 框架
库名
TensorFlow
发布者
Google
Caffe
UC Berkeley
CNTK
Microsoft
MXNet
DMLC (分布式机器学习社区)
Torch
Facebook
Theano Neon
在机器学习领域中,不同评价指标(即特征向量中的不同特征就是所 述的不同评价指标)往往具有不同的量纲和量纲单位,这样的情况会影 响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标 准化处理,以解决数据指标之间的可比性。
from sklearn.preprocessing import minmax_scale
x_train, x_test, y_train, y_test = train_test_split(df[[‘放映天数’]], df[[‘日均票房/万’]], train_size=0.8, test_size = 0.2)
调用接口:指定训练集与测试集的大小,返回的测试集与训练集切分结果。
训练集
实验报告相关练习
Car 情报局
四、异常值(噪声)
异常值
Car 情报局
异常值
Car 情报局
数据集中存在不合理的值,又称离群点、噪声,会引致预测结果不准确或无法收敛…
发现异常值的方法:
• 1)简单统计分析
• 2)3δ原则
• 3)箱形图分析
异常值
异常值的处理方法常用有四种: 1. 删除含有异常值的记录 2. 将异常值视为缺失值,交给缺失值处理方法来处理 3. 用平均值来修正 4. 不处理
电影数据分析(线性回归)
Car 情报局
知识回顾
重点: • Python工具包的使用:
numpy\pandas\matplotlib • 数据统计与分析流程 • 柱状图(子图、标签) 难点: • 数据可视化的进阶实现
Car 情报局
作业: 配置数据分析环境、实验报告
主要教学内容
机器学习
有监督学习 线性回归 一元线性回归
ห้องสมุดไป่ตู้验证集
测试集
train_test_split(sample_data,sample_target,test_size=0.25,train_size =None,random_state=0,stratify=y_train) • train_data:所要划分的样本特征集 • train_target:所要划分的样本类别数据 • test_size:测试样本占比,如果是整数的话就是样本的数量。默认是0.25 • train_size:训练样本的占比,如果指定了test_size按照test_size比例来
CNN建模 能力
RNN建模 能力
易用程度
运行速度
多GPU支持 程度
TensorFlow ★★★
Caffe CNTK MXNet Torch Theano Neon
★ ★ ★★ ★ ★★ ★
★★★
★★ ★★★
★★ ★★★
★★ ★★
★★
★ ★★★
★ ★★ ★★ ★
★★★
★ ★ ★★ ★★ ★ ★
★★
★ ★★ ★★ ★★★ ★★ ★★
蒙特利尔大学 Intel
支持语言
Python/C++/ Java/Go
Python/C++/ Matlab
Python/C++/ BrainScript
Python/C++/Matlab/ Julia/Go/R/Scala
C/Lua/
Python
Python
Car 情报局
支持系统
Linux/Mac OS/Android/iOS
★★
★ ★ ★★★ ★★ ★★ ★★
一、机器学习
• 第三方库
Car 情报局
二、线性回归
• 回归(Regression)
y 是连续值(实数或连续整数),f (x) 的输出也是
连续值。这种类型的问题就是回归问题。对于所有
已知或未知的 (x, y),使得 f (x,θ ) 和 y 尽可能地
一致。损失函数通常定义为平方误差。
小结:10min随堂测
• 测一测你掌握了多少 • 计入课堂分(有没有认真听)
Car 情报局
• 作业完成情况
大数据1801:43人
大数据1802:48人
Car 情报局
• 实验报告上交格式:.html
全体都有:准备好英文听写
• 机器学习 • 有监督学习 • 分类 • 回归 • 聚类 • 降维 • 线性回归
Car 情报局
工作机理 目的
一、机器学习
• 定义
Car 情报局
计算机利用已有的数据(经验),得出了某种模型(规律),并利用此模型预测未来数据 特征的一种方法。
人类学习 VS 机器学习
一、机器学习
• 应用
范围 模式识别 数据挖掘 统计学习 计算机视觉 语音识别 自然语言处理
领域 机器学习 机器学习+数据库 统计+机器学习 图像处理+机器学习 语音处理+机器学习 文本处理+机器学习
Car 情报局
上机时间:8min
Car 情报局
• 数据分析与预测 • 数据可视化 • 实验报告步骤5-6 • 思考:如何画出直线?完成第7题
六、数据集的切分
Car 情报局
六、数据集的切分
Car 情报局
训练集(training set):训练集用于建立模型,简单的说就是通过训练集的数据确定拟合曲线的参数 验证集(validation set):模型选择(model selection),即做模型的最终优化及确定,用来辅助模型构
• 导入的第三方包名 • 线性回归所在的模块名 • 使用的线性回归类名 • 日期类型转换函数 • 拟合函数 • 预测函数
Car 情报局
知识回顾:机器学习
• 定义
Car 情报局
计算机利用已有的数据(经验),得出了某种模型(规律),并利用此模型预测未来数据 特征的一种方法。
人类学习 VS 机器学习
知识回顾:线性回归
• 分类(Classification)
y 是离散的类别标记(符号),就是分类问题。损失
函数有一般用 0-1 损失函数或负对数似然函数等。 在分类问题中,通过学习得到的决策函数 f (x,θ ) 也叫分类器。
回归
线性回归 最小二乘 法回归 局部回归
神经网络
Car 情报局
分类
逻辑回归 决策树 贝叶斯
KNN
Car 情报局
上机时间:15min
• 数据采集 • 数据清洗 • 实验报告步骤1-2
Car 情报局
二、数据分析
测试数据集 x_test
Car 情报局
x_train 训练数据集
y_train
机器学习 fit( ) 算法
模型
predict( )
输出结果 y_pred
y_test
评估 报告
from sklearn import linear_model x=df['放映天数'] y=df['日均票房/万'] regr = linear_model.LinearRegression() 第4行:建立线性回归方程 regr.fit(x, y) 第5行:线性回归拟合(训练)
归一化: Normalization
• 什么是归一化:
归一化是将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量。
• 归一化的方法:
1)最大最小标准化(Min-Max Normalization) 2)Z-score标准化方法 3)非线性归一化
• 归一化的好处:
1)归一化后加快了梯度下降求最优解的速度; 2)归一化有可能提高精度(如KNN); 注:没有一种数据标准化的方法放在每一个问题、每一个模型,都能提高算法精度和加速收敛。
建,它是可选的。 测试集(test set):是用来检验最终选择的模型的性能。
训练集
验证集
测试集
六、数据集的切分
Car 情报局
from sklearn.model_selection import train_test_split
引入包:引入模型选择模块的train_test_split
#拆分训练集和测试集
支持 向量机
随机森林
二、线性回归
Car 情报局
三、一元线性回归
Car 情报局
100个散点样本,求出回归方程 构建计算图
四、sklearn中线性回归实现
Car 情报局
项目二:电影数据分析与预测
film.txt
Car 情报局
一、数据准备
#coding:utf-8
import pandas as pd df= pd.read_csv('film.txt', delimiter=';')
引入包:引入数据预处理模块的minmax_scale
df[‘日均票房/万’] = minmax_scale(df[‘日均票房/万’]) df[‘放映天数’] = minmax_scale(df[‘放映天数’])
调用接口:minmax_scale的输入与输出
print(df)
Car 情报局
归一化
Car 情报局
第3行:分隔符是什么?列名省略后,列名取自哪里?
df=df[['上映时间','闭映时间', '票房/万’]]
第4行:注意这句话的作用,区别第5与第4行代码换顺序的时候有什么区别。
df=df.dropna()
• delimiter=';’ • df=df[['上映时间','闭映时间', '票房/万']]
Car 情报局
• 异常值处理主要用于非监督学习中,空间分布奇异点。比如:聚类(outlier)
四、去除奇异值(噪声)
异常值
#去除奇异点 df = df.loc[ (df['日均票房/万'] < 5000)]
条件:数值比较 df = df[ df['日均票房/万'] < 5000]
Car 情报局
五、归一化
数据预处理
异常值 范围缩放(归一化)
数据集切分
项目:电影数据分析与预测(回归)
数据读取 数据整理 数据分析 数据可视化 数据预测应用
重点:
1. 回归的概念 2. 一元线性回归的应用
难点:
1. 数据清洗的过程及处理 2. 数据可视化
• 课堂实训
Car 情报局
机器学习VS人类学习
Linux/Mac OS/Windows
Linux/Windows
Linux/Mac OS/ Windows/Android/iOS
Linux/Mac OS/ Windows/Android/iOS Linux/Mac OS/Windows
Linux
一、机器学习
• 框架
Car 情报局
库名
学习材料 丰富程度
y_test
评估 报告
from sklearn import linear_model x=df['放映天数'] y=df['日均票房/万'] regr = linear_model.LinearRegression() 第4行:建立线性回归方程 regr.fit(x, y) 第5行:线性回归拟合(训练)
三、数据预测与可视化展现
import matplotlib.pyplot as plt
图中有中文的处理:为正确显示中文,此外要加什么代码?
plt.title(u'放映天数与票房关系图(一元线性回归分析)') plt.xlabel(u'放映天数') plt.ylabel(u'日均票房收入\万元') plt.scatter(x, y, color='black’)
• 有监督学习
回归
线性回归 最小二乘 法回归 局部回归
神经网络
分类
逻辑回归 决策树 贝叶斯
KNN
支持 向量机
随机森林
Car 情报局
知识回顾、数据分析
测试数据集 x_test
Car 情报局
x_train 训练数据集
y_train
机器学习 fit( ) 算法
模型
predict( )
输出结果 y_pred
Car 情报局
一、机器学习
Car 情报局

监方督法学习:从带标签(标注)的训练样本中建立一个模式(模型),并依此模式推测新
的数据标签的算法
无监督学习:在学习时并不知道其分类结果,其目的是去对原始资料进行分类,以
便了解资料内部结构算法
半监督学习:利用少量标注样本和大量未标注样本进行机器学习,利用数据分布上
散点图:黑色的点为原始数据
plt.scatter(x, regr.predict(x), color='red',linewidth=1)
散点图:红色的点对原始输入的预测结果
plt.show()
Car 情报局
上机时间:15min
Car 情报局
• 数据分析与预测 • 数据可视化 • 实验报告步骤3-4
相关文档
最新文档