线性回归定义:在上一个题目中,也和回归有关,但上一节更侧重于梯度的概念。本节更多地关注回归本身以及偏差和方差的概念。回归最简单的定义就是给定一个点集D,用一个函数去拟合这个点集,让这个点集和拟合函数的误差最小。如上图所示,给定一个点集(x,y),需要用一个函数来拟合点集。蓝色的点是点集中的点,红色的曲线是函数的曲线。***图片是最简单的模型,对应的函数是y=f(x)=ax+b,是一个线性函数。第二张图是二次曲线,对应的函数是y=f(x)=ax^2+b。第三张图不知道是什么功能,自己瞎画的。第四张图可以认为是一条N度曲线,N=M-1,M是点集中点的个数,有一个定理,对于给定的M个点,我们可以用一个M-1的函数去***通过这个点集。真正的线性回归不仅会考虑曲线与给定点集的最佳拟合,还会考虑最简单的模型。我们将在本章后面的偏差和方差平衡中深入讨论这个话题。另外一个话题也可以参考我之前的文章:贝叶斯、概率分布和机器学习,里面也讨论了模型复杂度的问题。线性回归(linearregression)不是指一个线性函数,即(为了方便,我以后不会在向量中加箭头)x0,x1...代表一个点的不同维度,这样上一节说到,房子的价格是由面积、房间数、房子的朝向等因素决定的。而是使用一个广义线性函数:wj是一个系数,w是这个系数组成的向量,影响了Φj(x)在回归函数中不同维度的影响。例如,对于房子的价格,房间方向w必须小于房间面积w。Φ(x)可以用不同的函数代替,Φ(x)=x不是必须的。我们认为这样的模型是广义线性模型。Leastsquaresmethodand***likelihood:这个话题这里有很详细的讨论,这里主要说一下对这个问题的理解。最小二乘法是线性回归中最简单的方法。它的推导有一个假设,假设回归函数的估计值与真实值之间的误差服从高斯分布。这个公式表示如下:,y(x,w)是给定w系数向量的回归函数的估计值,t是真实值,ε代表误差。那么我们可以推导出下面的公式:这是一个简单的条件概率表达式,表示在给定x、w、β的条件下,得到真值t的概率。由于ε服从高斯分布,所以估计值与真实值之间的概率也服从高斯分布,如下图:贝叶斯、概率分布和机器学习这篇文章中关于分布的话题有很多讨论影响结果,所以可以回头看,因为最小二乘法有这样一个假设,这会导致如果我们给出的估计函数y(x,w)和真实值t不服从高斯分布,甚至服从分布如果差距很大,那么计算出的模型一定是不正确的,当给定一个新的点x',想求一个估计值y',它可能与真实值t'相差很远。概率分布是个又可爱又可恨的东西。当我们能够准确预测一些数据的分布时,我们就可以做出一个非常准确的模型来预测它,但是在大多数真实的应用场景中,数据的分布是不可知的,我们很难使用一个分布,甚至多个分布的混合来表示数据的真实分布。比如给定一亿个网页,我们希望用一个已有的分布(比如混合高斯分布)来匹配里面的词频分布,这是不可能的。在这种情况下,我们只能得到单词的出现概率,比如p(的)的概率为0.5,即一个网页有1/2的概率出现“的”。如果一个算法对里面的分布做了一定的假设,那么这个算法在实际应用中可能表现不佳。最小二乘法对于类似的复杂问题非常无能为力。偏差和方差的权衡:偏差和方差是统计概念。刚进公司的时候,看到大家嘴里随时蹦出这两个字,心里就觉得糟透了。首先必须明确,方差是多个模型之间的比较,而不是一个模型。对于单个模型,例如:这样一个具有特定系数的估计函数,不能说是f(x)的方差是多少。偏差可以在单个数据集中,也可以在多个数据集中,具体取决于具体定义。方差和偏差一般来说,从同一个数据集中,通过科学的抽样方法得到若干个不同的子数据集,利用这些子数据集得到的模型可以说说它们的方差和偏差。方差和偏差的变化一般与模型的复杂度成正比,就像本文开头的四张小图一样,当我们一味追求模型的精确匹配时,可能会导致同一个模型训练出不同的模型一组数据,它们之间的差异是非常大的。这称为方差,但它们的偏差很小,如下图所示:上图中的蓝色点和绿色点代表在一个数据集中采样的不同子数据集。我们有两条N次曲线来拟合这些点集,可以得到两条曲线(蓝色和深绿色),它们的差异非常大,但它们本来是由同一个数据集生成的,这是由模型的复杂性。模型越复杂,偏差越小,模型越简单,偏差越大。方差和偏差按以下方式变化:当方差和偏差相加达到最佳点时,它就是我们最好的模型复杂度。举个很通俗的例子,现在我们国家一味追求GDP,而GDP就像是模型的偏差。国家希望现有GDP与目标GDP的差距越小越好,但是使用了很多复杂的方法,比如说到倒卖土地、强制拆迁等,这增加了模型的复杂度,并且还会增加偏差(居民收入分配),越穷越穷(被赶出城的和城里买不起房的),富越富(转卖土地的和买不起房的)谁卖房子)。其实原来的模型不需要这么复杂。能够平衡居民收入分配和国家发展的模式才是最好的模式。***还是用数学的语言来描述偏差和方差:E(L)是损失函数,h(x)代表真实值的平均值,***部分与y有关(估计functionofthemodel),这部分是由于我们选择不同的估计函数(模型)造成的差异,而第二部分是独立于y的,可以认为是模型的固有噪声。对于上式的第一部分,我们可以将其转化为如下形式:这部分是PRML1.5.5中推导的,前半部分表示偏差,后半部分表示方差,我们可以得出:损失函数=偏差^2+方差+固有噪声。下图也是来自PRML:这是一个曲线拟合问题。对具有相同分布的不同数据集进行了多次曲线拟合。左边代表方差,右边代表偏差,绿色为真值函数。lnlambda表示模型的复杂度。值越小,模型的复杂度越高。第一行,当每个人的复杂度都很低(每个人都很穷)的时候,方差很小。但是偏差也很小(国内也很穷),但是上图我们可以得到,当每个人的复杂度很高的时候,不同的功能差别很大(富人和穷人的区别)差大),但偏差小(国富)。原文链接:http://www.cnblogs.com/LeftNotEasy/archive/2010/12/19/mathmatic_in_machine_learning_2_regression_and_bias_variance_trade_off.html
