博客
关于我
机器学习实战 - 读书笔记(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/

你可能感兴趣的文章
python基本数据类型(容器)- tuple list dict set
查看>>
python基本工资的调整方案_Python薪资又涨了!这可咋办!
查看>>
Python基准测试和性能分析内存管理和垃圾回收
查看>>
Python基于RESTful风格的接口自动化测试实战
查看>>
python基于pygame实现跨年烟花效果
查看>>
python基于flask搭建http服务(四)—— Docker容器化部署
查看>>
python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
查看>>
python基于flask搭建http服务(三)—— 使用gunicorn部署项目
查看>>
python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
查看>>
Python块键盘/鼠标输入
查看>>
python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>