LogisticRegression分类问题

逻辑回归提出的原因:

对于分类问题,为什么不能用我们之前学习的线性回归算法来解决呢?有以下两点: 

1:不能很好地说明实际情况的真正意义 

2:函数值可能大于1或者小于0(对于二类分类0,1)

假设函数:

为了使函数值在0~1之间,假设函数h(x)从h(x) = θ’x换为 h(x) = g(θ’x) ,其中g(z)=1/(1+e^-z)

由h(x)的含义可知,我们可以得到: 

P(y=1|x;θ) = h(x):   即,当P=0.7时,发生y=1的概率为70%

P(y=0|x;θ) = 1-h(x):即,当P=0.7时,发生y=0的概率为70%

假设函数

通常,我们假设h(x)>=0.5时(即θ’x>=0)为偏向y=1事件发生,h(x)<0.5时(即θ’x<0)为y=0事件发生。

代价函数:

对于线性回归问题,代价函数如下所示:

线性回归代价函数

但是若对于逻辑回归问题(分类)同样使用上面的代价函数的话,将会发现J并不是一个凸函数(这里不进行说明),函数中间会存在很多的局部最优解,这对我们使用梯度下降算法来说不是很好。所以要改变逻辑回归问题的代价函数,如下: 


LR代价函数

上图所示的代价函数是通过统计学的最大似然估计得出的,我先不进行解释,也许是上面的e^-z和下面的log(z)函数相对应了。这里我们先对上面的代价函数进行验证,看它是否能够满足我们问题的实际要求,即预测的好代价小,预测的差代价大。


当y=1时, h(x)的值越接近1,代表结果为1的可能性越大,预测值和实际值相符,代价函数值也越趋于0。当h(x)越接近0时,代表预测的结果越差,所以代价函数值越大,满足要求。



同理,也满足实际要求。

所以逻辑回归算法的整体代价函数整合后如下图:


梯度上升算法:

经过计算偏导数项,逻辑回归梯度下降具体计算过程如下:

你会惊讶的发现,现在逻辑回归的迭代计算过程和线性回归的一模一样!(可能是数学家的总结),不过它们的h(x)的表达式改变了。

多元分类算法:

多元

对于上图问题,我们先将三角形看为1类,其他的看为0类,这就变成了我们熟悉的二类问题了,通过拟合样本训练得到h1(x),可以计算出新的样本为三角形这一类的概率。对于矩形和叉同理,训练出的h2(x),h3(x)分别表示新的样本为矩形或叉这一类的概率。最后比较三个函数值的大小,将新样本归为最大值的那一类。

如上图所示,现在有多分类问题(三角形,矩形,叉)。我们知道一个逻辑回归函数只能将样本分为不同的两类0和1,并且h(x)的值表示样本为1的概率。现在对于多类问题,我们的处理是用不同的预测函数hi(x)计算出新的样本属于每一类的概率,最后选定概率最大的类。

杂合文章,切勿传播!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容