【小白学AI】线性回归与逻辑回归(似然参数估计)

代码云游客
• 阅读 2184

文章转自【机器学习炼丹术】

线性回归解决的是回归问题,逻辑回归相当于是线性回归的基础上,来解决分类问题。

1 公式

线性回归(Linear Regression)是什么相比不用多说了。格式是这个样子的:
$f_{w,b}(x)=\sum_i{w_ix_i}+b$

而逻辑回归(Logistic Regression)的样子呢?
$f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)$

要记住的第一句话:逻辑回归可以理解为在线性回归后加了一个sigmoid函数。将线性回归变成一个0~1输出的分类问题。

2 sigmoid

sigmoid函数就是:
$\sigma(z)=\frac{1}{1+e^{-z}}$

函数图像是:
【小白学AI】线性回归与逻辑回归(似然参数估计)
线性回归得到大于0的输出,逻辑回归就会得到0.5~1的输出;
线性回归得到小于0的输出,逻辑回归就会得到0~0.5的输出;


这篇文章的重点,在于线性回归的参数估计使用的最小二乘法,而而逻辑回归使用的是似然估计的方法。(当然,两者都可以使用梯度下降的方法)。


3 似然估计逻辑回归参数

举个例子,现在我们有了一个训练数据集,是一个二分类问题:
【小白学AI】线性回归与逻辑回归(似然参数估计)
上面的$x^1$是样本,下面的$C_1$是类别,总共有两个类别。

现在假设我们有一个逻辑回归的模型:
$f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)$
那么$f_{w,b}(x^1)$的结果,就是一个0~1的数,我们可以设定好,假设这个数字就是是类别$C_1$的概率,反之,1减去这个数字,就是类别$C_2$的概率。

似然简单的理解,就是让我们上面的数据集出现的概率最大

我们来理解一下:

  1. $x_1$是$C_1$的概率是$f_{w,b}(x^1)$;
  2. $x_2$是$C_1$的概率是$f_{w,b}(x^2)$;
  3. $x_3$是$C_2$的概率是$1-f_{w,b}(x^3)$;
  4. ……
  5. $x_N$是$C_1$的概率是$f_{w,b}(x^N)$;

样本之间彼此独立,那么上面那个数据集的概率是什么?是每一个样本的乘积,这个就是似然Likelihood:
【小白学AI】线性回归与逻辑回归(似然参数估计)

我们希望这个w,b的参数估计值,就是能获得最大化似然的那个参数。也就是:
【小白学AI】线性回归与逻辑回归(似然参数估计)

加上负号之后,就可以变成最小化的问题。当然,加上一个log并不会影响整个的w,b的估计值。因为$L(w,b)$最大的时候,$log(L(w,b))$也是最大的,log是个单调递增的函数。所以可以得到下面的:
【注意:所有的log其实是以e为底数的自然对数】
【小白学AI】线性回归与逻辑回归(似然参数估计)

log又可以把之前的乘积和,转换成加法。
$log(L(w,b))=log(f(x^1))+log(f(x^2))+log(1-f(x^3))...$

然后,为了更加简化这个算是,我们将$C_1, C_2$数值化,变成1和0,然后每一个样本的真实标签用$y$来表示,所以就可以得到:
$log(L(w,b))=\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}$
【有点像是二值交叉熵,然而其实就是二值交叉熵。。】

  • 当y=1,也就是类别是$C_1$的时候,这个是$log(f(x^i))$
  • 当y=0,也就是类别是$C_2$的时候,这个是$1-log(f(x^i))$

所以其实我们得到的损失函数是:
$loss=-log(L(w,b))=-\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}$

之前说了,要找到让这个loss最小的时候的w和b,那怎么找?
【无情万能的梯度下降】

所以计算$\frac{\partial loss}{\partial w}$,然后乘上学习率就好了。这里就不继续推导了,有耐心的可以慢慢推导,反正肯定能推出来的。
这里放个结果把:
$\frac{-\partial lnL(w,b)}{\partial w_i}=\sum_n^N{-(y^n-f_{w,b}(x^n))x_i^n}$

  • 其中$w_i$为第i个要估计的参数,第i个特征;
  • $x^n_i$是第n个样本的第i个特征的值;
  • $y^n$是第n个样本的真实类别,0或者1。
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
黎明之道 黎明之道
4年前
天池比赛数据挖掘心电图模型调参
Task4建模与调参4.1学习目标学习机器学习模型的建模过程与调参流程完成相应学习打卡任务4.2内容介绍逻辑回归模型:理解逻辑回归模型;逻辑回归模型的应用;逻辑回归的优缺点;树模型:理解树模型;树模型的应用;树模型的优缺点;集成模型基于bagging思想的集成
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Keras实践笔记1——线性回归
importmatplotlib.pyplotaspltimportnumpyasnpfromkerasimportSequentialfromkeras.layersimportDensexnp.linspace(10,10,300)y3x
Stella981 Stella981
3年前
KTV歌曲推荐
前言上一篇写了推荐系统最古老的的一种算法叫协同过滤,古老并不是不好用,其实还是很好用的一种算法,随着时代的进步,出现了神经网络和因子分解等更优秀的算法解决不同的问题。这里主要说一下逻辑回归,逻辑回归主要用于打分的预估。我这里没有打分的数据所以用性别代替。这里的例子就是用歌曲列表预判用户性别。什么是逻辑回归逻辑回归的资料比
Stella981 Stella981
3年前
Python——sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义
sklearn中LogisticsRegression的coef\_和intercept\_的具体意义​使用sklearn库可以很方便的实现各种基本的机器学习算法,例如今天说的逻辑斯谛回归(LogisticR
机器学习入门指南
资料获取地址见文末或评论!一、预备知识微积分(偏导数、梯度等等)概率论与数理统计(例如极大似然估计、中央极限定理、大数法则等等)最优化方法(比如梯度下降、牛顿拉普什方法、变分法(欧拉拉格朗日方程)、凸优化等等)二、路线1(基于普通最小二乘法的)简单线性回归线性回归中的新进展(岭回归和LASSO回归)(此处可以插入Bagging和AdaBoost的内容
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
4个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
机器学习基础
本章涵盖了以下主题:分类和回归之外的其他类型的问题;评估问题,理解过拟合、欠拟合,以及解决这些问题的技巧;为深度学习准备数据。请记住,在本章中讨论的大多数技术都是机器学习和深度学习通用的,一部分用于解决过拟合问题的技术(如dropout)除外。4.1 三类机器学习问题在之前的所有例子中,尝试解决的是分类(预测猫或狗)或回归(预测用户在平台上花费的平均时
机器学习基础
机器学习基础本章涵盖了以下主题:分类和回归之外的其他类型的问题;评估问题,理解过拟合、欠拟合,以及解决这些问题的技巧;为深度学习准备数据。请记住,在本章中讨论的大多数技术都是机器学习和深度学习通用的,一部分用于解决过拟合问题的技术(如dropout)除外。4.1 三类机器学习问题在之前的所有例子中,尝试解决的是分类(预测猫或狗)或回归(预测用户在平台上