美文网首页数量遗传或生统
不是回归的逻辑回归算法

不是回归的逻辑回归算法

作者: 巴拉巴拉_9515 | 来源:发表于2019-08-08 20:12 被阅读20次

一、线性回归与逻辑回归的关系

线性回归可以预测连续值,但是不能解决分类问题,我们需要根据预测的结果判定其属于正类还是负类。所以逻辑回归就是将线性回归的(−∞,+∞)结果,通过sigmoid函数映射到(0,1)之间[1]

二、线性回归到逻辑回归

(1)sigmoid函数

什么是sigmoid函数?如何将线性回归的(−∞,+∞)结果映射到(0,1)之间?
由下图sigmoid曲线图可知,值域在(0,1),其中z为线性回归预测值z=w_0x_0+w_1x_1+w_2x_2+...+w_mx_m

(2)逻辑回归

逻辑回归整体流程:

输入[x_0,x_1,x_2,...,x_m]
权重w组合乘积求和,为z=w_0x_0+w_1x_1+w_2x_2+...+w_mx_m;
z代入sigmoid函数结果映射到(0,1)范围;
通过梯度下降法获得最优参数[w'_0,w'_1,w'_2,...,w'_m]
(0,1)值域的预测值做分类处理,例如大于0.5,判断分类为1,小于0.5判断分类为0。

三、最优参数组合

如何获得最优的参数组合[w'_0,w'_1,w'_2,...,w'_m],是的模型的分类效果最好?

(1)线性回归损失函数

还记得在线性回归中我们定义损失函数J为预测值和实际值的均方误差。
J(\theta_0,\theta_1,...,\theta_m) = \frac{1}{2n}\sum_{i=1}^n(h_{\theta}(x^{(i)})-y^{(i)})^2


目标是达到最低点,也就是使得损失函数最小,此时的参数\theta就是最优参数,能够使算法预测误差最小,算法的准确性最高。

(2)逻辑回归损失函数

线性回归的损失函数为平方损失函数,如果将其用于逻辑回归的损失函数,则其数学特性不好,有很多局部极小值,难以用梯度下降法求最优。

