逻辑回归
一、概述
- 名为“回归”的分类器?
之前我们接触了不不少带“回归”二字的算法,回归树,随机森林的回归,线性回归,无一例外。他们都是区别于分类算法们,用来处理理和预测连续型标签的算法。然而逻辑回归,是一种名为“回归”的线性分类器?,其本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法。要理理解逻辑回归从何而来,得要先从线性回归开始。线性回归是机器?学习中最简单的的回归算法,对任意样本,它写作一个几乎人人熟悉的方程:
文章图片
w 被统称为模型的参数,其中 w0被称为截距(intercept), w1~ wn被称为系数(coefficient),这个表达
式,其实就和我们小学时就无比熟悉的 y=ax+b是同样的性质。我们可以使用矩阵来表示这个方程,
其中x和w 都可以被看做是一个列矩阵,则有:
文章图片
线性回归的任务,就是构造一个预测函数 来映射输?入的特征矩阵x和标签值y的线性关系,而构造预测函数的核心就是找出模型的参数:wT 和 w0,著名的最小二乘法就是用来求解线性回归中参数的数学方法。
通过函数 ,线性回归使用输入的特征矩阵X来输出一组连续型的标签值y_pred,以完成各种预测连续型变量量的任务(比如预测产品销量量,预测股价等等)。那如果我们的标签是离散型变量量,尤其是,如果是满足0-1分布的离散型变量量,我们要怎么办呢?我们可以通过引入联系函(linkfunction),将线性回归方程z变换为g(z),并且令g(z)的值分布在(0,1)之间,且当g(z)接近0时样本的标签为类别0,当g(z)接近1时样本的标签为类别1,这样就得到了了一个分类模型。而这个联系函数对于逻辑回归来说,就是Sigmoid函数:
文章图片
线性回归的核心任务是通过求解w 构建 z这个预测函数,并希望预测函数 z能够尽量量拟合数据,因此逻辑回归的核心任务也是类似的:求解w 来构建一个能够尽量量拟合数据的预测函数y(x) ,并通过向预测函数中输入特征矩阵来获取相应的标签值y。
- 为什什么需要逻辑回归
线性回归对数据的要求很严格,比如标签必须满足正态分布,特征之间的多重共线性需要消除等等,而现实中很多真实情景的数据无法满足这些要求,因此线性回归在很多现实情境的应用效果有限。逻辑回归是由线性回归变化而来,因此它对数据也有一些要求,而我们之前已经学过了了强大的分类模型决策树和随机森林,它们的分类效力很强,并且不不需要对数据做任何预处理。
何况,逻辑回归的原理理其实并不不简单。一个人要理解逻辑回归,必须要有一定的数学基础,必须理解损失函数,正则化,梯度下降,海森矩阵等等这些复杂的概念,才能够对逻辑回归进行调优。其涉及到的数学理理念,不比支持向量机少多少。况且,要计算概率,朴素贝叶斯可以计算出真正意义上的概率,要进行分类,机?学习中能够完成二分类功能的模型简直多如牛毛。因此,在数据挖掘,人工智能所涉及到的医疗,教育,人脸识别,语音识别这些领域,逻辑回归没有太多的出场机会。
甚至,在我们的各种机器学习经典书目中,周志华的《机?学习》400页仅有一页纸是关于逻辑回归的(还是一页数学公式),《数据挖掘导论》和《Python数据科学手册》中完全没有逻辑回归相关的内容,sklearn中对比各种分类?的效应也不带逻辑回归玩,可见业界地位。
- 逻辑回归对线性关系的拟合效果好到丧心病狂,特征与标签之间的线性关系极强的数据,比如金融领域中的信用卡欺诈,评分卡制作,电商中的营销预测等等相关的数据,都是逻辑回归的强项。虽然现在有了了梯度提升树GDBT,比逻辑回归效果更更好,也被许多数据咨询公司启用,但逻辑回归在金融领域,尤其是银行行业中的统治地位依然不可动摇(相对的,逻辑回归在非线性数据的效果很多时候比瞎猜还不不如,所以如果你已经知道数据之间的联系是非线性的,千万不要迷信逻辑回归)。
- 逻辑回归计算快:对于线性数据,(大部分时候)逻辑回归的拟合和计算都非常快,计算效率优SVM和随机森林,亲测表示在大型数据上尤其能够看得出区别。
- 逻辑回归返回的分类结果不是固定的0,1,而是以小数形式呈现的类概率数字:我们因此可以逻辑回归返回的结果当成连续型数据来利用。比如在评分卡制作时,我们不仅需要判断客户是否会违约,还需要给出确定的”信用分“,而这个信用分的计算就需要使用类概率计算出的对数几率,而决策树和随机森林林这样的分类器?,可以产出分类结果,却无法帮助我们计算分数(当然,在sklearn中,决策树也可以产生概率,使用接口predict_proba调用就好,但一般来说,正常的决策树没有这个功能)。
由此,我们已经了解了逻辑回归的本质,它是一个返回对数几率的,在线性数据上表现优异的分类?,它主要被应用在金融领域。其数学目的是求解能够让模型对数据拟合程度最高的参数w 的值,以此构建预测函数y(x) ,然后将特征矩阵输入预测函数来计算出逻辑回归的结果y。注意,虽然我们熟悉的逻辑回归通常被用于处理二分类问题,但逻辑回归也可以做多分类。
**二、Python代码实现 【逻辑回归】https://nbviewer.jupyter.org/github/Wxj-0920/cda-/blob/master/%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92.ipynb**
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- Y房东的后半生14
- 奔向你的城市