返回 登录
5

十分钟掌握经典机器学习算法-逻辑回归

机器学习故事汇-逻辑回归

【咱们的目标】系列算法讲解旨在用最简单易懂的故事情节帮助大家掌握晦涩无趣的机器学习,适合对数学很头疼的同学们,小板凳走起!

这里写图片描述

前文导航(建议木有基础的同学先看):
线性回归:http://blog.csdn.net/tangyudi/article/details/77711981
梯度下降:http://blog.csdn.net/tangyudi/article/details/77769045

今天我们要来讨论的一个分类算法-逻辑回归(你有没有搞错,这不还是回归吗,虽然名字带上了回归其实它是一个非常实用的分类算法)。先来吹一吹逻辑回归的应用,基本上所有的机器学习分类问题都可以使用逻辑回归来求解,当前拿到一份数据想做一个分类任务的时候第一手准备一定要拿逻辑回归来尝试(虽然有很多复杂的模型比如神经网络,支持向量机的名气更大,但是逻辑回归却更接地气,用的最多的还是它)!在机器学习中无论是算法的推导还是实际的应用一直有这样的一种思想,如果一个问题能用简单的算法去解决那么绝对没必要去套用复杂的模型。

这里写图片描述

在逻辑回归中最核心的概念就是Sigmoid函数了,首先我们先来观察一下它的自变量取值范围以及值域,自变量可以是任何实数(这没啥特别的!)但是我们观察值域的范围是[0,1]也就是任意的一个输入都会映射到[0,1]的区间上,我们来想一想这个区间有什么特别的含义吗?在我们做分类任务的时候一般我都都会认为一个数据来了它要么是0要么是1(只考虑二分类问题),我们其实可以更细致一点得出来它是0或者1的可能性有多大,由此我们就得出了一个输入属于某一个类别的概率值,这个[0,1]不就恰好是这个概率吗!

这里写图片描述

在这里我们的预测函数还是跟线性回归没有多大差别,只不过我们将结果又输入到Sigmoid函数中,这样得到了数据属于类别的概率值。在推导过程中,我们假定分类是两个类别的(逻辑回归是经典的而分类器)。设定y(标签)要么取0要么取1,这样就可以把两个类别进行整合,得到一个更直观的表达。

这里写图片描述

对于逻辑回归的求解,已然沿用我们上次跟大家讨论的梯度下降算法。给出似然函数,转换对数似然(跟线性回归一致),但是我们现在的优化目标却跟之前不太一样了,线性回归的时候我们要求解的是最小值(最小二乘法),但是现在我们想得到的却是使得该事件发生得最大值,为了沿用梯度下降来求解,可以做一个简单的转换添加一个负号以及一个常数很简单的两步就可以把原始问题依然转换成梯度下降可以求解的问题。

这里写图片描述

此处求导过程看起来有些长,但也都是非常非常基本的运算了,感兴趣拿起一支笔来实际算算吧!

这里写图片描述

最终就是参数更新了,迭代更新是机器学习的常规套路了。但是我们来简单想一想另外的一个问题,现在我们说的逻辑回归是一个二分类算法,那如果我的实际问题是一个多分类该怎么办呢?这个时候就需要Softmax啦,引入了归一化机制,来将得分值映射成概率值。

最后一句话总结一下吧,任何时候(没错就是这么狠)当我们一个实际任务来了,第一个算法就是逻辑回归啦,可以把它当成我们的基础模型,然后不断改进对比!

更多机器学习经典算法与案例讲解尽在公众号:数据先锋,赶快加入我们吧!

这里写图片描述

评论