机器学习笔记
机器学习笔记
学习参考:吴恩达机器学习课程,《机器学习》--周志华
特征缩放(Feature Scaling)
对于我们的多变量线性回归来说,特征的取值范围差异如果较大产生的影响也会较大,比如我们的模型预测函数为
\(f(x_1, x_2) = w_1 x_1 + w_2 x_2 + b\) 其中\(x_1\) 的范围为1-100000 \(x_2\) 的范围为0.1到0.2 ,很明显,对于我们当前的模
型预测函数来说,\(w_1\) 的微小变化产生的影响要远远大于\(w_2\)微小变化产生的影响 ,对于损失函数来说,我们w1如
果变化很小一点,就需要\(w2\)变化很多来回到与原来损失函数相同的值,所以对该损失函数对应的等高图来说,就
会出现在\(w_1\)方向较短,\(w_2\) 方向较长的椭圆,由于我们进行梯度下降时始终是按垂直于当前高线方向进行改变
的,所以对于当前损失函数,我们梯度下降就会出现z字形下降,可能要很多次才能达到极小值点。
想要解决这个问题,就需要使用到特征缩放了
特征缩放主要有两种方法,分别是归一化和标准化
归一化: 对于一个特征x, 归一后有 \(x=\frac{x-min}{max-min}\) 其中min是特征中的最小值,max是最大值
标准化:有 \(x=\frac{x-\mu}{\sigma}\) 其中\(\mu\) 是该特征的均值,\(\sigma\) 为该特征的标准差
检查梯度下降是否收敛
我们可以通过绘制横轴为迭代次数,横轴为损失函数的值的图像,来判断梯度下降是否收敛

第二种判断收敛的方法是,先设一个变量 \(\varepsilon\) 表示一次迭代后损失函数下降的数值,我们规定如过\(\varepsilon\) 小于\(10^3\) 梯度下
降已经收敛
蛋我们找到一个合适的 \(\varepsilon\) 还是比较困难的,第一种方法要简单一点
学习率的选取
学习率的选取对机器学习非常的重要,过大可能会导致无法收敛,过小则可能会导致收敛速度过慢
如果你绘制了收敛图,也就是迭代次数和损失对应的关系图,发现图像和下面一样

损失函数有时上升,有时下降,说明代码中可能存在错误
如果我们学习率选的较大或者代码写的有bug,都可能出现损失随着迭代不断增加的情况,我们常常可以通过设hi一
个非常小的学习率来进行调试,从而判断到底是哪里的问题。
寻找合适学习率可以采取这个策略:尽可能找到一个较大的,不过可以顺利进行梯度下降的学习率
多项式回归
并不是所有的数据都可以用线性回归拟合的,还有其他的拟合数据的方式,比如多项式回归
像图中这样,使用任意多项式对数据进行拟合的方式我们称之为多项式回归

在进行多项式回归时,由于在式字中我们的特征值可能不是简单的一次方,所以特征缩放对于多项式回归显得非常
的重要
分类
之前我们学习的都是使用模型在输入值后对输出进行预测,现在我们学习分类任务

像这样输出数量受限,yes或no的就是一个分类任务
如果我我们使用线性回归去实现分类任务,如图:

我们将yes取值为1,no取值为0,如果不考虑右上角的那个单独的数据,使用线性回归进行拟合的话,就得到了蓝
色的线,此时规定,当函数输入某个数时,当输出大于0.5的时候就为1状态,输出小于0.5时为状态2,那么我们在
0.5的点做一个垂线,垂线左侧的点为状态0,右侧的点为状态1,此时该垂线被称为决策边界,似乎可以解决该问
题,当我们的数据集再加入一个数据,即右上方的点,此时拟合的线性回归从蓝色变为绿色,此时如果使用0.5作
为决策边界,似乎不是很合适了。

                
            
浙公网安备 33010602011771号