美文网首页
逻辑回归模型

逻辑回归模型

作者: 噗嗤噗哩噗通 | 来源:发表于2019-09-29 17:30 被阅读0次

逻辑回归推导公式(最大似然方法推导):

设计sigmoid函数 逻辑回归最大似然定义

通过最大似然得到的。y的取值为0,1;则认为这是一个伯努力的分布,也称为两点的分布,则公式表示如下:


image.png image.png

上图少了一个log


image.png

逻辑回归与softmax回归的关系:
可以认为 对于y|x;θ 逻辑回归是一个两点的分布,而 softmax是一个多项式的分布。利用广义线性模型可得到softmax的表示。

逻辑回归推导公式(这是和神经网络类似的,利用成本函数推导):

基本的概念:(x表示为向量,带上标^的y表示预测值,没有的为实际值)
第一步:线性映射:z=w^Tx+b
第二步:非线性映射:\hat y=\sigma (z), sigma公式为:\sigma (z)=\frac {1}{1+e^-z}
第三步:定义损失函数:这个是人为定义的,感觉目的是为了梯度求导比较好计算

定义代价函数.png
构建代价函数.png

L(y,\hat y) =-[ylog \hat y+(1-y)log(1- \hat y)]
第四步:代价函数,所有样本的所有数据
\begin{equation}\begin{split} L(w,b)&=\frac1m\sum_{r=1}^m L(y^{(i)},\hat y^{(i)} ) \\ & =-\frac1m\sum_{r=1}^m [y^{(i)}log \hat y^{(i)}+(1-y^{(i)})log(1- \hat y^{(i)})] \end{split}\end{equation}

第五步:对sigma函数求导,在用链式法则,先对z求导,在对w求导:
\begin{equation}\begin{split} dz&=\frac {e^-z}{(1+e^-z)^2} \\ & =\sigma (z)(1-\sigma (z)) \end{split}\end{equation}
第六步:以w为例:

\begin{equation}\begin{split} w_{j+1}&=w_j+\alpha(\frac {dL}{dw}) \\ &=w_j+\alpha(\frac {dL}{d\hat y}\frac {d\hat y}{dz}\frac {dz}{dw}) \\ & =w_j+\alpha((\frac {y}{\hat y} - \frac {1-y}{1-\hat y})\sigma (z)(1-\sigma (z))x)\\ & =w_j+\alpha((\frac {y}{\hat y} - \frac {1-y}{1-\hat y})\hat y(1-\hat y)x)\\ & =w_j+\alpha((y-\hat y)x) \end{split}\end{equation}

最终的最优化求解为:
\left \{ \begin{array}{c} w_{j+1}=w_j+\alpha((y-\hat y)x) \\ b_{j+1}=b_j+\alpha(y-\hat y) \end{array} \right.

python实现

1. numpy直接写的实现方式:

参照的机器学习那本书,由于梯度的筛选中出现了时间复杂度较高的问题,于是做了一个随机优化,我理解为不是一个向量进去计算,而是按照随机顺序一个个把x_i输入,调整w和b的取值。
python实现与随机梯度优化

python实现2:防止删除文章

2. sklearn实现方式

  • penalty参数:设置使用L1正则或者是L2正则。
  • solver参数:
    • liblinear方法:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数
    • lbfgs方法:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
    • newton-cg方法:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
    • sag方法:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候,SAG是一种线性收敛算法,这个速度远比SGD快
  • multi_class参数:ovr(one vs rest)和mvm(many vs many)在二元逻辑回归没有差别,但是在多分类中,ovr是选择的分类为正样本,其他类都会负样本。mvm是筛选m个类为正样本,m个类为负样本
  • class_weight参数:是各种类型的权重,‘banlanced’表示自动计算,而dict类型可以自己设定,或者不用
  • sample_weight参数:设置样本权重,用来解决样本不平衡问题。

衍生:

在研究sklearn的逻辑回归算法的时候,在这里只介绍了用定义的损失函数来做梯度下降计算,梯度的逻辑对应sklearn里面的sag,之后看要不要再总结一张最优化算法的页面。

相关文章

  • 逻辑斯谛回归与最大熵模型

    逻辑斯谛回归与最大熵模型 逻辑斯谛回归模型 最大熵模型 最大熵模型的学习 逻辑斯谛回归(logistic regr...

  • 逻辑回归为什么用交叉熵损失函数

    1 Logistic Regression(逻辑回归) 逻辑回归是机器学习中的一个非常常见的模型, 逻辑回归模型其...

  • SKlearn_逻辑回归小练习

    逻辑回归 逻辑回归(Logistic regression 或logit regression),即逻辑模型(英语...

  • Logistic Regression

    Logistic Regression原理 逻辑回归模型本质上属于对数线性模型 下面对逻辑回归模型的原理进行介绍,...

  • 逻辑斯谛回归与最大熵模型

    逻辑斯谛回归与最大熵模型 首先介绍逻辑斯谛分布: 二项逻辑斯谛回归模型: 最大熵模型: 最大熵原理是概率模型...

  • 机器学习day7-逻辑回归问题

    逻辑回归 逻辑回归,是最常见最基础的模型。 逻辑回归与线性回归 逻辑回归处理的是分类问题,线性回归处理回归问题。两...

  • ML03-逻辑回归(下部分)

    本文主题-逻辑回归(下部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • ML02-逻辑回归(上部分)

    本文主题-逻辑回归(上部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • 吴恩达第二次作业代码

    输出 逻辑回归模型的梯度下降 输出 正则化逻辑回归 输出

  • 逻辑斯谛回归&最大熵模型

    1、逻辑斯谛回归模型 逻辑斯谛回归是经典的分类方法。二项逻辑斯谛回归模型是如下条件概率分布: 下面我们考察逻辑斯谛...

网友评论

      本文标题:逻辑回归模型

      本文链接:https://www.haomeiwen.com/subject/clzfpctx.html