回归问题的解释


转自http://blog.csdn.net/vshuang/article/details/5512853

1.    问题描述:

给定多个自变量、一个因变量以及代表它们之间关系的一些训练样本,如何来确定它们的关系?

 

2.    数学描述

建模:目的就是求这个因变量关于这多个自变量的函数。而这个函数能够比较精确的表示这个因变量和这多个自变量之间的关系。

 

3.    问题深入

举个例子我们有代表两个自变量x1,x2和一个因变量y之间的关系的一些训练样本(比如(x1=0,x2=1,y=0)等)。现在我们来求y关于x1、x2的函数就可能会出现各种各样的情况。

比如 y = a*x1+b*x2;  y =a*Sqrt(x1)+b*Sqrt(x2);  y = a*exp(x1)+b*exp(-x2);  y=x1*x2;各种各样的情况都很可能。

但是我们现在只有这些训练样本,我们怎么来确定它们的模型呢和各自模型相应的参数呢。很难判断。

从这里可以看出其实线性回归的局限性很大。它只是简单的建立一个y=a*x1+b*x2的关系的一个模型,然后来拟合求得a、b的值。就试图来表示y和x1、x2之间的所有关系,显然不是很准确的。如果当前y=x1*x2的话,实际中,无论你怎样去拟合,也很难达到一个理想的效果。

 

我们该怎么办?

1、  线性回归:如果我们要采用线性回归方法,首先我们得证明这个问题确实是线性问题。或者是说y确实等于a*x1+b*x2。我们要先试着去做一些相关的线性分析。证明y与x1、x2的线性相关非常高。或者我们也可以先计算出来结果,然后拿部分训练样本值对放到模型里去测试,如果误差超出一定值,我们也可以说明这个模型是不适合的。否则,我们就可以通过采用线性回归方法来求得相应的模型。

2、  线性模型不适合的话,我们要采用其它方式的建模(非线性模型):比如y=a*Sqrt(x1)+b*sqrt(x2),然后求出a、b,然后又拿部分训练样本值去测试,看这个模型合不合适。重复这个过程。如果你能坚持下去很多很多年,总会找到一个合适的模型的。

3、  即使找到了相应的模型,也是一个非线性回归模型:(当然除了像2说的那样不断尝试,通过理解所研究对象的物理背景或散点图可帮助我们选择适当的非线性回归方程)(非线性回归函数模型有双曲线、抛物线、幂函数、指数函数等等)

 

4、  尽管如此,非线性回归方程绝大多数时候还是非常难求,尤其是自变量多,维度比较高的情况下。两种方法:1降维;2非线性空间化为线性空间。

 

5、  降维(可以解决维度高的问题,但是解决不了非线性的问题):主成分分析(PCA),独立成分分析(ICA)可以得到最相关的几个自变量。(如果用核函数此步骤可以省略),这样可以将自变量的个数减少到最重要的几个。

 

6、  非线性空间转换到线性空间:

线性空间对应的函数模型为 ,式子中的 是一个一个的权值(在严格的证明过程中,这些α被称为拉格朗日乘子),而xi是样本点,因而是向量,n就是总样本点的个数。为了方便描述,以下开始严格区别数字与向量的乘积和向量间的乘积,我会用α1x1表示数字和向量的乘积,而用<x1,x2>表示向量x1,x2的内积(也叫点积,注意与向量叉积的区别)。因此g(x)的表达式严格的形式应该是:

g(x)=<w,x>+b。而 (这里的 是一个单位向量如(1,0000))

所以 ,其中 表示的即为内积空间

非线性转化,主要通过改变内积空间替换成另外一个核函数空间而从而转化到另外一个线性空间。(想起来好像不存在,可是万幸这样的核函数还是存在的,虽然有点难理解)

加入核函数之后上述函数式变成 ,在这个空间里居然是线性的 和 之间居然变成了近似线性的。这样这个问题也可以用线性回归来解决。

 

7、  支持向量回归:

殊途同归的另外一种解释方式(从支持向量说起的)

核函数+回归(但这里的回归利用了支持向量)

