Python机器学习编程与实践 课件 第8章回归分析_第1页
Python机器学习编程与实践 课件 第8章回归分析_第2页
Python机器学习编程与实践 课件 第8章回归分析_第3页
Python机器学习编程与实践 课件 第8章回归分析_第4页
Python机器学习编程与实践 课件 第8章回归分析_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线性回归

TensorFlow实战线性回归问题?用一个神经元搞定!y=2x+

1监督式机器学习监督式机器学习机器学习系统:通过学习如何组合输入信息来对未见过的数据做出有用的预测本讲课程部分内容基于“机器学习速成课程”/machine-learning/crash-course/4简单的线性回归案例y=w*x+

b标签是我们要预测的真实事物:y线性回归中的y变量特征是指用于描述数据的输入变量:xi线性回归中的{x1,x2,…,xn}变量术语:标签和特征6样本是指数据的特定实例:x有标签样本具有{特征,标签}:{x,y}用于训练模型无标签样本具有{特征,?}:{x,?}用于对新数据做出预测术语:样本和模型7样本是指数据的特定实例:x有标签样本具有{特征,标签}:{x,y}用于训练模型无标签样本具有{特征,?}:{x,?}用于对新数据做出预测模型可将样本映射到预测标签:y’由模型的内部参数定义,这些内部参数值是通过学习得到的术语:样本和模型8训练模型表示通过有标签样本来学习(确定)所有权重和偏差的理想值在监督式学习中,机器学习算法通过以下方式构建模型:

检查多个样本并尝试找出可最大限度地减少损失的模型这一过程称为经验风险最小化术语:训练损失是对糟糕预测的惩罚:损失是一个数值,表示对于单个样本而言模型预测的准确程度如果模型的预测完全准确,则损失为零,否则损失会较大训练模型的目标是从所有样本中找到一组平均损失“较小”的权重和偏差术语:损失10左侧模型的损失较大右侧模型的损失较小损失11定义损失函数12L1损失:基于模型预测的值与标签的实际值之差的绝对值平方损失:一种常见的损失函数,又称为

L2

损失均方误差

(MSE)

指的是每个样本的平均平方损失以下曲线图中显示的两个数据集,哪个数据集的均方误差

(MSE)较高?13问题L2损失(MSE):4/10=0.4(左)8/10=0.8(右)L1损失:4/10=0.4(左)4/10=0.4(右)模型训练与降低损失训练模型的迭代方法16要点模型训练要点首先对权重w和偏差b进行初始猜测然后反复调整这些猜测直到获得损失可能最低的权重和偏差为止收敛在学习优化过程中,机器学习系统将根据所有标签去重新评估所有特征,为损失函数生成一个新值,而该值又产生新的参数值。通常,您可以不断迭代,直到总体损失不再变化或至少变化极其缓慢为止。这时候,我们可以说该模型已收敛19计算损失例子pred=w*x+

b该线性回归问题产生的损失与权重图为凸形凸形问题只有一个最低点;即只存在一个斜率正好为

0

的位置,这个最小值就是损失函数收敛之处梯度下降法梯度下降法梯度:一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大20梯度下降法梯度:一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大21梯度下降法沿着负梯度方向进行下一步探索梯度是矢量:具有方向和大小22学习率沿着负梯度方向进行下一步探索,前进多少合适?用梯度乘以一个称为学习速率(有时也称为步长)的标量,以确定下一个点的位置例如:如果梯度大小为

2.5,学习速率为

0.01,则梯度下降法算法会选择距离前一个点0.025

的位置作为下一个点23学习率的设置非常重要梯度学习速率过小梯度学习速率过大:得不到最优值24学习率25学习率26超参数27在机器学习中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据通常情况下,需要对超参数进行优化,选择一组好的超参数,可以提高学习的性能和效果超参数是编程人员在机器学习算法中用于调整的旋钮典型超参数:学习率、神经网络的隐含层数量,每一层节点数等调参就是指调整学习模型的超参数线性回归问题TensorFlow实战核心步骤30y=wx+

b线性方程单变量的线性方程可以

表示为:y=w*x+

by=2.0*x

+1本例通过生成人工数据集。随机生成一个近似采样随机分布,使得w=2.0,

