机器学习-logistic Regression(逻辑回归)
2016-04-11 01:30
369 查看
logistic Regression-逻辑回归
线性边界方程
(θ为特征值参数,x为自变量)
公式意义:计算某个事件发生的可能性,可以把跟这个事件相关的所有特征加权求和,可以看做是类别分界线(最佳拟合线),着重理解的方程。
逻辑函数(Sigmoid函数)
函数图像:
P(t)的值域为[0,1];利用此可以计算事件发生的概率,以便归类
ps:发生概率小于0.5时,属于类别0,反之属于类别1
,也就是说在整个过程中我们就是要求出回归系数 的值,则可以求出P(s)进而进行分类操作。
注意:有些朋友可能会说,要是我特征取值的区间[假设值[ [0-100]和[100-200] ],的怎么办,将函数向右平移100个单位就可以了,高中知识了。
具体求出回归系数
的过程:
首先我们先理解一个损失函数(Loss Function)
我们可以知道,损失函数用户衡量预测值与实际值的偏离程度,如果预测完全正确,则损失函数的数值为0,反之表示该预测结果的糟糕程度,这里我只写了常用于线性回归的平方损失函数(Square Loss)
PS: 是第i个真实值, 为第i个预测值
依次将边界方程作为参数代入逻辑函数,将得到的值代入平方损失函数,得到
也就是说我们只要求出最佳参数
的值,即可找到最佳拟合曲线,也就是使L的值最小
求曲线
的方法:
梯度下降法:
在stanford课程中的实例图,如下
上图是一个函数曲线,也可以看做是一座山。假设我们在随机的一个点,我们要找出一条以最快速度到达最低点,实现方法就是取一个步长a,在每一点我们进行微分(通俗来说找到最大下降斜率),使得每一步下降的方向总是局部最优的,
ps:沿各个方向的最大微分的向量表示
迭代公式
ps:更新的
的值的公式
通俗来说:就是我们想最快下这座山,在没有地图的情况下,我们总是沿着坡度最快的方向走(不考虑其他的情况),梯度下降法的做法是每走一步,看一步,但是达到的是局部最优点。利用这个我们就可以求出平方损失函数的 ,然后达到分类目的。
优化点:步长,迭代次数
参考:http://www.codelast.com/%E5%8E%9F%E5%88%9B-%E7%94%A8%E4%BA%BA%E8%AF%9D%E8%A7%A3%E9%87%8A%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84logistic-regression%EF%BC%88%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92%EF%BC%89/?utm_source=tuicool&utm_medium=referral
首先感谢上面这位博客的作者,在理解该算法中得到了该篇博客很多的思路,要是在边界方程上面有不理解的地方,可以去看看这位的博客,真的很棒。
线性边界方程
(θ为特征值参数,x为自变量)
公式意义:计算某个事件发生的可能性,可以把跟这个事件相关的所有特征加权求和,可以看做是类别分界线(最佳拟合线),着重理解的方程。
逻辑函数(Sigmoid函数)
函数图像:
P(t)的值域为[0,1];利用此可以计算事件发生的概率,以便归类
ps:发生概率小于0.5时,属于类别0,反之属于类别1
,也就是说在整个过程中我们就是要求出回归系数 的值,则可以求出P(s)进而进行分类操作。
注意:有些朋友可能会说,要是我特征取值的区间[假设值[ [0-100]和[100-200] ],的怎么办,将函数向右平移100个单位就可以了,高中知识了。
具体求出回归系数
的过程:
首先我们先理解一个损失函数(Loss Function)
我们可以知道,损失函数用户衡量预测值与实际值的偏离程度,如果预测完全正确,则损失函数的数值为0,反之表示该预测结果的糟糕程度,这里我只写了常用于线性回归的平方损失函数(Square Loss)
PS: 是第i个真实值, 为第i个预测值
依次将边界方程作为参数代入逻辑函数,将得到的值代入平方损失函数,得到
也就是说我们只要求出最佳参数
的值,即可找到最佳拟合曲线,也就是使L的值最小
求曲线
的方法:
梯度下降法:
在stanford课程中的实例图,如下
上图是一个函数曲线,也可以看做是一座山。假设我们在随机的一个点,我们要找出一条以最快速度到达最低点,实现方法就是取一个步长a,在每一点我们进行微分(通俗来说找到最大下降斜率),使得每一步下降的方向总是局部最优的,
ps:沿各个方向的最大微分的向量表示
迭代公式
ps:更新的
的值的公式
通俗来说:就是我们想最快下这座山,在没有地图的情况下,我们总是沿着坡度最快的方向走(不考虑其他的情况),梯度下降法的做法是每走一步,看一步,但是达到的是局部最优点。利用这个我们就可以求出平方损失函数的 ,然后达到分类目的。
优化点:步长,迭代次数
参考:http://www.codelast.com/%E5%8E%9F%E5%88%9B-%E7%94%A8%E4%BA%BA%E8%AF%9D%E8%A7%A3%E9%87%8A%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84logistic-regression%EF%BC%88%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92%EF%BC%89/?utm_source=tuicool&utm_medium=referral
首先感谢上面这位博客的作者,在理解该算法中得到了该篇博客很多的思路,要是在边界方程上面有不理解的地方,可以去看看这位的博客,真的很棒。
相关文章推荐
- 《Java程序设计》第一次实验实验报告
- Android material Design 之CoordinatorLayout详解
- 关于php上传文件
- How to derive mean and variance of a Gaussian?
- Android实现通过手机找回密码
- NY1057 寻找最大值(三)
- MapReduce实现手机上网流量统计
- hadoop2.4.1伪分布配置
- (LinkedList)2. Add Two Numbers
- Mac上的Sublime Text 3的中文乱码(亲测有效)
- LeetCode 267. Palindrome Permutation II(对称排列)
- 树莓派——挂载USB驱动器
- LeetCode 219. Contains Duplicate II
- 使用js实现数组逆序
- ssh 免登陆
- krpano 教程 - 标签中devices设备类型属性的说明
- SQLite3优化
- 安卓中@id与@+id的区别与实际应用中的@id报错问题
- 使用css禁止textarea调整大小功能的方法
- 线程池的设计(二):领导者追随者线程池的设计