赞
踩
这个介绍主要是方便刚入行的数据科学家。通过这个指导,使你直接解决机器学习的问题以及从中获得经验。而且我会尽量用简单易懂的方式来介绍每一个算法,不会涉及很多数学,而是帮助你从原理上理解每个算法,每一个算法都附上R和Python的程序来帮助你直接去应用程序解决问题。一般经常使用的机器学习算法有以下11种
第二期我们介绍逻辑回归(2)。逻辑回归和线性回归其实都属于广义线性模型的一种,而在决策制定等领域,逻辑回归的应用更加广泛。所以在第一期学习了线性回归之后很自然的就是学习逻辑回归了。
逻辑回归是一种分类的算法,它用给定的输入变量(X)来预测二元的结果(Y)(1/0,是/不是,真/假)。我们一般用虚拟变量来表示二元/类别结果。你可以把逻辑回归看成一种特殊的线性回归,只是因为最后的结果是类别变量,所以我们需要用胜算比取对数来作为因变量(Dependent
Variable)。简单来说,逻辑回归是利用logit 函数拟合数据来预测某一个事件发生的概率的。
逻辑回归其实是属于广义线性模型(Generalized Linear Model)的一部分。1972年
Nelder和Wedderburn发明了这种方法来处理那些用线性回归没法处理的问题。因为如果你用线性回归去处理逻辑回归的二元或类别输出变量时候,最后的结果就是你会得到极低的校正R平方。当然广义线性模型是一个统计上用的非常广的模型,它包含了不止线性回归,逻辑回归,还有泊松回归,ANOVA等等,感兴趣的可以继续进行这方面的阅读。
这里,g()是联系函数(link function),E(y) 是目标输出变量Y的期望值,而α + βx1 + γx2
是输入变量的线性组合(α,β,γ
都是需要用数据估计的参数)。联系函数的作用是将输出变量Y的期望值和输入变量X的线性组合可以连接起来,起到一个桥的作用。
I.广义线性模型(简称GLM)因为有联系函数的存在,所以不需要输出变量和输入变量一定性关系。但是它假设输出变量Y的期望值算出来的联系函数的值必须和输入变量性关系。
II. GLM并不使用回归分析中经常使用的最小二乘法来估计模型参数的值,而是使用最大似然来估计参数的值(Maximum
Likelihood
Estimation,简称MLE)。MLE是统计学中只要涉及到参数模型一定都要搞清楚的重要基础概念。大部分的参数模型都会假设随机变量的分布,有了分布之后能写出模型的似然函数,而模型中的参数就可以用最大似然函数来估计。
IV.模型中的误差项必须要是分布的但是也不需要假设正态分布。而在线性回归中,误差项是要假设分布加正态分布的。
为了便于没有太多统计背景的朋友们理解,下面会用一个简单的例子来说明。我们提供一个1000个顾客的样本。我们需要预测是否一个顾客会买,这个是我们的类别结果(买/不买)。对于这个问题,我们会使用逻辑回归如下
这里的输入变量是年龄(Age)。g()是联系函数。这个函数包含两个东西,买的概率(p)和不买的概率(1-p)。概率p需要满足下列标准:
有了概率的这两个条件,下面我们来写出概率p的函数。首先因为概率是总是大于0的,逻辑回归里面使用一个指数函数的形式表示概率p,因为对于任何输入变量,它的指数函数形式永远不会是负值。这个就满足了条件1
log(p/(1-p))就是所谓的联系函数(link
function),对于输出变量取对数的变换有利于我们对于非线性的关联性用线性模型去拟合。所以我们新的输出变量是Y而不是原来的p。Y可以写成
1,那么事件发生的概率p是大于50%的。我用一个用的很多逻辑回归的概率图来说明逻辑回归的函数永远是在0和1
之间(因为是为了拟合概率)
在你建立好逻辑回归模型之后,很自然的我们需要去评估这个模型的表现好不好,不管你用的是什么软件(SAS,R,Python),你总是需要看
AIC其实是和校准R平方很类似的一个测量量,校正R平方可以理解为,给进入模型的输入变量一个惩罚机制,你加入的输入变量X越多,我的惩罚越大。因此校正R平方可以理解为计算真正和Y有关的输入变量X可以解释的Y的百分比。AIC同样会给出这样的一个惩罚机制,你加入的输入变量个数越多,惩罚越大。AIC可以简单表示为
其中k是你模型的参数的个数(可以简单理解为你的输入变量X1,X2,。。。Xk的个数),而L是你的似然函数(likelihood),一般似然函数越大说明模型拟合的越好。
AIC越小,说明你的模型越好。
只有项的模型偏差值是指我们只用项去拟合输出变量Y的值与实际输出变量Y的偏差,这个偏差越小,模型拟合的越小。而所拟合的模型的偏差值是指用含有输入变量X的模型拟合的输出变量Y与实际输出变量Y的偏差,这个值也是越小,模型越好。
混淆矩阵实际上就是帮助我们判别预测值和实际值相比到底预测对了多少。一个完美的分类模型就是,如果一个样本实际上(Actual)属于good,也预测成(Predicted)good,处于类别bad,也就预测成bad。但在实际的应用中,一些实际上是good的,根据我们的模型,却预测他为bad,对一些原本是bad的,却预测他为good。我们需要知道,这个模型到底预测对了多少,预测错了多少,混淆矩阵就是把所有这些信息都归到一个如下
接收者操作特征曲線(receiver operating characteristic curve or
ROC)是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-度)为横坐标绘制的曲线。如下是一个ROC曲线
ROC曲线以下的面积大小(Area under curve 或者
AUC)可以表示模型的是否表现好,面积越大说明模型的预测表现越好。最完美的预测模型是覆盖率或者灵敏度或者真阳性率为1而假的阳性率(1-度)为0.那么ROC曲线就会是一条垂直上去的线。当然一般的模型是没法到达这样的表现的。
备注:虽然ROC是很好的衡量模型表现的方法,但是它也有自己局限性,尤其是在阳率很稀少的样本中,如果你画ROC也可能得到很高的AUC,但是不代表你的模型预测的好。
下面我将使用Kaggle上的很有名的泰坦尼克号数据来演示一个多元逻辑回归的学习案例。每一行代表一个乘客,我们需要用提供的这些变量来预测最终游客的生还率。这个数据集我会附在文章的最后,可以下载。一些变量的解释如下
更多精彩内容请关注:大数据爬虫 http://www.shenjian.io
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。