全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4428 0
2016-11-18
      在非参数回归中使用最多的就是KNN算法,这个也是比较简单的一种,而参数回归中则通常使用线性回归方式,因此这两者之间在使用的时候,有时可以通用有时又存在差异,下面将探讨一下这两者的用法:
      一、KNN方法是基于距离确定回归的方法



      给定一个K值(就是使用KNN所选择的层数或是怎么叫,其实叫层数并不准确,可能是距离最近的数的个数比较准确点)和一个预测点X0,KNN回归首先确定K个距离这个预测点X0最近的观察点(其实就是使用训练样本得到的),用N0来代表这些观察点,然后用N0中所有观察点的回应(就是所对应的因变量的值)的均值来作为回归法则的估计。
      F(X0)=1/K(SUM(Yi)),其中Yi是N0中每个Xi所对应的值,X0是初始选择的预测点,F(X0)是初始预测点所对应的因变量的值。


      二、K值的选择是很关键的



      从上面可以知道,K越小,那么选取的距离X0最近的点就越小,那么再求F(X0)时误差可能就越大,因此一般选择K的值大于1,但是K值如果过大的话,训练样本又有限,这就会造成很多格观测点共用同一个距离最近的观察点,也会带来误差,因此一般选择1<K<10中间的数字作为一个合适的选择。(一些人认为7可能合适,这个要具体操作才能知道,可以对比预测产生的误差来判断)。

      三、线性回归的方法



      可能大家都比较熟悉,这里就不赘述了,一元二元甚至多元线性回归的方法很容易判断其残差以及拟合程度。当线性回归和KNN方法放到一起时该怎么选择呢?

      1、当预测变量(也叫自变量,或是元,或是维度)在1-3时,选择KNN方法能够显著减少误差(经验验证),当维度为1时,KNN方法能够提供比线性回归更多的信息来进行回归,但随着变量逐渐增多,K个最近的观测值对应的因变量的均值可能会成倍的距离偏离实际的因变量的值,因此当变量多的时候,KNN效果就会逐渐降低。


      2、使用线性回归时,一般不受到变量个数的影响,因此变量多少,对残差的影响并不是很大。当预测变量或是自变量多于3或4时,尽量选择线性回归作为回归效果可能会更好些。




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群