b=1,

并加入一个噪声,噪声的最大振幅为0.4人工数据集生成33利用matplotlib画出生成结果定义训练数据的占位符,x是特征值,y是标签值构建模型定义模型函数34定义模型结构35设置训练参数训练模型36学习率是个经验值,一般设置范围为0.01~0.1太小收敛慢,太大无法找到最优值损失函数用于描述预测值与真实值之间的误差,从而指导模型收敛方向常见损失函数:均方差(MeanSquareError,

MSE)和交叉熵(cross-entropy)L2

损失函数定义损失函数37定义优化器Optimizer,初始化一个GradientDescentOptimizer设置学习率和优化目标:最小化损失定义优化器38创建会话,保存图结构和运行数据创建会话模型训练阶段,设置迭代轮次,每次通过将样本逐个输入模型,进行梯度下降优化操作每轮迭代后,绘制出模型曲线迭代训练迭代训练结果图形从上图可以看出,本案例所拟合的模型较简单,训练3次之后已经接近收敛对于复杂模型,需要更多次训练才能收敛41当训练完成后,打印查看参数结果查看*

数据每次运行都可能会有所不同结果可视化利用模型

进行预测小结通过一个简单的例子介绍了利用Tensorflow实现机器学习的思路,重点讲解了下述步骤:生成人工数据集及其可视化构建线性模型定义损失函数定义优化器、最小化损失函数训练结果的可视化利用学习到的模型进行预测在训练中显示损失值显示损失值增加一个控制显示粒度的参数显示损失值48图形化显示损失值49随机梯度下降在梯度下降法中,批量指的是用于在单次迭代中计算梯度的样本总数假定批量是指整个数据集,数据集通常包含很大样本(数万甚至数千亿),此外,

数据集通常包含多个特征。因此,一个批量可能相当巨大。如果是超大批量,则单次迭代就可能要花费很长时间进行计算随机梯度下降法

(SGD)

每次迭代只使用一个样本(批量大小为

1),如果进行足够的迭代,SGD

也可以发挥作用。“随机”这一术语表示构成各个批量的一个样本都是随机选择的小批量随机梯度下降法(小批量SGD)是介于全批量迭代与

SGD

之间的折衷方案。小批量通常包含

10-1000

个随机选择的样本。小批量

SGD

可以减少

SGD

中的杂乱样本数量,但仍然比全批量更高效波士顿房价预测多元线性回归问题TensorFlow实践3波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价房价(单价)显然和多个特征变量相关,不是单变量线性回归(一元线性回归)问题选择多个特征变量来建立线性方程,这就是多变量线性回归(多元线性回归)问题波士顿房价预测前情回顾:一元线性回归y=2x+

1前情回顾:机器学习的步骤53房价预测问题:多元线性回归及TensorFlow编程进阶Boston房价预测数据读取CRIM:城镇人均犯罪率ZN:住宅用地超过

25000

sq.ft.

的比例INDUS:

城镇非零售商用土地的比例CHAS:边界是河流为1,否则0NOX:

一氧化氮浓度RM:

住宅平均房间数数据集解读AGE:

1940年之前建成的自用房屋比例DIS:到波士顿5个中心区域的加权距离RAD:

辐射性公路的靠近指数TAX:

每10000美元的全值财产税率PTRATIO:

城镇师生比例LSTAT:人口中地位低下者的比例MEDV:

自住房的平均房价,单位:千美元读取数据读取数据通过pandas读取数据文件,列出统计概述数据规范想快速读取常规大小的数据文件时,通过创建读缓存区和其他的机制可能会造成额外的开销。此时建议采用Pandas库来处理。Pandas官网(

)这样介绍Pandas:“Pandas是一款开源的、基于BSD协议的Python库,能够提供高性能、易用的数据结构和数据分析工具。”他具有以下特点:能够从CSV文件、文本文件、MS

Excel、SQL数据库,甚至是用于科学用途的HDF5格式CSV文件加载能够自动识别列头,支持列的直接寻址Pandas库• 数据结构自动转换为Numpy的多维数组59准备建模准备建模多元线性回归模型房价和多个特征变量相关,本讲尝试使用多元线性回归建模∑x1x2x3bw1w2w3bY加上偏置项计算求解13Y=x1xw1+x2xw2+…+x12xw12+

