• 【机器学习】逻辑回归原理介绍
  • 【机器学习】逻辑回归python实现
  • 【机器学习】逻辑回归sklearn实现

Logistic 回归模型是目前广泛使用的学习算法之一,通常用来解决二分类问题,虽然名字中有“回归”,但它是一个分类算法。有些文献中译为“逻辑回归”,但中文“逻辑”与 logistic 和 logit 的含义相去甚远,因此下文中直接使用 logistic 表示。Logistic 回归的优点是计算代价不高,容易理解和实现;缺点是容易欠拟合,分类精度可能不高。

以肿瘤分类为例,我们要预测肿瘤是否为恶性肿瘤,我们用 0 和 1 表示这两个取值,用 0 表示不是恶性肿瘤,用 1 表示是恶性肿瘤(当然也可以反过来,没有影响),那么数据集如图所示。

假如用线性回归模型来拟合的话,看起来可能会是这样的。

我们可以设置阈值为 0.5,如果输出小于等于 0.5,则预测 y 为 0;输出大于等于 0.5 则预测 y 为 1。

这样红点左边的都被预测为 0,红点右边的都被预测为 1,我们得到了想要的结果。在这个例子中,使用线性回归似乎很合理,即使这是一个分类问题而不是一个回归问题。

但是我们修改一下数据集,将横轴延长,在右边增加一个点,如图。

继续使用线性回归拟合的话,会得到图中蓝色这样一条直线。

如果将阈值设为 0.5 的话,蓝点左边会被预测为 0,蓝点右边会被预测为 1。

显然,此时的线性回归模型表现很差,因为没有很好的拟合数据集。而且使用线性回归还会出现输出值远小于 0 或者远大于 1 的情况。下面我们介绍 logistic 回归模型,它的输出值会介于 0 和 1 之间,不会大于 1,或者小于 0。

我们希望分类器的输出在 0 和 1 之间,因此我们将线性回归得到的输出再做一步计算,使用 sigmoid 函数。sigmoid 函数的公式为:

图像为:

从图像可以看出,sigmoid 函数将负无穷到正无穷之间的数转化为 0 到 1 之间,负无穷处趋向 0 ,正无穷处趋向 1,原点处为 0.5。结合线性回归的假设函数

得到 logistic 回归的假设函数

它的输出都是在 0 到 1 之间,含义是“给出 x 时,y=1的概率”。用公式表示为

在线性回归中,我们使用的代价函数为

转化一下,

可以理解为,使模型预测的结果 h(x) 和 实际标签 y 相等时,我们需要模型付出的代价,或者说用这么大的代价来惩罚模型。

最小均方误差的代价函数在线性回归中很好用,但是在 logistic 回归中,如果我们可以最小化这个函数,则模型可以工作。但实际上,在 logistic 回归中,最小均方误差代价函数是参数 W 的非凸函数。形如

因此我们要换一个代价函数。上文已经讲到,它的假设函数含义是“给出 x 时,y=1的概率”。对于单个训练样本,发生的概率为

那么 y=0 时,

将这两个式子合并,得到

取似然函数(即考虑全体样本),

取对数(简化计算过程,详细参考概率论与数理统计),

除以n个样本,

似然函数有极大值,加上负号,使它有极小值,

将假设函数 h(x) 带入,代价函数的最终形式为

为了加深理解,下面分析一下它的含义。对单个训练样本进行分析

当 y=1 时,

从图中可以直观地看出,当假设函数趋于 1 时,代价函数趋于 0,表示预测值与真实值相等,假设函数预测正确,我们不需要模型付出代价。而当假设函数趋于 0 时,与实际值 1 完全不同,代价函数趋于正无穷,表示我们需要模型付出非常大的代价。

当 y=0 时,

含义同理。

然后就可以使用梯度下降法来求解参数了。

如果需要代码和数据集,请扫描下面二维码关注公众号【AI developer】,回复【代码】即可免费获取。

