机器学习实战笔记-5-Logistic回归
Logistic回归
优缺点 | 适用范围 |
---|---|
优点:计算代价不高,易于理解和实现。 缺点:容易欠拟合,分类精度可能不高。 适用于:数值型和标称型数据。 | 仅用于二分类 |
原理:
每个特征都乘以一个回归系数>>将结果相加>>总和代入到Sigmoid函数,得到范围在(0,1)中的数值>>预测分类结果\(\hat{y}\)。即\(Z= w_{0}x_{0} + w_{1}x_{1} + \ldots + w_{n}x_{n} = \sum_{i = 0}^{n}{w_{i}x_{i} =w^{T}x}\),代入Sigmoid函数即可。
两个类别的分割点是\(Z=0\),即直线\(w_{0}x_{0}+w_{1}x_{1}+\ldots +w_{n}x_{n}=0\)。
\]
若用\(y’\)表示分类为1的概率,\(P\left( y = 1 \middle| x,w \right) =
y'\),则分类为0的概率为\(P\left( y = 0 \middle| x,w \right) = 1 - y'\)。
极大似然概率为\(L\left( w \right) = \prod_{i =
1}^{m}{ { {(y}_{i}^{'})}^{y_{i} }\left( 1 - y_{i}^{'} \right)^{1 - y_{i} } }\),
取对数后为\(\mathbf{l}\left( \mathbf{w} \right)\mathbf{=}\sum_{\mathbf{i =
1} }^{\mathbf{m} }{\mathbf{(}\mathbf{y}_{\mathbf{i} }\log\left(
\mathbf{y}^{\mathbf{'} } \right)\mathbf{+ (1
-}\mathbf{y}_{\mathbf{i} }\mathbf{)log(1
-}\mathbf{y}_{\mathbf{i} }^{\mathbf{'} }\mathbf{)} }\mathbf{)}\),迭代式为
\(\mathbf{w}_{\mathbf{j} }\mathbf{: =}\mathbf{w}_{\mathbf{j} }\mathbf{+
\alpha}\frac{\mathbf{\partial} }{\mathbf{\partial}\mathbf{w}_{\mathbf{j} } }\mathbf{l(w)}\)
\]
\]
其中用到了 记\(f\left( x \right) = \frac{1}{1 +
e^{g(x)} }\),则\(\frac{\partial}{\partial x}f\left( x \right) = f\left( x
\right)\left( 1 - f\left( x \right) \right)\frac{\partial}{\partial x}g(x)\)
现有一数据集trainMat,记作矩阵X,则\(error = \mathbf{\text{labelMat} } -
\sigma(\mathbf{X} \times \mathbf{w})\)为预测值与实际值的差。
极大似然概率就是要回归的最大值\(l(w)\),并不在代码中体现,迭代式为
\]
\]
梯度上升算法伪代码:
每个回归系数初始化为1
重复R次
计算整个数据集的梯度
使用alpha×gradient更新回归系数的向量
返回回归系数
随机梯度上升算法伪代码:
每个回归系数初始化为1
对数据集中每个样本
计算该样本的梯度
使用alpha×gradient更新回归系数的值
返回回归系数值
知识点:最大似然估计法-本质就是求联合概率的最大值
二项分布的似然函数(某次实验:投n次硬币有m次正面)
\]
二项分布用通俗点的话来说,就是描述了抛10次硬币的结果的概率,其中,“花”出现的概率为\(\theta\)。如{4,5,5,2,7,4}就是6次实验的结果,每个数字表示抛10次硬币出现了几次“花”。
用\(x_{1},x_{2},\ldots,x_{n}\)表示实验结果,则因为每次实验都是独立的,所以似然函数可以写作(得到这个似然函数很简单,独立事件的联合概率,直接相乘就可以得到):
\]
其中\(f\left( x_{n} \middle| \theta\right)\)表示同一参数下的实验结果,也可认为是条件概率。
用python画的图
机器学习实战笔记-5-Logistic回归的更多相关文章
- 机器学习实战笔记5(logistic回归)
1:简单概念描写叙述 如果如今有一些数据点,我们用一条直线对这些点进行拟合(改线称为最佳拟合直线),这个拟合过程就称为回归.训练分类器就是为了寻找最佳拟合參数,使用的是最优化算法. 基于sigmoid ...
- 《机器学习实战》-逻辑(Logistic)回归
目录 Logistic 回归 本章内容 回归算法 Logistic 回归的一般过程 Logistic的优缺点 基于 Logistic 回归和 Sigmoid 函数的分类 Sigmoid 函数 Logi ...
- 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归
机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...
- 机器学习实战笔记-k-近邻算法
机器学习实战笔记-k-近邻算法 目录 1. k-近邻算法概述 2. 示例:使用k-近邻算法改进约会网站的配对效果 3. 示例:手写识别系统 4. 小结 本章介绍了<机器学习实战>这本书中的 ...
- 机器学习实战 - 读书笔记(05) - Logistic回归
解释 Logistic回归用于寻找最优化算法. 最优化算法可以解决最XX问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设计发动机使得油耗最少而功率最大? 我们可以看 ...
- 机器学习实战读书笔记(五)Logistic回归
Logistic回归的一般过程 1.收集数据:采用任意方法收集 2.准备数据:由于需要进行距离计算,因此要求数据类型为数值型.另外,结构化数据格式则最佳 3.分析数据:采用任意方法对数据进行分析 4. ...
- 机器学习实战笔记(Python实现)-04-Logistic回归
--------------------------------------------------------------------------------------- 本系列文章为<机器 ...
- 机器学习实战笔记(Python实现)-08-线性回归
--------------------------------------------------------------------------------------- 本系列文章为<机器 ...
- 机器学习实战笔记(Python实现)-09-树回归
---------------------------------------------------------------------------------------- 本系列文章为<机 ...
随机推荐
- 从零开始学编程_第A001期_C语言HelloWorld详解
emmm,这是我的第一篇博客. 作为一个软件工程专业的学生,我希望自己能在编程方面有不错的成就,我们老师告诉我们学编程就要写博客,在写博客的过程中不断成长,结交朋友,所以我就开始尝试写专业相关的博客. ...
- 看漫画就能学SQL,简直太cool了
对于SQl, 很多人学不会的原因是从一开始就没明白,学这东西能干啥,学会了能有什么用.甚至有些人不知道'SQL'应该怎么读,以至于一开始兴致勃勃,但是学到一半放弃了. 注意:'sql'真的不能读成'烧 ...
- mybatis-plus&springboot
** 问题1:mybatis 读取不到 mapper映射文件. 如下: ** 如果引用 mybatis-plus 包 <dependency> <groupId>com.bao ...
- 20、前端知识点--html5和css3特性(一)
[html5/css3]css中的flex弹性布局学习总结 https://blog.csdn.net/Umbrella_Um/article/details/99490209 用CSS/CSS3 实 ...
- Spark Streaming 单词计数
Receiver 从数据源接收数据,然后把数据存储在内存中供spark streaming使用,在本地运行spark streaming不能设置master为local或者local[1],此时运行的 ...
- linux中的一些常用命令
shutdown -h now 现在马上关机 shutdown -r now 现在重新启动 reboot 现在重新启动 su - 如果当前是普通用户,则输入这条命令切换到管理员用户(root),如果要 ...
- 信号量Semaphore实现原理
Semaphore用于管理信号量,在并发编程中,可以控制返访问同步代码的线程数量.Semaphore在实例化时传入一个int值,也就是指明信号数量.主要方法有两个:acquire()和release( ...
- webGL 旋转算法
lon = 0,//y旋转角度 lat = 0, onMouseDownLat = 0, phi = 0, theta = 0; if ( isUserInteracting === false ) ...
- 23飞机大战__pygame 快速入门
1. 使用 pygame 创建图形窗口 小节目标 游戏的初始化和退出 理解游戏中的坐标系 创建游戏主窗口 简单的游戏循环 可以将图片素材 绘制 到 游戏的窗口 上, 开发游戏之前需要先知道 如何建 ...
- Django中如何将javascript中的变量传给位于javascript内的{% url %}中的参数?
这个问题困扰了我一天,不知道困扰了你多久,希望能帮助你 django 中的url模版使用起来可以说是非常方便的,但是怎么在url模版中传入参数的 {% url "url.index" ...