b结果可以由不同特征的输入值和对应的权重相乘求和,多变量线性方程的矩阵运算表示Y=x1xw1+x2xw2+…+xnxwn

+b𝑛Y=෍

xk∗wk+𝑏𝑘=0∗𝑤1𝑥1

𝑥2

𝑥3

𝑤2𝑤3+b=𝑥1∗𝑤1+𝑥2∗𝑤2+𝑥3∗

𝑤3+b矩阵运算是机器学习的基本手段,必须掌握!14机器学习中的基本线性代数线性代数的数学对象数学对象标量标量只是一个单一的数字向量向量是一个有序的数字数组可以在一行或一列中矩阵矩阵是一个有序的二维数组,它有两个索引。第一个指向该行,第二个指向该列向量也是一个矩阵,但只有一行或一列线性代数基本计算规则1

矩阵标量运算如果矩阵乘,除,或者加、减一个标量,即:对矩阵的每一个元素进行数学运算线性代数基本计算规则2

矩阵-矩阵加法和减法矩阵-矩阵加法和减法要求是矩阵具有相同的尺寸,并且结果将是具有相同尺寸的矩阵。只需在第一个矩阵中添加或减去第二个矩阵的每个值及其对应的值18线性代数基本计算规则3

矩阵-矩阵点乘(点积)矩阵-矩阵点乘要求是矩阵具有相同的尺寸,矩阵各个对应元素相乘20线性代数基本计算规则4

矩阵矩阵相乘(叉乘)如果第一个矩阵列的数量与第二个矩阵行数要相等,才能将矩阵相乘结果矩阵具有与第一个矩阵相同的行数和与第二个矩阵相同的列数线性代数基本计算规则5

矩阵-向量乘法看作矩阵-矩阵叉乘的特列21线性代数基本计算规则6

向量-向量乘法(列向量-行向量)看作矩阵-矩阵叉乘的特列线性代数基本计算规则7

向量-向量乘法(行向量-列向量)看作矩阵-矩阵叉乘的特列中的特例23多变量线性方程的矩阵运算表示Y=x1xw1+x2xw2+…+xnxwn

+b𝑛Y=෍

xk∗wk+𝑏𝑘=0∗𝑤1𝑥1

𝑥2

𝑥3

𝑤2𝑤3+b=𝑥1∗𝑤1+𝑥2∗𝑤2+𝑥3∗

𝑤3+b线性代数基本计算规则8

矩阵转置第一列变成转置矩阵的第一行,第二列变成了矩阵转置的第二行一个m

*

n矩阵被转换成一个n

*

m矩阵a的aij元素等于转置矩阵aT

的aji元素转置矩阵像沿着45度轴线的矩阵镜像数据准备数据准备读取数据通过pandas读取数据文件,列出统计概述数据准备载入本示例所需数据28模型定义模型定义定义特征数据和标签数据的占位符定义训练数据占位符shape中

None

表示行的数量未知,在实际训练时决定一次代入多少行样本,从一个样本的随机SDG到批量SDG都可以定义模型结构定义模型函数Y=x1xw1+x2xw2+…+xnxwn+

b𝒙𝟏𝒙𝟐∗𝒘𝟏𝒙n

𝒘𝟐𝒘n+b= 𝒙𝟏∗𝒘𝟏+𝒙𝟐∗𝒘𝟐+𝒙n∗

𝒘n+b计算图和命名空间命名空间

name_scopeTensorflow计算图模型中常有数以千计节点,在可视化过程中很难一下子全部展示出来,因此可用name_scope为变量划分范围,在可视化中,这表示在计算图中的一个层级。32模型训练模型训练设置训练超参数模型训练34定义均方差损失函数模型训练3536定义均方差损失函数模型训练选择优化器模型训练常用优化器包括:tf.train.GradientDescentOptimizertf.train.AdadeltaOptimizertf.train.AdagradOptimizertf.train.AdagradDAOptimizertf.train.MomentumOptimizertf.train.AdamOptimizertf.train.FtrlOptimizertf.train.ProximalGradientDe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论