1,回归(Linear Regression)

回归其实就是对已知公式的未知参数进行估计。可以简单的理解为:在给定训练样本点和已知的公式后,对于一个或多个未知参数,机器会自动枚举参数的所有可能取值(对于多个参数要枚举它们的不同组合),直到找到那个最符合样本点分布的参数(或参数组合)。当然,实际运算有一些优化算法,肯定不会去枚举的。注意,回归的前提是公式已知,否则回归无法进行。回归中的公式基本都是数据分析人员通过看大量数据后猜测的。根据这些公式的不同,回归分为线性回归和非线性回归。线性回归中公式都是“一次”的(一元一次方程或多元一次方程),而非线性则可以有各种形式(N元N次方程,log方程等等)。当然如果我们的公式假设是错的,任何回归都得不到好结果。

2,线性回归

线性回归是回归模型,利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合(自变量都是一次方)。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。通过合理的回归模型,我们可以得到接近于真实值的预测值,然而很多情况下,我们需要回归产生一个类似概率值的0~1之间的数值。

于是引入了Logistic方程,来做归一化。这里再次说明,该数值并不是数学中定义的概率值。那么既然得到的并不是概率值,为什么我们还要费这个劲把数值归一化为0~1之间呢?归一化的好处在于数值具备可比性和收敛的边界,归一化能够保证此次得到的结果不会因为边界 太大或太小 导致覆盖其他feature 或被其他feature覆盖。这是用logistic回归而非直接线性回归的主要原因。

举个例子:比如你不仅仅是关心鞋子的销量,而是要对鞋子卖出的可能、当地治安情况、当地运输成本等多个要素之间加权求和,用综合的加和结果决策是否在此地开鞋店时,假设如果鞋子销量最坏时为100,但最好时能卖无限多个,而当地治安状况是用0~1之间的数值表述的,如果两者直接求和治安状况就完全被忽略了。

3,逻辑回归
逻辑回归(Logistic Regression) 就是一个被logistic方程归一化后的线性回归,之所以用logistic而不用其它,是因为这种归一化的方法往往比较合理,能够打压过大和过小的结果(往往是噪音),以保证主流的结果不至于被忽视。
logistic 回归和线性回归的主要区别是:线性回归是根据样本X各个维度的Xi的线性叠加(线性叠加的权重系数wi就是模型的参数)来得到预测值的Y,然后最小化所有的样本预测值Y与真实值y’的误差来求得模型参数。我们看到这里的模型的值Y是样本X各个维度的Xi的线性叠加,是线性的。
线性回归、逻辑回归及SVM
然后再来看看我们这里的logistic 回归模型,模型公式是:
线性回归、逻辑回归及SVM
逻辑回归采用似然函数,而不是平方损失函数,主要是因为交叉熵损失函数的好处是可以克服方差代价函数更新权重过慢的问题(针对**函数是sigmoid的情况)。
线性回归、逻辑回归及SVM
逻辑回归使用sigmoid函数的原因有:
(1)Sigmoid 函数自身的性质,因为这是一个最简单的,可导的,0-1阶跃函数;sigmoid 函数连续,单调递增;关于(0,0.5) 中心对称;对sigmoid函数求导简单 。
(2)逻辑回归函数的定义:
线性回归、逻辑回归及SVM
逻辑回归可用于概率预测,也可用于分类。并不是所有的机器学习方法都可以做可能性概率预测(比如SVM就不行,它只能得到1或者-1)。可能性预测的好处是结果有可比性:比如我们得到不同广告被点击的可能性后,就可以展现点击可能性最大的N个。这样以来,哪怕得到的可能性都很高,或者可能性都很低,我们都能取最优的topN。当用于分类问题时,仅需要设定一个阈值即可,可能性高于阈值是一类,低于阈值是另一类。

逻辑回归仅能用于线性问题,只有在feature和target是线性关系时,才能用LogisticRegression(不像SVM那样可以应对非线性问题)。这有两点指导意义,一方面当预先知道模型非线性时,果断不使用LogisticRegression; 另一方面,在使用LogisticRegression时注意选择和target呈线性关系的feature。

各feature之间不需要满足条件独立假设,但各个feature的贡献是独立计算的。逻辑回归不像朴素贝叶斯一样需要满足条件独立假设(因为它没有求后验概率)。但每个feature的贡献是独立计算的,即LR是不会自动帮你combine不同的features产生新feature的。

参考链接:https://www.jianshu.com/p/f15c87c6810b

4,逻辑回归和SVM的异同点

4.1 相同点

第一,LR和SVM都是分类算法。
第二,如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
第三,LR和SVM都是监督学习算法。
第四,LR和SVM都是判别模型。

判别模型会生成一个表示P(Y|X)的判别函数(或预测模型),而生成模型先计算联合概率p(Y,X)然后通过贝叶斯公式转化为条件概率。简单来说,在计算判别模型时,不会计算联合概率,而在计算生成模型时,必须先计算联合概率。

4.2 不同点:

第一,本质上是其loss function不同
逻辑回归的损失函数是交叉熵函数:
线性回归、逻辑回归及SVM
SVM的损失函数:
线性回归、逻辑回归及SVM
逻辑回归方法基于概率理论,假设样本为1的概率可以用sigmoid函数来表示,然后通过极大似然估计的方法估计出参数的值;支持向量机基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面;
第二,支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。
第三,在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
这个问题理解起来非常简单。分类模型的结果就是计算决策面,模型训练的过程就是决策面的计算过程。通过上面的第二点不同点可以了解,在计算决策面时,SVM算法里只有少数几个代表支持向量的样本参与了计算,也就是只有少数几个样本需要参与核计算(即kernal machine解的系数是稀疏的)。非线性SVM可以理解为通过核函数将非线性特征映射为线性特征,然后再求线性分界面(只是方便理解,实际上并不是线性)。实际运算时直接在低维空间中直接计算,而不是先映射到高维空间再进行内积运算
然而,LR算法里,每个样本点都必须参与决策面的计算过程,也就是说,假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。所以,在具体应用时,LR很少运用核函数机制。
第四,SVM的损失函数就自带正则。
参考原文:https://blog.csdn.net/ddydavie/article/details/82668141

相关文章: