机器学习 day3

一、特征放缩

Feature Scaling

作用
让梯度下降运行得更快

当一个特征值的范围比较大的时候,比如涉及到房价里面的特征量(房价:可能几千万美元的时候),要建立一个好的模型,就得选择一个比较小的w值,比如0.1;相反则应该选择更大的w值,比如50。

如果不这样做的后果:
w1的一点改变,就会造成代价函数产生很大的改变;而w2需要改变极大,才能对代价函数的值产生影响。这样的话,代价函数在寻找最优值时会花费大量的时间。

实际操作:
对训练数据进行一些转换,将特征值的范围变成相同的范围。从而使梯度下降能够找到一个更直接的路径去到达全局最小值。(实际上叫做归一化)

使用条件:
当存在不同的特征量且特征量的取值范围差异较大时。

如何实现:

  1. 直接除以最大值,进行缩放

比如现在存在 x 1 x_{1} x1特征值,并且 300 < = x 1 < = 2000 300 <= x_{1} <= 2000 300<=x1<=2000。那就将x的值除以最大值(也就是2000)。从而缩小范围到 0.15 < = x 1 < = 1 0.15 <= x_{1} <= 1 0.15<=x1<=1

对于 x 2 x_{2} x2特征值也是一样的。

  1. 均值归一化(Mean normalization)

就是对特征量进行处理,使特征量的范围围绕坐标(比如(-1,1))
第一步:找到特征量在训练集上的均值(average)
这个均值设为u
现在以 x 1 x_{1} x1举例:
假设u1的值是600
请添加图片描述
公式:
x 1 = x 1 − u 1 x 1 m a x − x 1 m i n x_{1} = \frac{x_{1} - u_{1}}{x_{1}max-x_{1}min} x1=x1maxx1minx1u1
从而实现归一化。

  1. Z-score标准化(Z-score normalization)
    为每一个特征量计算标准差
    先计算均值和标准差
    其实就是概率论里的对正态分布进行标准化

公式:
x 1 = x 1 − u 1 σ 1 x_{1} = \frac{x_{1} - u_{1}}{\sigma_{1}} x1=σ1x1u1
例子:
假设 x 1 x_{1} x1的均值为600,方差为450:
请添加图片描述

最好把每个特征值的范围设置在(-1,1)之间,但实际上没有限制具体的范围,但千万不能太大和太小,在(-1,1)附近就差不多了。

二、如何检查梯度下降是否收敛

Checking gradient descent for convergence
有没有帮我们找到接近代价函数的最小值。

第一种:
一般我们会画出一个学习曲线(learning curve):横坐标表示下降算法迭代的次数,纵坐标表示代价函数的值。
请添加图片描述
如果梯度下降算法在正常运作,那它应该是像上图这样逐渐下降。如果突然出现上升的话,意味着要么学习率选的不好,a太大了,要么就是代码里有bug。

注意:到最后学习曲线逐渐变平,说明收敛。并且,在不同情境下,梯度下降算法的迭代次数有所不同,可能迭代几十次就收敛了,也有可能需要迭代几百次几千次。并且,我们很难事先知道要迭代多少次。

第二种:
自动收敛测试
(Automatic convergence test)
我们用 ϵ \epsilon ϵ来表示一个小数字的变量,比如0.001,也就是10的-3次方。
如果代价函数在一次迭代中减少的量小于这个数,那就可以说代价函数收敛了。找到了w和b的最优值。但实际上,选出一个 ϵ \epsilon ϵ是很难的,所以一般使用第一种,通过学习曲线进行判断。

三、学习率的选择

学习率会影响运行速率和收敛效果。
比如出现下图这种情况:就是学习率太大或者代码有bug.
请添加图片描述
或者有的时候代价函数持续增大,那也是学习率太大了。

调试学习率步骤该是:
with a small enough a, 代价函数 should decrease on every iteration.
所以如果代价函数无法下降的话,一般会把a设置成很小的数。
但是如果a设置的很小了,代价函数还是无法下降,那就是代码有bug。
如果代价函数开始下降,那就可以把a开始慢慢改,并且每一次是上一次的a的3倍,通过这样的迭代,一直到它刚好能够实现不上升且收敛就好了。

四、特征的选取

Feature Engineering
定义:
Using intuition to design new features, by transforming or combining original features.
这取决于你对实际问题的见解。
选择或输入合适的特征值,才是让算法正常工作的关键步骤。
比如创造一个特征:土地的面积取决于面积,所以测完长度和宽度后,可以创造第三个特征量(area),作为长度和宽度的积。

五、Polynomial regression

多项式回归
将数据拟合成曲线。
请添加图片描述
也有另一种可能
请添加图片描述
至此,有监督学习的数字预测已学完,下一部分将是学习如何用有监督学习进行分类的预测。

五、逻辑回归

实际上,线性回归并不适合用于分类,所以这里我们在进行分类预测的时候,会使用逻辑回归。

二分类问题(binary classification):结果只有两种可能的类。比如yes or no。
所以通常会用数字0或1来表示模型预测结果,因为这最适合我们想要实现的算法类型(逻辑回归)

分类预测和数字预测很大不同在于,它是通过设置阈值,进行预测,也就是说,根据样本值与阈值的对比进行分类。而线性回归主要是去预测从0到100甚至更多的结果。

decision boundary(决策边界):就是这个边界和阈值的交点的左右两边分别为两个不用的预测结果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq030928

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值