本文共 3065 字,大约阅读时间需要 10 分钟。
回归补充(二)
文章目录
一. 线性回归的决定系数
线性回归的决定系数,也叫:可决系数,也称测定系数,英文名:coefficient of determination。这个是用来测定拟合程度的。这个值越高,说明拟合程度越高。
那么决定系数具体是什么呢?
我们假设有m个样本,他们分别是(x1, y1), (x2, y2), (x3, y3), ……, (xm, ym)。这几个样本的估计值是(x1,y1^), (x2, y2^), ……(xm, ym)(yi上面有个,在这里不知道该怎么打这个符号了)。那么这几个样本一定有一个总平方和TSS(Total Sum of Squares),公式如下:
然后我们计算残差平方和RSS(Residual Sum of Squares):
Note:RSS即误差平方和SSE(Sum of Squares for Error)
有了这两个,我们进一步得到了决定系数公式:
对于这个公式,有如下一些说明:
- R ^2越大,拟合效果越好
- R^2的最优值为1;若模型预测为随机值, R^2有可能为负
- 若预测值恒为样本期望, R^2为0
由这几个样本值和样本估计值,我们还能得到另外一个东西:回归平方和SSR(Sum Of Squares for Regression)。有一些教材把他称为ESS(Explained Sum of Squares)。
TSS, ESS, RSS这三个有这样的数量关系:
如果正好估计值是无偏估计量,那么这个式子取等号。
二.局部加权线性回归
英文名:Locally Weighted linear Regression,简称LWR。我们假设有一个情况,如图所示:
这当中,黑色是样本点,红色是线性回归线,绿色是局部加权回归线。
我们可以看到,线性回归线和样本点实际值还是有差距的,于是就有人想,能不能通过在红色的回归线基础上加上一个权值,就能让回归线更加拟合于实际值呢?就像图中两个红点之间那个距离。这就是LWR的思想。
局部加权的关键,就是如何计算这个权值。其实这个权值有多个选择方式,比如说:高斯核函数如下所示:
其中,τ称为带宽,它控制着训练样本随着与x (i) 距离的衰减速率。
除了高斯核函数,多项式核函数也是一种方式:
采用了多项式核函数的局部加权线性回归,也叫:SVM
三.回归分类问题
在现实当中,你如果说你想纯粹用线性回归去解决分类问题,那么不建议这样。
原因:比如说,一个很简单的模型。肿瘤分为恶性和良性,可以根据肿瘤的尺寸来判断。但是,如果,有一些肿瘤却比较隔路子,哪怕尺寸比较小,他也是恶性的,而且,又远远小于均值,那么线性回归模型就会往这些尺寸比较小的模型倾斜但是,这并不代表回归无法解决分类问题,典型的就是逻辑回归,与softmax回归
3.1 逻辑回归
这个之前有学习过(可以先看看这个文章:),但是有些东西得补充一下。
3.1.1 逻辑回归参数估计
我们知道,在机器学习当中,逻辑回归依托于Sigmoid函数(意思是:s形状的函数)
把线性回归方程带入当中,就得到了逻辑回归的公式:
我们知道,逻辑回归是用来处理二分类问题,所以我们就做如下假定:
则,上面两个式子进行合并,我们可以得到:
现在,我们开始进行极大似然估计:
求theta的极大似然估计,也就意味着对theta求偏导,求偏导也就意味着求梯度,求那个下降速度最快的方向
于是,逻辑回归的学习规则就出来了:以上这个值乘以一个学习率
如果我们把这个式子和线性回归当中的梯度下降进行比对,就会发现:逻辑回归的规则和线性回归竟然在形式上具有一致性,这是为什么呢?
我们回到这两个推导。线性回归用的是正态分布公式推导,而逻辑回归用的是二项分布公式进行推导。这两个都是指数级分布,都属于广义线性模型。包括泊松分布都是属于这个范畴。
3.1.2 对数线性模型
在解释这个事情之前,我们得明确一个概念:什么是事件的几率?一个事件的几率odds,是指该事件发生的概率与该事件不发生的概率的比值。
那么对数几率又是什么呢?这就涉及到一个logit函数。
如果我们对逻辑回归的相关东西做一个对数,会发现一个很有意思的现象:
即:经过对数几率处理之后,得到的竟然是线性回归的方程。
某些方面讲,这个可以反过来看待,我们搞二分类问题的时候,就是要把线性方程通过一个逻辑函数映射到一个新的映射上面,然后通过这个新的映射去进行二分类,如果我们只取这一部分
l o g p 1 − p = θ T x log\frac{p}{1-p} = \theta^Tx log1−pp=θTx 我们取解这个方程,就会发现 p就是sigmoid函数的表达式。3.1.3 逻辑回归的损失函数
逻辑回归的损失函数,有两种方式,一种是:当输出值是0或者1的时候。另一种是:输出值取-1或者1的时候。这两个结果不同,但是计算的原理都一样。
-
当输出值取0或者1的时候:
-
当输出值取-1或者1的时候:
分类,还是要看逻辑回归和softmax回归
3.2 Softmax回归
逻辑回归用来解决二分类问题,那么这个Softmax回归就是用来解决多分类问题的。
Softmax是这样一个思路:假设有m个类别的样本,那么每一个类别都有一个属于自己的线性回归。
我们假设m个类别当中第k类的参数为theta(k),那么整体而言,在输入了样本x的情况下,这个第k类发生的概率是:
为什么是这个式子呢?其实这个是脱胎于逻辑回归的函数,如果我们把每一个类都看成一个独立的逻辑回归,那么就会得到下面这个矩阵:
其中那个分母,其实是做了归一化处理,为了使各个类别加起来的总概率是1,所以把分母那部分的1给去掉了。
然后,还是老套路,我们求似然函数,对数似然函数
然后我们对theta(k)求梯度:
这个就是softmax的损失函数
四.混淆矩阵与AUC
这个之前有所介绍(可以先看看这个文章:),但是需要做一些补充。
首先,我们已经知道混淆矩阵了,如下所示:
然后,我们引入TPR(True Positive rate), FPR(False Positive rate)的概念:
我们假设,我们有一组测试数据,经过测试之后得到了若干个预测结果,整体分布如下所示:
我们看到,FP,FN有一个竖线,那个竖线是theta的取值。竖线左边认为是阳性,竖线右侧认为是阴性。当theta比较大的时候,也就是趋近于1的时候,那么这两部分曲线都会位于theta阳性的一侧。那么TN为0(因为TN完全代表negtive,自然不应该在阳性的一侧),FN->0,TP为正, FP为负。那么带入到TPR和FPR的式子里面,TPR = 正/正,所以是1,FPR = 负/负, 也是1。
当theta取的很小,那么这两个曲线都在theta值的阴性一面,这个时候,TP,FP不可能取值,因此为0,但是FN和TN有值,代入到TPR, FPR里面。
如果,我们把fpr当做横轴,tpr当做纵轴,那么根据上面这个推断,我们能根据theta的位置变化,画出一个曲线,且这个曲线一定过(0,0)和(1,1)。这个曲线就是受试者工作特征曲线(Receiver Operating Characteristic,简称ROC)。曲线之下的面积,被称为Area Under Curve, 简称AUC。这个曲线下方的面积越大越好,越大就代表预测值越准确。
五.线性回归实现
详细见的第8部分
转载地址:https://blog.csdn.net/johnny_love_1968/article/details/116334051 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!