python数据分析与机器学习实战

(二十四)逻辑回归-python数据分析与机器学习实战(学习笔记

2018-05-25  本文已影响283人  努力奋斗的durian

文章原创,最近更新:2018-05-24

1.逻辑回归算法原理推导
2.逻辑回归求解
课程来源: python数据分析与机器学习实战-唐宇迪

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

逻辑回归是分类的任务,是非常经典的二分类算法!在机器学习当中,并不是越复杂反而越好.需要的是简单通俗易懂即可.

这个算法运用得比较广,对于原理而言是非常简单的,而且表现效果也是不错的.如果拿到一个分类任务,先做一个基础的模型,先拿回归试一下,能否达到什么样的效果?基于逻辑回归,对其他算法进行改进,能不能比逻辑回归好.如果比逻辑回归好,就用其他算法,如果差不多,还是用回逻辑回归.逻辑回归是个优先选择的,机器建模首选的算法就是机器回归.

逻辑回归的决策边界:可以是非线性的.非线性的可以是高阶的,普遍情况下可以不用那么高阶的,用一个差不多没那么复杂的模型,就可以了.

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

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


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


注意:需要理解求导过程,然后用代码运用最后的结果.


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

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

上一篇下一篇

猜你喜欢

热点阅读