【机器学习】逻辑回归原理介绍相关推荐

  1. 机器学习算法--逻辑回归原理介绍

    一.逻辑回归基本概念 1. 什么是逻辑回归 逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏. Log ...

  2. 逻辑回归原理介绍及Matlab实现

    一.逻辑回归基本概念 1. 什么是逻辑回归 逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏. Log ...

  3. matlab 逻辑回归实现,逻辑回归原理介绍及Matlab实现

    一.逻辑回归基本概念 1. 什么是逻辑回归 逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏. Log ...

  4. 机器学习——逻辑回归原理(python实现)

    目录 一.什么是逻辑回归 1.1逻辑回归定义 1.2 小栗子~(例子) 1.3 代码 二.逻辑回归的实现 三.用逻辑回归分类预测肿瘤 3.1代码 3.2结果 逻辑回归是一种用于有监督学习的分类任务的简 ...

  5. 【机器学习】Logistic Regression逻辑回归原理与java实现

    [机器学习]Logistic Regression逻辑回归原理与java实现 1.基于概率的机器学习算法 2.逻辑回归算法原理 2.1.分离超平面 2.2.阈值函数 2.3.样本概率 2.4.损失函数 ...

  6. 逻辑回归原理梳理_以python为工具 【Python机器学习系列(九)】

    逻辑回归原理梳理_以python为工具 [Python机器学习系列(九)] 文章目录 1.传统线性回归 2.引入sigmoid函数并复合 3. 代价函数 4.似然函数也可以 5. python梯度下降 ...

  7. 逻辑回归原理与sklearn实现

    目录 一.逻辑回归介绍 1.应用场景 2.逻辑回归原理 2.1 输入 2.2激活函数 3.损失与优化 3.1 损失(对数似然损失) 3.2 优化 二.逻辑回归API介绍 三.案例实现 四.分类评估方法 ...

  8. 逻辑回归原理简述及代码实现

    Logistic回归 1 逻辑回归原理 1.1 线性回归 1.2 逻辑回归 2 具体过程 2.1 构造预测函数 2.2 构造损失函数J(θ) 2.3 采用梯度下降算法minJ(θ) 2.4 采用向量化 ...

  9. 机器学习——逻辑回归常见面试题整理

    逻辑回归 1.介绍 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯队下降来求解参数,来达到将数据二分类的目的. 2.逻辑回归的损失函数和梯度下降参数迭代方法 逻辑回归的损失函数是它的 ...

最新文章

  1. 嵌入式系统开发方向的面试题总结
  2. elasticsearch api中的Delete By Query API操作
  3. 手把手教你用1行代码实现人脸识别 -- Python Face_recognition
  4. phpcms调用全部频道栏目及子栏目代码详解
  5. python 爬虫性能_Python 爬虫性能相关总结
  6. linux下rsync服务的搭建
  7. 【CF Round #534 Div2】B:Game with string(水题,积累思路)
  8. android jni调试打印char阵列
  9. 分享10个值得每天一看的精品网站,可以让你全方面得到提升,每一个都会让你大开眼界。
  10. 手机html5编辑器哪个好,3款容易上手的HTML5编辑工具推荐~
  11. Python爬虫:斗鱼TV
  12. 【问题记录】git报错:[remote rejected] (pre-receive hook declined)
  13. 《功夫熊猫》的人生启示
  14. android开发之Android 5.0 Lollipop新特性介绍
  15. VS2019项目自动包含bin或obj文件夹的问题
  16. 进击的人工智能:从产品角度,深度解析「对话机器人」
  17. 2004年南京美食地图 [转载]
  18. 巴曙松:寻找可持续的经济复苏
  19. 第4-8课:方块消除游戏
  20. 数据分析学习之roc曲线

热门文章

  1. OSPF协议分析与配置
  2. css超出隐藏、悬浮标签文字提示
  3. 说 2 件开心的事儿
  4. 强烈推荐:阿里巴巴教父--电子商务狂人马云
  5. java tftp_具体分析tftp server配置的步骤(转)
  6. ssh,ssm,java的三大框架是什么,功能各是什么
  7. JSP时间戳格式问题
  8. 黑马程序员 JAVA基础学习笔记
  9. HTML入门 — 网页内容的撰写
  10. 盘点:恋爱一族约会英语词汇