1 逻辑回归

1. classification 分类

eg:垃圾邮件分类、交易是否是欺诈、肿瘤类别。分类的结果是离散值。

2. sigmoid函数

 

  使用线性方法来判断分类问题,会出现上图中的问题,需要人工判断分界点。有些特殊的样本点,也会使得分界点发生漂移,影响准确性。我们希望我们的分类器输出范围在0~1之间,此时分类问题转化为边界问题。sigmoid函数能保证数据在0~1之间,并且越趋近于无穷大,输出趋近于1。

假设函数预测的是对于输入x,输出为1的概率。

3. cost function

如果代价函数依然采用平方误差函数,得到的是一个non-convex函数,此时梯度下降无法保证收敛得到全局最优值。因此我们用另一种方式表示cost function,使它作为convex函数,易于求解。

如果把代价函数定义为上述形式,当真实的值是1时,我们预测的值越靠近1,cost的值越小,误差越小。如果真实值是0,那么预测的值越靠近1,cost的值越大。

简化公式:


4. 梯度下降

一般形式:

计算微分部分得到:

5. 高级优化方法

 “共轭梯度Conjugate gradient”,“BFGS”和“L-BFGS” 是可以用来代替梯度下降来优化θ的更复杂,更快捷的方法。 
都是求J函数和偏导数,然后进行优化。后三个算法优点:都不需要手动选择学习率阿尔法(他们有内部循环,线性搜索算法,可以自动尝试学习率,并选择最好的学习率);它们的收敛速度往往比梯度下降要快。缺点:更复杂 

6. 多分类问题

 

 可以理解为采用多个Losgistic分类器进行分类,针对每个样本点进行一次预测,选择概率值最大的那个。

2 正则化

1. 过拟合


图一 欠拟合,高偏差。图三 过拟合,高方差。
2 解决方法
                  1. 减少特征的数量,可以通过一些特征选择的方法进行筛选。
                  2. 正则化,通过引入一个正则项,限制参数的大小。

3 正则化用于线性回归

4 正则化用于逻辑回归

比如下面的曲线,针对高次项的参数,在后面多加一项乘以1000。这样在优化损失函数的时候,会强制θ3和θ4不会很大,并且趋近于0,只有这样才会保证损失函数的值足够小。

 

得到的公式如下,注意只会针对x1开始,θ0相当于只是针对偏置项设置的,因此不需要加正则项。



但是如果λ设置的过大,相当于所有的θ都变成了0,损失函数的曲线相当于一条直线,就没有任何意义了,因此选择适合的λ很重要,后面也会讲解如何选择正确的λ。
5 梯度下降

添加正则项之后,梯度下降的公式就发生了变化:

 3 编程作业——实现logistic regression

还有很多看不懂的地方,这两篇博文说的很详细:

https://blog.csdn.net/Cowry5/article/details/80247569

https://blog.csdn.net/u012052268/article/details/78653293

 

 

posted on 2018-09-24 12:14  小小八  阅读(502)  评论(0编辑  收藏  举报