Logistic回归

原创
2018/06/25 16:15
阅读数 629

在之前我已经写了一篇关于线性回归的文章,今天给大家带来另一个重要的回归分类算法----逻辑回归 逻辑回归考虑的数值情况不同与线性回归,根据问题中随机变量的不同种类而选择不同的分类算法

线性回归主要用于解决连续型数值的问题 逻辑回归主要用于解决离散型数值问题

那么什么样的数值是连续型?什么是离散型? 首先我们要知道随机变量分为离散型和连续型,然后我们给出其定义:

如果随机变量X只可能取有限个或至多可列个值,则称X为离散型随机变量 能按一定次序一一列出,其值域为一个或若干个有限或无限区间,这样的随机变量称为离散型随机变量

在离散型问题中我们考虑最多的就是二元离散,也就是情况为正或者为负,我们将其记为1和0 image.png 就像下面这样 image.png 统计出数值结果后想对其进行分类,从而能够预测出一个新的x点应该是1还是0,发现很难使用一条直线去准确预测出这个分类线 最终,经过一堆数学家的努力,发现了一个非常适合离散型数值的函数 逻辑回归 通过改变函数的参数,我们最终可以找到一个适合我们数据的一条线,然后,我们通过求出这个点的概率来预测最终结果,也就是给出一个参数x,我们通过求出y=1的概率,来预测结果 image.png 如上所示给出一个x值最终求出其y=1的概率我0.7,那么我们就可以预测出其值为1,如果求得概率为0.3的话我们就认为其值应该为0,而这里判断的概率阈值就是0.5,当概率大于等于0.5认为结果为1,否则为0 image.png 这里的阈值有一个专属名词为Decision Boundary(决策边界) 这里的决策边界就是日常中所说的分界线(学生时代的38线) image.png image.png 由上我们发现决策边界的选择各种各样,那么我们如何找出最适合的边界呢? 根据我们的函数,问题总结为如何找出最适合的参数Θ? image.png 很显然,老套路,我们先算出其代价函数J(Θ),然后最小化J就行 而逻辑回归中的代价函数和之前中的线性回归的代价函数是相同的, image.png image.png

而和线性回归不同的就是H(Θ)的不同,而由于逻辑回归中y=1 or y=0 因此概况为image.png 因此不同于线性回归,逻辑回归的代价函数 image.png 最后我们通过极大似然法简化代价函数 image.png 现在我们得到了代价函数,接下来我们将其最小化求出Θ image.png 首先使用梯度下降法: 方法就是一如既往的对其求导找出下降最快的方向然后去下降 这次我们可以不用梯度下降法,我们找到其他优化算法:共轭梯度 image.png 使用共轭梯度时我们不用去手动选择下降速度α,因为共轭梯度会自动帮我们找出最优α,而且共轭梯度的速度更快,这些优点也保证了其复杂度,但是往往第三方库已经帮我们实现了这些算法,我们只需要知道如何去调用就行 image.png 上面我们拥有一个有两个参数的问题,我们知道了其代价函数J(Θ),我们想求求其最小化函数,右边是在Octave里直接调用一个函数来返回我们的代价函数,这个函数返回两个参数,jVal是代价函数,第二个参数是Θ 现在我们在下面使用无约束最小化函数来使J最小化,调用这个函数需要设置一下参数,@costFunction是我们刚刚定义的costFunction函数的指针,,optiojns中GradObj,'on'为设置梯度目标参数为打开,然后函数就可以自动实现求最优α,maxiter,100为设置最大迭代此数为100,然后initialtheta为我们设置的基础Θ值 最后这个函数会返回一组我们需要的,openTheta为最优Θ,functionVal为我们最后的代价函数值,而exitFlag值确定是否收敛,1为收敛

展开阅读全文
打赏
0
1 收藏
分享

作者的其它热门文章

加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部