斯坦福大学机器学习笔记(1)线性回归

本文介绍了斯坦福大学的机器学习课程,包括监督学习的回归与分类概念,如预测销量与账户盗用检测,以及无监督学习的聚类和奇异值分解。重点讲解了单变量与多变量线性回归、梯度下降与随机梯度下降,以及局部加权回归算法。
摘要由CSDN通过智能技术生成

斯坦福大学的机器学习课程链接
斯坦福大学的课程视频
吴恩达老师机器学习教程中文笔记

一 监督学习和无监督学习

监督学习的基本思想是,我们数据集中的每个样本都有相应的“正确答案”,再根据这些样本作出预测。预测的方式有回归分类

1.你有一大批同样的货物,想象一下,你有上千件一模一样的货物等待出售,这时你想预测接下来的三个月能卖多少件?
2.你有许多客户,这时你想写一个软件来检验每一个用户的账户。对于每一个账户,你要判断它们是否曾经被盗过?
那这两个问题,它们属于分类问题、还是回归问题?

问题一是一个回归问题,因为你知道,如果我有数千件货物,我会把它看成一个实数,一个连续的值。因此卖出的物品数,也是一个连续的值。

问题二是一个分类问题,因为我会把预测的值,用 0 来表示账户未被盗,用 1 表示账户曾经被盗过。所以我们根据账号是否被盗过,把它们定为0 或 1,然后用算法推测一个账号是 0 还是 1,因为只有少数的离散值,所以我把它归为分类问题。

无监督学习中没有任何的标签或者是有相同的标签。针对一个没有任何标签的数据集,无监督学习算法可能会把这些数据分成两个不同的簇,这样叫做聚类算法。另外还有奇异值分解算法【svd】。

二、单变量线性回归(Linear Regression with One Variable)

摘要:一个输入,一个输出,假设变量关系是直线。先暂定θ1和θ2两个参数,这样就有一条直线暂时用作拟合,每一个样本对这条直线都有偏差。目标是找到最符合样本的曲线,标准是样本距离直线越小越好。第一个算法**【梯度下降】的效果是 在各种θ1和θ2参数组合中,每个样本的偏差求和【代价函数】之后的值最小**,因此那个算法在每尝试一组θ1和θ2时都要遍历每个样本与直线的距离。当样本量大的时候,用第二个算法【随机梯度下降法】,原理相同但是没有用大量样本,而是找一个样本看要往哪调,调过去后再找下一个样本看要往哪调,直到遍历完一次所有样本就直接完成。有理论支持这样行得通。

—下面是详细但不保证对的正文—

当输入和输出是一次函数的关系时

在这里插入图片描述
除以2是为了简化运算【求导的时候前面要乘2】
建模误差的平方和最小 是一次函数准确与否的标准。这个标准是代价函数 也被称作平方误差函数。有别的标准,但是这个常用。
在这里插入图片描述
蓝色那一片的最低点就是要求的两个参数值。但是以后要有更高维的数据,要找合适的算法去求“最低点”
梯度下降是一个用来求函数最小值的算法
梯度下降背后的思想是:开始时我们随机选择一个参数的组合计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
梯度下降的算法就是:参数值=原本的参数值 - 学习率 * 代价函数对参数的导数 //如果是参数值=原本的参数值 + 学习率 * 代价函数对参数的导数的话,就是梯度上升法啦。
下图的公式里,横线上方是通用公式,横线下方是有两个参数时的举例计算,两个参数要同时更新。

梯度下降法的公式
图片里 a:=b 表示赋值【a=b;】。a=b表示相等【a==b】.
我本来在疑惑这公式怎么找下降最快的方向。但是!仔细想想!导数恰好就是下降得最快的方向,所以求导之后直接减掉就是下一步的位置了。α是自定义的学习率(learning rate)
在这里插入图片描述这俩是偏导数,
在这里插入图片描述
上图是对代价函数求导的具体过程。
在这里插入图片描述
所以把导数的部分具体算出来之后发现 为了算出合适的参数,每算一步都要遍历一次样本
直到导数为0或者结果没多大变化。

视频45:50开始讲样本数量过大时应该使用的随机梯度下降法。
随机梯度下降法
我先复述一下:先暂定θ1和θ2两个参数,这样就有一条直线暂时用作拟合,每一个样本对这条直线都有偏差。
当然最好是每个样本的偏差求和之后的值最小就最好了,但是上面说了样本量大的时候,每个样本遍历了才知道总偏差多少。计算量太大。
所以这个随机梯度下降法就是 :随机定一条直线,找一个样本看要往哪调,再找下一个样本看要往哪调,直到遍历完一次所有样本就直接完成。
在这里插入图片描述

