澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

最小二乘法,经典最小二乘法

2019-08-17 作者:www.8455.com   |   浏览(113)

回归 Regression ,可以理解为倒推,由结果推测出原因。

澳门新萄京官方网站 1

转载自:

我们以最简单的一元线性模型来解释最小二乘法。什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。对于二维空间线性是一条直线;对于三维空间线性是一个平面,对于多维空间线性是一个超平面...
对于一元线性回归模型, 假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。 选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小。有以下三个标准可以选择:
(1)用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题。 (2)用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。 (3)最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。
  最常用的是普通最小二乘法( Ordinary Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。(Q为残差平方和)- 即采用平方损失函数。
 样本回归模型:

 

1.线性回归

  • 回归,统计学术语,表示变量之间的某种数量依存关系,并由此引出回归方程,回归系数。
  • 线性回归(Linear Regression),数理统计中回归分析,用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
  • 线性回归模型

    澳门新萄京官方网站 2

ε表示误差项,也叫随机干扰项,即真实值和预测值之间的差异。ε服从均值为0的正态分布,其中只有一个自变量的情况称为澳门新萄京官方网站,一元线性回归,多个自变量的情况叫多元线性回归

  • 对模型设定的假设:
    回归模型是正确设定的,即模型选择了正确的变量,且选择了正确的函数形式。
  • 对解释变量的假设:
    解释变量x是确定性变量,不是随机性变量,在随机抽样中取固定值。
  • 对误差项ε的假设:
    误差项ε是一个期望为0,且相互独立的高斯分布。

参考: 

澳门新萄京官方网站 3

线性回归 是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,表达形式为:

2.损失函数(Cost Function)

  • 举城市房屋价格为例,假设有一个房屋销售的数据如下:
    面积 售价
    123 250
    150 320
    87 160
    102 220
![](https://upload-images.jianshu.io/upload_images/8203143-bf6e8b60560ba15f.png)

房屋面积和售价图
  • 如果来了一个新的面积,假设在销售价钱的记录中没有的,我们怎么办呢?
    我们可以用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:
![](https://upload-images.jianshu.io/upload_images/8203143-292f7509db6d2d68.png)
  • 绿色的点就是我们想要预测的点。
    首先给出一些概念和常用的符号,在不同的机器学习书籍中可能有一定的差别。

房屋销售记录表 - 训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为x
房屋销售价钱 - 输出数据,一般称为y
拟合的函数(或者称为假设或者模型),一般写做 y = h(x)
训练数据的条目数(#training set), 一条训练数据是由一对输入数据和输出数据组成的
输入数据的维度(特征的个数,#features),n

  • 用X1,X2..Xn 去描述feature里面的分量,比如x1=房间的面积,x2=房间的朝向,等等,我们可以做出一个估计函数:
![](https://upload-images.jianshu.io/upload_images/8203143-edca18b32cd50d61.png)
  • 向量的方式来表示:
![](https://upload-images.jianshu.io/upload_images/8203143-3d4d02585d696e9a.png)
  • 对于回归问题,常用的用于衡量最优解的代价函数为平方误差。
![](https://upload-images.jianshu.io/upload_images/8203143-2a79fa663affda93.png)

平方误差的思想就是将实际样本数据值与我们拟合出的线做对应差值,即计算差距
  • 程序需要一个机制去评估我们θ是否比较好,所以说需要对我们做出的h函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function)
![](https://upload-images.jianshu.io/upload_images/8203143-107f798b9c49e04a.png)
  • 要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近。前面乘上的1/2是为了在求导的时候,消去系数。
  • 调整θ以使得J(θ)取得最小值有很多方法:梯度下降法、最小二乘法。

一.背景

其中ei
为样本(Xi,
Yi
)的误差
平方损失函数:

  y= ax b e 

3.梯度下降

  • 梯度下降法则是一种最优化算法,它是用迭代的方法求解目标函数得到最优解,是在cost function(成本函数)的基础上,利用梯度迭代求出局部最优解。
  • 梯度下降法是按下面的流程进行的:

1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
2)改变θ的值,使得J(θ)按梯度下降的方向进行减少,算法的结束将是在θ下降到无法继续下降为止。
3)当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点

  • 用一个例子描述一下梯度减少的过程:

    1)对于J(θ)求偏导J

    澳门新萄京官方网站 4

2)更新θi,θi会向着梯度最小的方向进行减少,α表示步长(学习率),也就是每次按照梯度减少的方向变化多少  

![](https://upload-images.jianshu.io/upload_images/8203143-661b5208b54e1190.png)



3)一个很重要的地方值得注意的是,梯度是有方向的,对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。



![](https://upload-images.jianshu.io/upload_images/8203143-0ba0c5aaacfa497a.png)

简洁表示

   5月9号到北大去听hulu的讲座《推荐系统和计算广告在视频行业应用》,想到能见到传说中的项亮大神,特地拿了本《推荐系统实践》求签名。讲座开始,主讲人先问了下哪些同学有机器学习的背景,我恬不知耻的毅然举手,真是惭愧。后来主讲人在讲座中提到了最小二乘法,说这个是机器学习最基础的算法。神马,最基础,我咋不知道呢! 看来以后还是要对自己有清晰认识。

澳门新萄京官方网站 5

e为误差服从均值为0的正态分布。

4.最小二乘法

  • 线性回归过程主要解决的就是如何通过样本来获取最佳的拟合线。最常用的方法便是最小二乘法,它是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。
  • 推导过程:
![](https://upload-images.jianshu.io/upload_images/8203143-5eec6dd7b29aa120.png)



![](https://upload-images.jianshu.io/upload_images/8203143-bffda108b28e31a5.png)

   回来赶紧上百度,搜了下什么是最小二乘法。

则通过Q最小确定这条直线,即确定

澳门新萄京官方网站 6

5.数据归一化

  • 目的是使数据都缩放到一个范围内,便于使用梯度下降算法
![](https://upload-images.jianshu.io/upload_images/8203143-c4c2f5af157473fd.png)
  • 数据归一化有两种:
    离差归一化:
![](https://upload-images.jianshu.io/upload_images/8203143-63d29aa0547f6703.png)

Si取最大值-最小值



Z-score归一化:



![](https://upload-images.jianshu.io/upload_images/8203143-46206668693c6820.png)

Si取标准差

   先看下百度百科的介绍:最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

澳门新萄京官方网站 7

澳门新萄京官方网站 8 

6. 模型评估

  • 得到模型参数之后,我们如何评价模型在现实中的表现呢?因为回归直线只是一个近似拟合,有很多点没有落在直线上,那我们如何判定,回归直线的拟合程度?

R^2 (Coefficient of Determination)
SST(Sum of Squares for Total)
SSR(Sum of Squares for Regression)
SSE(Sum of Squares for Error)
SST=SSR SSE

  • 一般常用的判定指标是R^2 (coefficient of determination),又叫判定系数、拟合优度,确定系数,或者决定系数。一元线性回归中的R^2是皮尔逊积矩相关系数(Pearson product moment correlation coefficient或Pearson's r)的平方。
  • SST(Sum of Squares for Total):总偏差平方和是每个实际值y和其总体平均值之差的平方和,描述的是总体的波动情况。例如在上面的实例中,燃油效率是随着重量和其他特征而上下波动的。
  • SSR(Sum of Squares for Regression):回归平方和是每个y对应的预测值f(x)和y的总体平均值之差的平方和,反映了y的总偏差中,由于x和y的线性关系引起的y的变化部分,可以由回归直线来解释。例如上面实例中,重量对燃油效率的影响,就是通过回归直线来解释的。
  • SSE(Sum of Squares for Error):残差平方和描述的是,除了x对y的线性影响之外的其他因素对y变化的作用,是不能由回归直线来解释的。例如上面实例中,我们只是假设重量对燃油效率有影响,但实际上马力、加速度等特征和燃油效率之间也呈现明显的相关性,对燃油效率也有影响,而这些特征对燃油效率的影响,是不能通过我们拟合的“重量和燃油效率的线性回归直线”来解释的。
![](https://upload-images.jianshu.io/upload_images/8203143-1006dbd1c0432bea.png)



![](https://upload-images.jianshu.io/upload_images/8203143-e1a5406b3a85dba3.png)



![](https://upload-images.jianshu.io/upload_images/8203143-54325ccb07957ad4.png)



![](https://upload-images.jianshu.io/upload_images/8203143-c9b5b3c83ff1925f.png)



![](https://upload-images.jianshu.io/upload_images/8203143-26d8518d0fca5770.png)

一元线性回归模型评估

   通过这段描述可以看出来,最小二乘法也是一种优化方法,求得目标函数的最优值。并且也可以用于曲线拟合,来解决回归问题。难怪《统计学习方法》中提到,回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以著名的最小二乘法来解决。看来最小二乘法果然是机器学习领域做有名和有效的算法之一。

,以

通过已有的大量数据,x和y的值,计算得到表达式y=ax b e的关系,表达这种关系。

7.参考文献

  • [1].http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html
  • [2].http://www.jianshu.com/p/40e251127025
  • [3].http://www.jianshu.com/p/82c7b3ceff66
  • [4].http://www.jianshu.com/p/c02291ab4c3b

作者:Jasonhaven.D
链接:http://www.jianshu.com/u/ed031e432b82
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

澳门新萄京官方网站 9

然后通过x值,可推断出y的值。

二. 最小二乘法

为变量,把它们看作是Q的函数,就变成了一个求极值的问题,可以通过求导数得到。求Q对两个待估参数的偏导数:

澳门新萄京官方网站 10

   我们以最简单的一元线性模型来解释最小二乘法。什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。对于二维空间线性是一条直线;对于三维空间线性是一个平面,对于多维空间线性是一个超平面...

澳门新萄京官方网站 11

 

   对于一元线性回归模型, 假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。 选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小。有以下三个标准可以选择:

根据数学知识我们知道,函数的极值点为偏导为0的点。
解得:

拟合:把平面上一系列的点用一条光滑的曲线链接起来的过程;

        (1)用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题。
        (2)用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。
        (3)最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。

澳门新萄京官方网站 12

利用最小二乘法来进行曲线拟合,残差平方和,如下图;

  最常用的是普通最小二乘法( Ordinary  Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。(Q为残差平方和)- 即采用平方损失函数。

这就是最小二乘法的解法,就是求得平方损失函数的极值点。

澳门新萄京官方网站 13

  样本回归模型:

三. C 实现代码

 

                  澳门新萄京官方网站 14                   其中ei为样本(Xi, Yi)的误差

澳门新萄京官方网站 15

最小二乘法

   平方损失函数:

我们以最简单的一元线性模型来解释最小二乘法。什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。对于二维空间线性是一条直线;对于三维空间线性是一个平面,对于多维空间线性是一个超平面...

                      澳门新萄京官方网站 16

复制代码

对于一元线性回归模型, 假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。 选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小。有以下三个标准可以选择:

   则通过Q最小确定这条直线,即确定澳门新萄京官方网站 17,以澳门新萄京官方网站 18为变量,把它们看作是Q的函数,就变成了一个求极值的问题,可以通过求导数得到。求Q对两个待估参数的偏导数:

1 /* 2 最小二乘法C 实现 3 参数1为输入文件 4 输入 : x 5 输出: 预测的y 6 / 7 #include<iostream> 8 #include<fstream> 9 #include<vector>10 using namespace std;11 12 class LeastSquare{13 double a, b;14 public:15 LeastSquare(const vector<double>& x, const vector<double>& y)16 {17 double t1=0, t2=0, t3=0, t4=0;18 for(int i=0; i<x.size(); i)19 {20 t1 = x[i]x[i];21 t2 = x[i];22 t3 = x[i]y[i];23 t4 = y[i];24 }25 a = (t3x.size() - t2t4) / (t1x.size() - t2t2); // 求得β1 26 b = (t1t4 - t2t3) / (t1x.size() - t2t2); // 求得β227 }28 29 double getY(const double x) const30 {31 return ax b;32 }33 34 void print() const35 {36 cout<<"y = "<<a<<"x "<<b<<"n";37 }38 39 };40 41 int main(int argc, char *argv[])42 {43 if(argc != 2)44 {45 cout<<"Usage: DataFile.txt"<<endl;46 return -1;47 }48 else49 {50 vector<double> x;51 ifstream in(argv[1]);52 for(double d; in>>d; )53 x.push_back(d);54 int sz = x.size();55 vector<double> y(x.begin() sz/2, x.end());56 x.resize(sz/2);57 LeastSquare ls(x, y);58 ls.print();59 60 cout<<"Input x:n";61 double x0;62 while(cin>>x0)63 {64 cout<<"y = "<<ls.getY(x0)<<endl;65 cout<<"Input x:n";66 }67 }68 }

  (1)用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题。
  (2)用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。
  (3)最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。

                   澳门新萄京官方网站 19    

澳门新萄京官方网站 20

  最常用的是普通最小二乘法( Ordinary Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。(Q为残差平方和)- 即采用平方损失函数。

    根据数学知识我们知道,函数的极值点为偏导为0的点。

复制代码

 

    解得:

四. 最小二乘法与梯度下降法
最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值,那它们有什么区别呢。
相同
  1.本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependent variables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。  2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方),估算值与实际值的总平方差的公式为:

参考:

                   澳门新萄京官方网站 21

澳门新萄京官方网站 22-y_{i})^{2} } )

 

 

Delta =frac{1}{2} sum_{i=1}^{m}{(f_{beta }(bar{x_{i}} )-y_{i})^{2} }

TSS: Total Sum of Squares 总离差平方和/总平方和

这就是最小二乘法的解法,就是求得平方损失函数的极值点。

其中

&amp;lt;img src="" data-rawwidth="297" data-rawheight="112" class="content_image" width="297"&amp;gt;

最小二乘法,经典最小二乘法。 

澳门新萄京官方网站 23

澳门新萄京官方网站 24
ESS: Explained Sum of Squares 回归平方和/解释平方和

 1 /*
 2 最小二乘法C  实现
 3 参数1为输入文件
 4 输入 : x
 5 输出: 预测的y  
 6 */
 7 #include<iostream>
 8 #include<fstream>
 9 #include<vector>
10 using namespace std;
11 
12 class LeastSquare{
13     double a, b;
14 public:
15     LeastSquare(const vector<double>& x, const vector<double>& y)
16     {
17         double t1=0, t2=0, t3=0, t4=0;
18         for(int i=0; i<x.size();   i)
19         {
20             t1  = x[i]*x[i];
21             t2  = x[i];
22             t3  = x[i]*y[i];
23             t4  = y[i];
24         }
25         a = (t3*x.size() - t2*t4) / (t1*x.size() - t2*t2);  // 求得β1 
26         b = (t1*t4 - t2*t3) / (t1*x.size() - t2*t2);        // 求得β2
27     }
28 
29     double getY(const double x) const
30     {
31         return a*x   b;
32     }
33 
34     void print() const
35     {
36         cout<<"y = "<<a<<"x   "<<b<<"n";
37     }
38 
39 };
40 
41 int main(int argc, char *argv[])
42 {
43     if(argc != 2)
44     {
45         cout<<"Usage: DataFile.txt"<<endl;
46         return -1;
47     }
48     else
49     {
50         vector<double> x;
51         ifstream in(argv[1]);
52         for(double d; in>>d; )
53             x.push_back(d);
54         int sz = x.size();
55         vector<double> y(x.begin() sz/2, x.end());
56         x.resize(sz/2);
57         LeastSquare ls(x, y);
58         ls.print();
59         
60         cout<<"Input x:n";
61         double x0;
62         while(cin>>x0)
63         {
64             cout<<"y = "<<ls.getY(x0)<<endl;
65             cout<<"Input x:n";
66         }
67     }
68 }

bar{x_{i} }

&amp;lt;img src="" data-rawwidth="313" data-rawheight="117" class="content_image" width="313"&amp;gt;

 

为第i组数据的independent variable,

澳门新萄京官方网站 25

 

澳门新萄京官方网站 26

RSS: Residual Sum of Squares 残差平方和

四. 最小二乘法与梯度下降法

y_{i}

&amp;lt;img src="" data-rawwidth="305" data-rawheight="110" class="content_image" width="305"&amp;gt;

   最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值,那它们有什么区别呢。

为第i组数据的dependent variable,

澳门新萄京官方网站 27

   相同

澳门新萄京官方网站 28

TSS=RSS ESS

  1.本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependent variables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。
  2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方),估算值与实际值的总平方差的公式为:

beta

 

                                                                     澳门新萄京官方网站 29

为系数向量。
不同  1.实现方法和结果不同:最小二乘法是直接对

 

其中澳门新萄京官方网站 30为第i组数据的independent variable,澳门新萄京官方网站 31为第i组数据的dependent variable,澳门新萄京官方网站 32为系数向量。

澳门新萄京官方网站 33

最小二乘法与梯度下降法

不同
  1.实现方法和结果不同:最小二乘法是直接对澳门新萄京官方网站 34求导找出最小二乘法,经典最小二乘法。全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个,然后向下降最快的方向调整,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。

Delta

  最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值,那它们有什么区别呢。

 

求导找出全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个

  相同

澳门新萄京官方网站 35

  1.本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependent variables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。
  2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方)

beta

  不同
  1.实现方法和结果不同:最小二乘法是直接对求导找出全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个,然后向下降最快的方向调整,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。

,然后向

 

澳门新萄京官方网站 36

 

Delta

过拟合

下降最快的方向调整

我们通过对数据样本的观察和抽象,最后归纳得到一个完整的数据映射模型。但是在归纳的过程中,可能为了迎合所有样本向量点甚至是噪声点而使得模型描述过于复杂。

澳门新萄京官方网站 37

过拟合的危害有以下几点:

beta

1.描述复杂 模型的描述非常复杂--参数繁多,计算逻辑多。

,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。

2.失去泛华能力 所谓泛华能力就是通过机器学习得到的模型对未知数据的预测能力,即应用于其他非训练样本的向量时的分类能力。

参考: http://blog.csdn.net/qll125596718/article/details/8248249

 

原文网址:http://www.cnblogs.com/iamccme/archive/2013/05/15/3080737.html

造成过拟合的原因:

1.训练样本太少 训练样本少,训练出来的模型非常不准确

2.追求完美 对于所有的训练样本向量点都希望用拟合的模型覆盖,但在实际的训练样本中却存在很多噪声。

 

欠拟合

与过拟合相反,叫做欠拟合。建模不当产生的误差,主要是对线性回归中的因素考虑不足。

原因如下:

1.参数过少 对于训练样本向量的维度提取太少导致训练描述的不准确。

2.拟合不当 通常是拟合方法的不正确

 

非线性回归的情况太过复杂,在生产实践中也尽量避免使用这种模型。多采取线性回归

 

例子

数据文件内容:

29,female,27.94,1,yes,southeast,19107.7796
49,female,27.17,0,no,southeast,8601.3293
37,female,23.37,2,no,northwest,6686.4313
44,male,37.1,2,no,southwest,7740.337
18,male,23.75,0,no,northeast,1705.6245
20,female,28.975,0,no,northwest,2257.47525
44,male,31.35,1,yes,northeast,39556.4945
47,female,33.915,3,no,northwest,10115.00885
26,female,28.785,0,no,northeast,3385.39915
19,female,28.3,0,yes,southwest,17081.08
52,female,37.4,0,no,southwest,9634.538
32,female,17.765,2,yes,northwest,32734.1863
38,male,34.7,2,no,southwest,6082.405
59,female,26.505,0,no,northeast,12815.44495
61,female,22.04,0,no,northeast,13616.3586
53,female,35.9,2,no,southwest,11163.568
19,male,25.555,0,no,northwest,1632.56445
20,female,28.785,0,no,northeast,2457.21115
22,female,28.05,0,no,southeast,2155.6815
19,male,34.1,0,no,southwest,1261.442
22,male,25.175,0,no,northwest,2045.68525
54,female,31.9,3,no,southeast,27322.73386
22,female,36,0,no,southwest,2166.732
34,male,22.42,2,no,northeast,27375.90478
26,male,32.49,1,no,northeast,3490.5491
34,male,25.3,2,yes,southeast,18972.495
29,male,29.735,2,no,northwest,18157.876
......

 

执行过程分析:

> insurance <- read.csv("insurance.csv", stringsAsFactors = TRUE)  #读取数据
> str(insurance)     #查看data.frame结构
'data.frame':    1338 obs. of  7 variables:
 $ age     : int  19 18 28 33 32 31 46 37 37 60 ...
 $ sex     : Factor w/ 2 levels "female","male": 1 2 2 2 2 1 1 1 2 1 ...
 $ bmi     : num  27.9 33.8 33 22.7 28.9 ...
 $ children: int  0 1 3 0 0 0 1 3 2 0 ...
 $ smoker  : Factor w/ 2 levels "no","yes": 2 1 1 1 1 1 1 1 1 1 ...
 $ region  : Factor w/ 4 levels "northeast","northwest",..: 4 3 3 2 2 3 3 2 1 2 ...
 $ charges : num  16885 1726 4449 21984 3867 ...> library("psych")    #加载包
> ins_model <- lm(charges ~ age   children   bmi   sex   smoker   region, data=insurance) #使用包的线性回归方法训练数据集
> summary(ins_model)  #查看训练集汇总信息

Call:
lm(formula = charges ~ age   children   bmi   sex   smoker   
    region, data = insurance)

Residuals:
     Min       1Q   Median       3Q      Max 
-11304.9  -2848.1   -982.1   1393.9  29992.8 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)     -11938.5      987.8 -12.086  < 2e-16 ***   
age                256.9       11.9  21.587  < 2e-16 ***  #*多代表显著特征
children           475.5      137.8   3.451 0.000577 ***
bmi                339.2       28.6  11.860  < 2e-16 ***
sexmale           -131.3      332.9  -0.394 0.693348    
smokeryes        23848.5      413.1  57.723  < 2e-16 ***
regionnorthwest   -353.0      476.3  -0.741 0.458769    
regionsoutheast  -1035.0      478.7  -2.162 0.030782 *  
regionsouthwest   -960.0      477.9  -2.009 0.044765 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6062 on 1329 degrees of freedom
Multiple R-squared:  0.7509,    Adjusted R-squared:  0.7494 
F-statistic: 500.8 on 8 and 1329 DF,  p-value: < 2.2e-16

> lmstep<- step(ins_model) #用于去除不显著的特征
Start:  AIC=23316.43
charges ~ age   children   bmi   sex   smoker   region

           Df  Sum of Sq        RSS   AIC
- sex       1 5.7164e 06 4.8845e 10 23315    #sex特征被删除
<none>                   4.8840e 10 23316
- region    3 2.3343e 08 4.9073e 10 23317
- children  1 4.3755e 08 4.9277e 10 23326
- bmi       1 5.1692e 09 5.4009e 10 23449
- age       1 1.7124e 10 6.5964e 10 23717
- smoker    1 1.2245e 11 1.7129e 11 24993

Step:  AIC=23314.58                        #用AIC最小值来评估
charges ~ age   children   bmi   smoker   region

           Df  Sum of Sq        RSS   AIC
<none>                   4.8845e 10 23315
- region    3 2.3320e 08 4.9078e 10 23315
- children  1 4.3596e 08 4.9281e 10 23325
- bmi       1 5.1645e 09 5.4010e 10 23447
- age       1 1.7151e 10 6.5996e 10 23715
- smoker    1 1.2301e 11 1.7186e 11 24996
> predict.lm(lmstep,data.frame(age=70,children=4,bmi=31.5,smoker='yes',region='northeast'),interval="prediction",level=0.95) #使用预测方法对数据进行预测
       fit      lwr      upr
1 42400.38 30429.87 54370.89          #预测结果 42400.38 置信区间 30429.87~54370.89

查看图:

> plot(lmstep)

澳门新萄京官方网站 38

X轴预测值,Y轴残值;反映预测值和真实值的距离;异常值 243、1301、578

 

澳门新萄京官方网站 39

QQ图 X理论分为区间;Y标准化残差值  判断是否符合正态分布, 粗略判断大于2及小于-2的点为离群点

 

澳门新萄京官方网站 40

X轴预测值,Y轴标准化残差值开方  

 

澳门新萄京官方网站 41

X轴杠杆比率,Y轴标准化残差值 leverage=d(预测值)/ d(真实值) 

 

本文由澳门新萄京官方网站发布于www.8455.com,转载请注明出处:最小二乘法,经典最小二乘法

关键词: