现在的位置: 首页 > 综合 > 正文

我的逻辑回归认知

2018年04月29日 ⁄ 综合 ⁄ 共 1211字 ⁄ 字号 评论关闭

1.是什么:

逻辑回归(Logistic regression)是用以解决分类的一种算法。最常用。(机器学习效果的好坏并不在于模型的难易,没有好到通杀的模型,只有适合的模型。另外数据集梳理的好坏,有时比学习模型更加重要)。

2.从哪来:

从线性回归(Linear regression)来,若用线性回归对一个样本点比较集中的训练集进行拟合,是可以通过选取“中点”(下图中间的那个粉点,中点是y轴的中点),以此预测分类(预测时以中点投影到x轴的x点为基准)。如下图所示:


但缺点在于,如果有噪点,如下图最右边的那个“飞出去”的点。会致使分类预测出现偏差。


因此需要一个更适合的模式学习方法,并进行预测分类。引出了逻辑回归。虽然同为LR,但是更侧重分类。

3.怎么做:

1)首先,为了解决线性回归不能解决的问题。引入一个更适合用作分类的函数h(x)。它要满足以下特质:

y=1, h(x)>0.5

y=0, h(x)<=0.5

这里,h(x)可以等同于认为是我们预测的x = 1的概率。

满足这个要求的函数需要长成什么样呢?下边这个如何:x >=  0  ---> h(x) = 1; x < 0 ---> h(x) = 0



2)其次,我们需要一个代价函数来表征预测的好坏。这个好坏程度在线性回归里由最小均方误差表征,在逻辑回归里,是用一个更直观的函数来表征。


为什么是这函数?

因为代价函数是认为设计的,目的是使其符合实际。什么样的实际?

1.当 y = 1 && h(x) = 1 或 y = 0 && h(x) = 0,即预测对了的时候,代价函数cost应该等于0;

2.当 y = 0 && h(x) = 1 或 y = 1 && h(x) = 0,即预测错了的时候,代价函数cost应该为一个比较大的值,来惩罚这次错误。

遍历符合以上两点的方程,发现 y = -log(x)是一个不错的选择,先看一下 y = log(x)的图形:


因为底数默认为10, 因此我们只看红线。y = - log(x)的话就将红线翻到x轴上边。又知道h(x)不可能 > 1(概率),可得到如下的样子:


看一下它的特征,若真实结果y = 1, 当h(x) = 1时,cost = 0;当x = 0时,cost = 无穷大。

同理,若真实结果y = 0,可以用 y = -log(1-x)来描述,样子如下:


以上解释了代价函数的选择,用一行来表示:


其中m为样本数,J为所有样本的代价和。

3)有了代价函数,问题只剩下如何去找一组系数 theta,使得J 最小。与线性回归一样,可以实用梯度下降的方法来进行最优化。


逐次迭代,得到最优theta集。上图中蓝色手写体为对J对theta j求导的结果,自己推导了一遍。

带入repeat过程,得到如下参数更新过程:


其中1 / m 和 alpha 合成为新的 alpha。

然后发现,这个参数更新过程和线性回归中使用的是一模一样的。看来不仅是名字一样。

剩下的就是迭代了,迭代至什么情况结束呢?1.迭代够我们指定的次数;或者 2. J小于一个我们设定的阈值。

向量化的迭代过程如下:



跑个题,一张图解释为什么梯度下降可以实现最优化。



抱歉!评论已关闭.