回归:逻辑回归 Logistic Regression

来源:互联网 发布:手机淘宝退款流程 编辑:程序博客网 时间:2024/05/22 10:59

这里为二分类的logistic回归,即结果取值只有{0,1}的分类回归模型。例如,基于今天的天气情况,预测明天是否晴天,明天是否晴天就是取值只有两个的决策。那么在这里我们使用:

函数来表示 这个函数是著名的sigmod函数。z=0,g(z)=0.5。z>0并且越来越大的时候,g(z)无限趋向于1。z<0并且越来越小的时候,g(z)无限趋向于0。

z有可能为直线,也就是对数据用直线进行二分,那么 ,当直线拟合程度不够,z有可能是曲线。

不过,在这里,z是直线,也就是:

  其中:


从概率上来讲:

可以简化为:

似然函数:

,





求得偏导数:


求似然函数最大值,利用梯度上升法:



  求得

python实现:

import numpy as npdef sigmod(x):   return 1/(1+np.exp(-x))def decent(x,y):   x1=np.mat(x)   alph=0.0001;   number=200   theta=np.ones((x1.shape[1]))   for index in range(x1.shape[1]):      for index1 in range(number):          theta[index]=theta[index]+alph*np.sum((y-sigmod(np.sum(x*theta,axis=1)))*x[:,index])   return theta


python实现起来,因为numpy的缘故,会很方便。代码量也会很少。就是对于矩阵运算的处理更简洁。