4.    总结

线性回归只是用来完成针对多个自变量、一个因变量之间的关系的一个线性建模的解决方法。

对于维数多(维数多的情况下,有多重共线性的影响,同时大多数时候也是非线性问题)、非线性问题,线性回归往往无能为力。

核函数是对向量内积空间的一个扩展,使得非线性回归的问题,在经过核函数的转换后可以变成一个近似线性回归的问题。

所以绝大部分非线性回归问题是可以通过核函数+线性回归的思路来完成的。但在核函数的选择上面可能需要花一点时间,但是由于核函数的通用性,用了核函数,一般效果都还行。

如果觉得需要降维的话,可以考虑采用PCA、ICA。

 

5.    附录 (核函数)http://blog.sina.com.cn/s/blog_5dd2e9270100bs2z.html

(1核函数发展历史
    早在1964年Aizermann等在势函数方法的研究中就将该技术引入到机器学习领域,但是直到1992年Vapnik等利用该技术成功地将线性SVMs推广到非线性SVMs时其潜力才得以充分挖掘。而核函数的理论则更为古老,Mercer定理可以追溯到1909年,再生核希尔伯特空间(ReproducingKernel Hilbert Space, RKHS)研究是在20世纪40年代开始的。

(2核函数方法原理
    根据模式识别理论,低维空间线性不可分的模式通过非线性映射到高维特征空间则可能实现线性可分,但是如果直接采用这种技术在高维空间进行分类或回归,则存在确定非线性映射函数的形式和参数、特征空间维数等问题,而最大的障碍则是在高维特征空间运算时存在的“维数灾难”。采用核函数技术可以有效地解决这样问题。
    设x,z∈X,X属于R(n)空间,非线性函数Φ实现输入间X到特征空间F的映射,其中F属于R(m),n<<m。根据核函数技术有:

       K(x,z) =<Φ(x),Φ(z) >                (1)
    其中:<, >为内积,K(x,z)为核函数。从式(1)可以看出,核函数将m维高维空间的内积运算转化为n维低维输入空间核函数计算,从而巧妙地解决了在高维特征空间中计算的“维数灾难”等问题,从而为在高维特征空间解决复杂的分类或回归问题奠定了理论基础。

(3核函数特点

    核函数方法的广泛应用,与其特点是分不开的:

    1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。

    2)无需知道非线性变换函数Φ的形式和参数.

    3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。

    4)核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。

(4)常见核函数

    核函数的确定并不困难,满足Mercer定理的函数都可以作为核函数。常用的核函数可分为两类,即内积核函数和平移不变核函数,如:
 1)高斯核函数K(x,xi) =exp(-||x-xi||2/2σ2
  2)多项式核函数K(x,xi)=(x·xi+1)^d, d=1,2,…,N; 
  3)感知器核函数K(x,xi) =tanh(βxi+b);
  4)样条核函数K(x,xi) = B2n+1(x-xi)。

(5核函数方法实施步骤

    核函数方法是一种模块化(Modularity)方法,它可分为核函数设计和算法设计两个部分,具体为:

    1)收集和整理样本,并进行标准化;
    2)选择或构造核函数
    3)用核函数将样本变换成为核函数矩阵,这一步相当于将输入数据通过非线性函数映射到高维
特征空间

    4)在特征空间核函数矩阵实施各种线性算法;

    5)得到输入空间中的非线性模型。

    显然,将样本数据核化成核函数矩阵是核函数方法中的关键。注意到核函数矩阵是l×l的对称矩阵,其中l为样本数。

(6核函数在模式识别中的应用
    1)新方法。主要用在基于结构风险最小化(Structural Risk Minimization,SRM)的SVM中。

2)传统方法改造。如核主元分析(kernel PCA)、核主元回归(kernel PCR)、核部分最小二乘法(kernel PLS)、核Fisher判别分析(Kernel Fisher Discriminator, KFD)、核独立主元分析(Kernel Independent Component Analysis,KICA)等,这些方法在模式识别等不同领域的应用中都表现了很好的性能。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值