在以前我已经写了一篇关于线性回归的文章,今天给你们带来另外一个重要的回归分类算法----逻辑回归 逻辑回归考虑的数值状况不一样与线性回归,根据问题中随机变量的不一样种类而选择不一样的分类算法算法
线性回归主要用于解决连续型数值的问题 逻辑回归主要用于解决离散型数值问题函数
那么什么样的数值是连续型?什么是离散型? 首先咱们要知道随机变量分为离散型和连续型,而后咱们给出其定义:优化
若是随机变量X只可能取有限个或至多可列个值,则称X为离散型随机变量 能按必定次序一一列出,其值域为一个或若干个有限或无限区间,这样的随机变量称为离散型随机变量3d
在离散型问题中咱们考虑最多的就是二元离散,也就是状况为正或者为负,咱们将其记为1和0 就像下面这样
统计出数值结果后想对其进行分类,从而可以预测出一个新的x点应该是1仍是0,发现很难使用一条直线去准确预测出这个分类线 最终,通过一堆数学家的努力,发现了一个很是适合离散型数值的函数
经过改变函数的参数,咱们最终能够找到一个适合咱们数据的一条线,而后,咱们经过求出这个点的几率来预测最终结果,也就是给出一个参数x,咱们经过求出y=1的几率,来预测结果
如上所示给出一个x值最终求出其y=1的几率我0.7,那么咱们就能够预测出其值为1,若是求得几率为0.3的话咱们就认为其值应该为0,而这里判断的几率阈值就是0.5,当几率大于等于0.5认为结果为1,不然为0
这里的阈值有一个专属名词为Decision Boundary(决策边界) 这里的决策边界就是平常中所说的分界线(学生时代的38线)
由上咱们发现决策边界的选择各类各样,那么咱们如何找出最适合的边界呢? 根据咱们的函数,问题总结为如何找出最适合的参数Θ?
很显然,老套路,咱们先算出其代价函数J(Θ),而后最小化J就行 而逻辑回归中的代价函数和以前中的线性回归的代价函数是相同的,
指针
而和线性回归不一样的就是H(Θ)的不一样,而因为逻辑回归中y=1 or y=0 所以概况为 所以不一样于线性回归,逻辑回归的代价函数
最后咱们经过极大似然法简化代价函数
如今咱们获得了代价函数,接下来咱们将其最小化求出Θ
首先使用梯度降低法: 方法就是一如既往的对其求导找出降低最快的方向而后去降低 此次咱们能够不用梯度降低法,咱们找到其余优化算法:共轭梯度
使用共轭梯度时咱们不用去手动选择降低速度α,由于共轭梯度会自动帮咱们找出最优α,并且共轭梯度的速度更快,这些优势也保证了其复杂度,可是每每第三方库已经帮咱们实现了这些算法,咱们只须要知道如何去调用就行
上面咱们拥有一个有两个参数的问题,咱们知道了其代价函数J(Θ),咱们想求求其最小化函数,右边是在Octave里直接调用一个函数来返回咱们的代价函数,这个函数返回两个参数,jVal是代价函数,第二个参数是Θ 如今咱们在下面使用无约束最小化函数来使J最小化,调用这个函数须要设置一下参数,@costFunction是咱们刚刚定义的costFunction函数的指针,,optiojns中GradObj,'on'为设置梯度目标参数为打开,而后函数就能够自动实现求最优α,maxiter,100为设置最大迭代此数为100,而后initialtheta为咱们设置的基础Θ值 最后这个函数会返回一组咱们须要的,openTheta为最优Θ,functionVal为咱们最后的代价函数值,而exitFlag值肯定是否收敛,1为收敛blog