一.回归regression
1.概述
监督学习中,将算法分为两大类,一类是回归,一类是分类.线性回归是回归算法中最简单最基础的算法,很多算法都是在此基础上衍生出来的算法,比如我们本篇文章要介绍的岭回归(Ridge,L2正则化)和套索回归(Lasso,L1正则化).
线性回归的核心思想是经验风险最小化,这与我上一篇讲到的监督学习大框架关联上了.
2.公式推导
- 听到线性二字,我们最先想到的就是我们高中的线性方程,y=ax+b,好我们就从它入手研究线性回归.当我们有如第一张图的数据集时,我可以尝试构建一个线性模型y=ax+b来拟合这些点,求得参数a和b,当以后有新的未知的x喂给这个线性模型就可以预测其y值了.但这种只有一个因变量x的情况在实际场景中几乎不会遇到,而都是多维因变量来决定y.
-
当x为多维的时候,也就是有多个特征x决定y的情况,该如何构建我们的模型呢?
yi=Θ0+Θ1x1+Θ2x2+Θ3x3....... 上图,是一个房价预测的数据集,[Living area]和[bedrooms]分别是该数据集的特征,这些特征影响了最终[Price]
- 将公式改写成向量方式表达
hΘ(x)=∑ni=0Θixi=ΘTX - h(x)为预测值,与真实值必然存在一个误差,我们将这个误差构建一个函数,称其为损失函数,我们期望着损失函数尽可能的接近0,这样预测值才更接近真实值.
真实值与预测值的关系:yi=hΘi(xi)+εi(y|x,Θ) (公式1.0) - 到这里我们已经建立好了模型了,根据之前监督学习的文章,我们知道要找出一个概率分布了,以使我们可以应用极大似然函数.这里我们只有我们希望损失函数应该无限接近0,那么我们就假设损失函数服从u=0的正态(高斯)分布;
ε(y|x,Θ)∼N(0,σ2) - 关于损失函数的概率密度
f(εi(yi|xi:Θ))=12π√σe−εi(yi|xi:Θ)22σ2 (公式1.1) - 将公式(1.0)的
ε(y|x,Θ) 带入公式(1.1)中得到:f(yi|xi:Θ)=12π√σe−(yi−hΘ(xi))22σ2 (公式1.2) - 好了,到这里,我们得到了概率分布模型和概率密度方程,接下来我们来求极大似然估计,想求这个得先有似然函数,那我们就来构建个似然函数,该怎么构建呢?我们来回忆下似然函数该是什么样的,似然函数就是当所有样本都发生时候关于参数
Θ 的函数:L(Θ)=∏Ni=1f(yi|xi:Θ)=∏Ni=112π√σe−(yi−hΘ(xi))22σ2 (公式1.3) - 我们有了似然函数,想求极大似然,就要进行求导数,然后当导数等于0时的
Θ 就是我们要的参数了吧。可是,这么多项乘机求导怎么求?没办法求啊,如果要是求和我们能够很轻易的求解吧,那怎么把惩罚变成加法呢?对数Log!我们对似然函数左右同时求对数,是不是就解决了问题呢?求对数化简后得:ι(Θ)=lnL(Θ)=∑Ni=1ln12π√σ−1σ2∑Ni=112(yi−hΘ(xi))2 (公式1.4) - 从上面的式子中可以得到下面的公式取最小成为了我们新的目标:
J(Θ)=∑Ni=112(yi−hΘ(xi))2
这就是我们熟悉的最小二乘法,其实前面的12 不是必须加上的,但是还是加上了是因为,我们下一步就要求导数了,这种形式将让求导方便很多。 - 好了,现在我们有
J(Θ) 这个函数,还记得我在上一篇文章中讲到的逻辑吧,接下来我们可以通过递归或者解析的方式来求解Θ - 解析解
Θ=(XTX)−1XTY - 递归解
- 批量梯度下降
- 批量梯度下降
- 随机梯度下降
3.优劣势及弥补方案
https://sciencing.com/disadvantages-linear-regression-8562780.html
https://elitedatascience.com/machine-learning-algorithms
3.1优势
3.2劣势
-
线性回归是有限的线性关系
就其本质而言,线性回归仅着眼于因变量和自变量之间的线性关系。也就是说,假设它们之间的直线关系。有时,这是不正确。例如,收入和年龄之间的关系是弯曲的,即收入往往在成年的早期部分上涨,扁平化在成年以后和下降的人退休之后。你可以说,如果这是看关系的图形表示的一个问题。 线性回归只看依赖变量的均值
线性回归考察因变量的平均值和自变量之间的关系。 例如,如果你看看婴儿出生体重和年龄等母性特征之间的关系,线性回归就会看到不同年龄的母亲所生的婴儿的平均体重。 然而,有时你需要考虑因变量的极端情况,例如,婴儿在体重不足时处于危险之中,所以在这个例子中,你会想看看极端情况。
正如平均值不是一个单一变量的完整描述,线性回归并不是对变量之间关系的完整描述。 您可以使用分位数回归来处理这个问题。线性回归对异常值敏感
离群值是令人惊讶的数据。 离群值可以是单变量(基于一个变量)或多变量。 如果你正在看年龄和收入,单变量的离群值将是118岁的人,或去年赚了1200万的人。 一个多变量异常者将是一个18岁的人,他赚了20万美元。 在这种情况下,年龄和收入都不是非常极端,但是十八岁的人很少赚这么多钱。
异常值可能对回归产生巨大的影响。 您可以通过从统计软件请求影响统计来处理这个问题。数据必须是独立的
线性回归假定数据是独立的。 这意味着一个主题(比如一个人)的分数与另一个主题的分数没有任何关系。 这往往是,但并非总是明智的。 两个没有意义的常见情况是空间和时间聚集。
空间聚类的一个典型例子是学生考试分数,当你有来自不同班级,学校,学校和学区的学生时。 同班同学在很多方面倾向于相似,即他们经常来自同一个社区,他们有相同的老师等,因此他们不是独立的。
时间聚类的例子是任何研究,你多次测量相同的主题。 例如,在饮食和体重的研究中,您可能会多次测量每个人。 这些数据并不是独立的,因为一个人的重量有时与他或她在其他场合的重量有关。 处理这个问题的一个方法是使用多级模型。
3.3弥补方案
二.岭(Ridge)/套索(Lasso)回归
岭回归和套索回归都是在线性回归的基础上推广得到的。那为什么要推广得到岭回归呢?因为线性回归存在这致命的缺陷,主要有两种原因
①高阶线性回归中,参数
②线性回归再求解析式
③为了解决过拟合的问题,在
套索(Lasso)回归:惩罚项为L1泛型:
λ∑Kn=1|Θ| J(Θ)=∑Ni=112(yi−hΘ(xi))2+λ∑Kn=1|Θ| 岭(Ridge)回归:惩罚项为L2泛型:
λ∑Kn=1(Θ)2 J(Θ)=∑Ni=112(yi−hΘ(xi))2+λ∑Kn=1(Θ)2
三.逻辑回归
1.概述
逻辑回归原理类似连续性的回归算法,但往往处理的式分类算法。其与强分类器支撑向量机(SVM)有着比较密切的关系!下一篇文章我们从SVM走向分类算法。
逻辑回归分为二分类,三分类等多分类。这里我们以二分类为讨论对象
2.公式推导
二分类逻辑回归的决策函数是以Sigmoid函数为基础的,这里要明白,逻辑回归的Sigmoid函数只是Sigmoid函数的一种而已,两者是包含与被包含的关系不是等价哦!
-
构建逻辑回归的决策函数(分类问题的决策函数其实就是通过计算该目标数据在每个类别的概率高,高的那个就是预测的分类,决策函数中以
Θ 为参数,在给定X是Y的条件概率作为分类预测的已经)- 其中
- 其中
- 对上面的决策函数进行变换:
- 现在我们知道了我们的决策函数,我们要做什么?我们要得到一个可以预测分类的决策函数对吧?那么只要把参数
Θ 求出来就可以,怎么求?极大似然估计,那咱们先求似然函数如下:- 似然函数我们有了,怎么求解似然函数呢?我们有两种方式,一种是解析式方式,一种是递归方式。这里我们没办法解析,只能使用递归,其实机器学习中的“学习”的过程,其实就是“递归”的过程,搜易求解参数最先想到的就应该是“递归求解”递归解:
- 似然函数我们有了,怎么求解似然函数呢?我们有两种方式,一种是解析式方式,一种是递归方式。这里我们没办法解析,只能使用递归,其实机器学习中的“学习”的过程,其实就是“递归”的过程,搜易求解参数最先想到的就应该是“递归求解”递归解:
3.逻辑回归的损失函数
之前我很清楚回归中的损失函数,因为也比较好理解,就是真实值和预测值的差值的函数,由损失函数衍生出风险函数,风险函数就是损失函数的期望,因为风险函数不知道联合分布概率,我们只能根据大数定律和中心极限定理计算数据的平均值,引出了经验风险函数,因为经验风险函数往往会过拟合,我们增加了惩罚项(L1,L2正则项),经验风险函数+惩罚项=结构函数。
上面我们又顺道梳理了下损失函数相关的概念,正如上面说的回归损失函数很好理解,可是后来我开始想,分类损失函数代表什么意义呢?两类损失函数有什么关系和区别呢?
有一次我读了一篇文章对我产生了很大的启发,引出我总结了如下结论:
分类损失函数:
我们想要的分类结果和分类器算出来的概率的差别
怎么理解呢?
我们做分类器想要什么结果?应该就是希望我们的分类器可以和真实的结果一致吧,而分类中真实的分类结果肯定是确定的,怎么个确定法呢?比如我手里拿着个水果的苹果,给定个“苹果”作为输入,真实分类结果一定是“100%的概率是水果”,但是给到分类器她给我们的结果可能是”75%的概率是水果”和”25%的概率是手机”,这时候的就是100%-75%=25%的损失。而不是对分类结果损失计算。有人可能会想,分类器我只要他给定结果是对的就可以了被,至于过程我们没必要去关注他的损失。之前我就是这种想法,可是这就是像治病一样,损失就是分类的器的病,我们治病是不是不能治标不治本啊?否则早晚会病情恶化!所以我们关注的是分类预测概率与我们想要的分类的概率差距。
逻辑回归的损失函数是:
等等,这个怎么理解?也没有上面说的差距的东西表现出来啊?其实我理解的本质上上形式不是这样的。
我们来梳理下逻辑,对于逻辑回归我们的参数是怎么求的?是求极大似然估计对吧?现在假设
当我们预测对了的情况下,
那么我们的那个极大似然函数就等于0,好了,然后0减去后面我们预测的概率,是不是就是上面给的损失函数的形式呢?当我们的预测值不断的接近真实概率的时候,那么这个距离函数就趋近于0了,这不就是损失函数要表达的状态么?这是我的理解,仅供参考!
4.逻辑回归优劣势
参考:http://classroom.synonym.com/disadvantages-logistic-regression-8574447.html
识别独立变量
Logistic回归试图预测基于一组独立变量的结果,但如果研究人员包括了错误的自变量,该模型将几乎没有任何预测价值。例如,如果高校招生决策更多地依赖于推荐信不是考试成绩,研究人员不包括在他们的数据集的推荐信措施,那么逻辑模型将不提供有用的或准确的预测。这意味着,逻辑回归是不是一个有用的工具,除非研究人员已经确定了所有相关的独立变量。只能输出离散结果
Logistic回归非常适用于在特定大学的预测分类结果像接纳或拒绝。它还可以预测的结果多项,如录取,拒绝或等待名单。然而,回归不能预测连续结果。例如,回归不能被用来确定流感患者的发烧怎么会高上涨,因为测量的秤 - 温度 - 是连续的。研究人员可能试图温度为不同的类别,如“高烧”或测量转换“低烧”,但这样做会牺牲数据集的精度。这对于连续尺度工作的研究人员一个显著的缺点。独立观察所需
Logistic回归要求每个数据点独立于其他所有数据点。如果观测彼此相关,那么模型将倾向于增持这些意见的意义。这是一个重大的缺点,因为大量的科学和社会科学的研究依赖于研究技术涉及同一个人的多次观测。例如,药物试验通常使用一对匹配的设计,比较两个相似的个体,一个服用药物和其他服用安慰剂。Logistic回归是不适合采用这种设计的研究适当的技术。过拟合模型
Logistic回归试图预测基于一组独立变量的结果,但分对数模型很容易受到过度自信。也就是说,该机型可出现有更多的预测能力比他们实际做的抽样偏差的结果。在高校招生例如,申请人的随机样本可能导致Logit模型分析预测,所有的学生至少3.7 GPA和SAT分数在90百分位数将永远被录取。然而在现实中,学院可能会拒绝这些申请人的一些小的比例。因此,逻辑回归将是“过度拟合”,这意味着它夸大了其预测的准确性。