博客
关于我
机器学习实战 - 读书笔记(05) - Logistic回归
阅读量:449 次
发布时间:2019-03-06

本文共 1144 字,大约阅读时间需要 3 分钟。

机器学习实战 - 读书笔记(05) - Logistic回归

解释

Logistic回归是一种常用的分类算法,主要用于解决最优化问题。最优化问题可以理解为在有限的资源下寻求最大效益的过程,比如如何在最短时间内到达目的地、如何用最少的投入获得最大的效益等等。这些问题通常需要寻找最小值或最大值,而解决这类问题的方法包括梯度下降法和梯度上升法。

Logistic回归的核心思想是通过寻找一个阶跃函数来实现分类。由于阶跃函数只能返回0或1的值,因此可以将其作为分类器。为了实现这一点,Logistic函数(Sigmoid函数)被广泛使用。Sigmoid函数的数学表达式为:

[\sigma(z) = \frac{1}{1 + e^{-z}}]

该函数的输出值通常在0到1之间,当输入值z接近0时,输出值约为0.5。因此,当Sigmoid函数的输出值大于0.5时,分类器将返回1,否则返回0。

为了使Sigmoid函数返回值大于0.5,我们需要计算z的值:

[z = w_0x_0 + w_1x_1 + ... + w_nx_n]

其中,向量w是待求的参数,向量x是输入数据。为了避免线性函数的线性限制,通常会在x的向量中添加一个不变量(如1),从而将问题转化为多元一次方程的问题。

在求解最优化问题时,梯度上升法和梯度下降法是两种常用的迭代优化算法。梯度上升法用于最大化目标函数,而梯度下降法用于最小化目标函数。对于Logistic回归,通常使用梯度上升法,因为其目标函数是一个对数似然函数。

梯度上升算法的迭代公式为:

[w := w + \alpha (c - f(x)) x]

其中,α是步长,c是预期分类结果,f(x)是Sigmoid函数的输出值,x是输入向量。这样的更新规则可以帮助模型沿着提高目标函数的梯度方向调整参数w,逐步逼近最优解。

在实际应用中,步长α的选择非常重要。步长太大可能导致模型收敛过快或震荡,影响模型的稳定性;步长太小则会降低训练效率。因此,通常会在训练过程中动态调整步长。

Logistic回归的另一个关键点是其对应的损失函数。损失函数的最小化与分类器的性能直接相关。通过不断优化参数w,使得损失函数的值最小化,从而提高分类的准确性。

此外,Sigmoid函数的导数也值得注意。其导数为:

[f'(x) = f(x) [1 - f(x)]]

这表明函数在输出值接近0或1时,变化率较低,而在中间区域变化较快。

总的来说,Logistic回归通过将线性函数与Sigmoid函数结合,成功地将分类问题转化为对数似然的最大化问题,从而为机器学习提供了一个强大的工具。

参考

  • Machine Learning in Action by Peter Harrington

转载地址:http://grxfz.baihongyu.com/

你可能感兴趣的文章
oracle零碎要点---oracle em的web访问地址忘了
查看>>
Oracle零碎要点---多表联合查询,收集数据库基本资料
查看>>
Oracle静默安装
查看>>
【Bert101】变压器模型背后的复杂数学【02/4】
查看>>
Oracle面试题:Oracle中truncate和delete的区别
查看>>
ThreadLocal线程内部存储类
查看>>
thinkphp 常用SQL执行语句总结
查看>>
Oracle:ORA-00911: 无效字符
查看>>
Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
查看>>
Tensorflow.python.framework.errors_impl.ResourceExhaustedError:无法分配内存[操作:AddV2]
查看>>
TCP基本入门-简单认识一下什么是TCP
查看>>
tableviewcell 中使用autolayout自适应高度
查看>>
Symbolic Aggregate approXimation(SAX,符号聚合近似)介绍-ChatGPT4o作答
查看>>
Orcale表被锁
查看>>
svn访问报错500
查看>>
sum(a.YYSR) over (partition by a.hy_dm) 不需要像group by那样需要分组函数。方便。
查看>>
ORCHARD 是什么?
查看>>
Struts2中使用Session的两种方法
查看>>
Stream API:filter、map和flatMap 的用法
查看>>
STM32工作笔记0032---编写跑马灯实验---寄存器版本
查看>>