因此尝试使用极大似然估计的方法推导最优参数[3]
L(\theta)=\prod_{i=1}^{n}(h_{\theta}(x^{(i)})^{y^{(i)}} (1-h_{\theta}(x^{(i)}))^{1-y^{(i)}})
一个连乘的函数显然是不好计算的,我们可以通过两边同事取log的形式让其变成连加
logL(\theta)=\sum_{i=1}^{n}(y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})(1-logh_{\theta}(x^{(i)})))
这个函数越大,证明我们得到的W就越好。因为在函数最优化的时候习惯让一个函数越小越好,所以我们在前边加一个负号。
得到逻辑回归的损失函数J
J(\theta)=\sum_{i=1}^{n}(-y^{(i)}logh_{\theta}(x^{(i)})-(1-y^{(i)})(1-logh_{\theta}(x^{(i)})))
逻辑回归是分类算法, y=0或者1
其中Cost(h_{\theta}(x),y) = \left\{ \begin{aligned} -log(h_{\theta}(x)) && y=1 \\ -log(1-h_{\theta}(x)) && y=0 \\ \end{aligned} \right.
cost函数曲线分布如下图所示,可见此时的损失函数J(\theta)是理想的效果。

(3)最优参数获得

现以确定逻辑回归的损失函数,使用梯度下降法求解最优参数。

  • 首先确定下降最快的方向(偏导)[3](m为数据集规模/y的个数)

  • 设置每次下山的跨度(学习率)
    学习率\alpha

  • 更新参数
    为了和全文对应,避免引起误解,我们用n表示数据规模/y的数量,用m表示自变量的个数/权重的个数。
    \theta'_j = \theta_j-\alpha\frac{d}{d\theta_j}J(\theta) = \theta_j- \frac{\alpha}{n}\sum_{i=1}^n(h_{\theta}(x_i)-y_i)x_i^j

四、逻辑回归算法整体流程

模型训练[4]

=====》输入
【数据源】[X_1,X_2,...X_n],每个X_i包含m个自变量[x_{i1},x_{i2},...,x_{im}],对应的分类结果[y_1,y_2,...,y_n]
【参数设置1】设置一组W的权重初始值[w_0,w_1,w_2,...,w_m]
【参数设置2】学习率\alpha
【精确度设置】accuracy = 0.00001
【划分阈值】0.5
=====》操作
【操作1】基于X预测yPre
z_i=w_{i0}x_{i0}+w_{i1}x_{i1}+w_{i2}x_{i2}+...+w_{im}x_{im}z_i代入sigmoid函数结果映射到(0,1)范围,整个数据集计算后得到yPre矩阵[y'_1,y'_2,...,y'_n]
【操作2】基于yPre矩阵和实际值y计算损失值
J(\theta)=\sum_{i=1}^{n}(-y_ilogy'_i-(1-y_i)(1-logy'_i))
计算的结果是一个数值oldJ。
【操作3】更新权重w_0,w_1,w_2,...,w_m
w'_1 = w_1- \frac{\alpha}{n}\sum_{i=1}^n(y'_i-y_i)x_{i1}
...
w'_m = w_m- \frac{\alpha}{n}\sum_{i=1}^n(y'_i-y_i)x_{im}
【操作4】计算新的损失值
基于更新后的权重w_0,w_1,w_2,...,w_m进行【操作1】【操作2】,获得新的损失值newJ
【操作5】如果新旧损失值没有很大的差别则退出循环,否则继续【操作1-5】直到newJ == oldJ或|newJ - oldJ|<accuracy才退出循环。
=====》输出
此时的权重w_0,w_1,w_2,...,w_m为最优参数,此时的逻辑回归算法为g(z) = \frac{1}{1+e^{-z}}。(其中z = w_0x_0+w_1x_1+...+w_mx_m
如果g(z) >=0.5则判断分类为1,否则判断分类为0
=====》分类预测
当输入新的X=[x_1,...,x_m],代入训练好的逻辑回归模型,可获得预测的分类结果。

五、逻辑回归的重要性

机器学习中,并不是越复杂越好,因为越复杂,解释越难。由于逻辑回归算法应用广,效果好,算法简单。所以:

如果想做分类,
第一步先用逻辑回归试验,看效果。
然后再使用其他算法,如果没有明显优于逻辑回归,则继续使用逻辑回归。

六、参考资料

[1] 线性回归和逻辑回归:https://blog.csdn.net/jiaoyangwm/article/details/81139362
[2] What is the relation between Logistic Regression and Neural Networks and when to use which:https://sebastianraschka.com/faq/docs/logisticregr-neuralnet.html
[3] 逻辑回归:https://blog.csdn.net/weixin_39445556/article/details/83930186
[4]逻辑回归的python实现:https://blog.csdn.net/qq_37667364/article/details/81532339

相关文章

  • 【原创】逻辑回归基本概念梳理

    逻辑回归 前言 1、逻辑回归是经典二分类方法、不是回归方法 2、机器算法中,先选简单算法、后复杂,逻辑回归特别简单...

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

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

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

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

  • 回归算法学习

    回归算法是机器学习中的经典算法之一,本文是对学习线性回归和逻辑回归算法进行的总结,线性回归与逻辑回归算法解决的分别...

  • 逻辑回归算法简介

    逻辑回归算法:虽然名字中带有回归两个字,但它却不是回归算法,它是一个经典的二分类算法。 回归与分类的区别:回归:可...

  • 不是回归的逻辑回归算法

    一、线性回归与逻辑回归的关系 线性回归可以预测连续值,但是不能解决分类问题,我们需要根据预测的结果判定其属于正类还...

  • 机器学习预测乳腺癌良恶性(1)(逻辑回归)

    逻辑回归算法思想:逻辑回归(LogisticRegression)是当前机器学习算法比较常用的方法,可以用来回归分...

  • 逻辑回归模型

    1.逻辑回归介绍2.机器学习中的逻辑回归3.逻辑回归面试总结4.逻辑回归算法原理推导5.逻辑回归(logistic...

  • 通俗地说逻辑回归【Logistic regression】算法(

    在说逻辑回归前,还是得提一提他的兄弟,线性回归。在某些地方,逻辑回归算法和线性回归算法是类似的。但它和线性回归最大...

  • Logistic Regression (逻辑回归)

    概述 逻辑回归与线性回归不同,逻辑回归是用来处理classification的问题的,而线性回归则是真正的回归算法...

网友评论

    本文标题:不是回归的逻辑回归算法

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