三、多变量线性回归(Linear Regression with Multiple Variables)

在这里插入图片描述
x是输入的样本数据,h是输出的结果。所以是多输入,单输出。这样的公式相当于几个不同的直线加到一起,直线加直线还是直线。
还记得参数θ是怎么调的么: 原本的θ值 -= (代价函数求偏导之后再乘上一个系数) 。其中代价函数就是偏差的总和,包含有直线的h - 样本的y ; 直线又是靠很多个θ定下的,所以这个代价函数能被θ求偏导。以前单变量的时候只要常数项和一次项求偏导,现在多变量线性回归无非就是多偏导几个项,跟单变量一样 拿一组θ参数把所有的偏导都计算一遍之后一次性换上新的一整组θ参数再拿样本重新遍历一遍。
不过这输入变量多了,他们的单位要统一【特征缩放】,都整到-1~1范围内。相近的尺度将帮助梯度下降算法更快地收敛。
在这里插入图片描述

但是数据的趋势并不是只有直线。可能用二次函数、三次函数、平方根函数等等比较合适。目前只能靠我们自己去挑选合适的函数。
在这里插入图片描述

另外,我们可以令:
在这里插入图片描述
从而将模型转化为线性回归模型。

正规方程

上面讲的梯度下降法要迭代很多次才能得到θ,而用正规方程可以用公式直接一次性求解θ的最优值。
先假设代价函数J是θ的二次函数,那就只需要对J求导=0,就能知道θ是多少的时候能让代价函数值最小。
在这里插入图片描述
如果代价函数J里有多个θ要解,就是求偏导。实际应用中已经把公式简化成了下面这样
在这里插入图片描述在这里插入图片描述
所以,如果你使用正规方程法 那么就不需要归一化特征变量

在这里插入图片描述
假如你有 m 个训练样本和 n 个特征变量 梯度下降法的缺点之一就是 你需要选择学习速率 α 这通常表示需要运行多次 尝试不同的学习速率 α 然后找到运行效果最好的那个 所以这是一种额外的工作和麻烦。至于正规方程 你不需要选择学习速率 α 所以就非常方便 也容易实现 你只要运行一下 通常这就够了 并且你也不需要迭代 所以不需要画出 J(θ) 的曲线来检查收敛性或者其他的额外步骤

实现逆矩阵计算所需要的计算量 大致是矩阵维度的三次方,有些模型的特征数量有几万、几十上百万,那就还是用梯度下降了。

//正规矩阵的附加内容

X转置*X后的矩阵不可逆的问题 其实很少发生,不用关心,但如果矩阵X’X结果是不可逆的 通常有两种最常见的原因 第一个原因是 有两个特征是线性相关的,比如有一个英制的长度又有一个公制的长度都描述的同一个方位的线段。另一个原因是你样本数量少于你的特征数量,用10个样本去拟合100个特征,这种时候实际上要使用一种叫做正则化的线性代数方法 通过删除某些特征或者是使用某些技术 来解决当m比n小的时候的问题

下面看看公式推导

在这里插入图片描述
这样理解:普通公式是一维的,所以如果有m个样本,就只能加起来取平均,换成矩阵表达之后,矩阵有m行可以存不同的样本,也就不用去除以m取平均得数据了,数据都原原本本存在矩阵里。
在这里插入图片描述
//怎么是-y转置*y 不是正的么。。。。。求导之后变0了,也没办法分对错
在这里插入图片描述

四、局部加权回归【lowess】

面对着有海浪般波动的函数,不能找5次函数之类的去完全拟合,所以就只在局部进行线性拟合。你要哪个点的数据,我就在那附近找一些对应的样本,然后只拟合那一小段数据,再预测出来反馈给你。

局部加权回归算法依然使用损失函数J,只不过是加权的J函数:
在这里插入图片描述

其中w(i)是权重,它根据要预测的点与数据集中的点的距离来为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。一个比较好的权重函数如下:
在这里插入图片描述

该函数称为指数衰减函数,其中k为波长参数,它控制了权值随距离下降的速率,该函数形式上类似高斯分布(正态分布),但并没有任何高斯分布的意义。该算法解出回归系数如下:
在这里插入图片描述

在使用这个算法训练数据的时候,不仅需要学习线性回归的参数,还需要学习波长参数。这个算法的问题在于,对于每一个要预测的点,都要重新依据整个数据集计算一个线性回归模型出来,使得算法代价极高。
【机器学习】局部加权线性回归

【算法】局部加权回归(Lowess)

参数学习算法:
目标函数的形式和参数数量是固定的
从训练数据中学习目标函数的系数
非参数学习算法:
能拟合大量的不同函数形式
参数数量会随着训练样本数量的增长
参数/非参数学习算法

附录

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值