为什么KNN不是“基于模型的”?


10

ESL第2.4章似乎将线性回归归类为“基于模型”,因为它假设,而k最近邻没有类似的近似值。但是,不是两种方法都假设吗?f(x)xβf(x)

后来在2.4中甚至说:

  • 最小二乘假设由全局线性函数很好地近似。f(x)
  • k个近邻假设由局部常数函数很好地近似。f(x)

KNN假设似乎也可以形式化(尽管不确定这样做是否以假设为线性导致线性回归的方式导致 KNN算法)。f

那么,如果KNN实际上不是基于模型的,那为什么呢?还是我误读了ESL?

Answers:


8

直接比较kNN和线性回归是非常困难的,因为它们是非常不同的东西,但是,我认为这里的关键是“建模 ”和“具有关于假设” 之间的区别。f(x)f(x)

在进行线性回归时,特别要对建模,通常是线中的某物,其中是高斯噪声项。您可以算出最大似然模型等于最小平方和误差模型。f(x)f(x)=wx+ϵϵ

另一方面,正如您第二点所建议的那样,KNN假设您可以通过局部常数函数(坐标之间的一些距离度量)来近似该函数,而无需专门为整个分布建模。x

换句话说,线性回归往往会产生的价值是一个好主意对于一些看不见的从刚值,而k近邻将需要一些其他的信息(即k个邻居),作出关于预测,因为值,只是本身的价值,不会给任何信息,因为没有型号为。f(x)xxf(x)xf(x)

编辑:在下面重申此以重新表达此更清晰的内容(请参阅评论)

显然,线性回归和最近邻方法都旨在预测新的值。现在有两种方法。线性回归是通过假设数据位于一条直线上(加上一些噪音)来进行的,因此y的值等于的值乘以该线的斜率。换句话说,线性表达式将数据建模为直线。y=f(x)xf(x)

现在,最接近的邻居方法不在乎数据的外观(不对数据建模),也就是说,它们不在乎数据是直线,抛物线还是圆等。它只是假设如果和相似,则和相似。请注意,这个假设几乎适用于所有模型,包括我上面提到的所有模型。但是,NN方法无法确定值与(无论它是直线,抛物线等),因为它没有这种关系的模型,它只是假定可以通过以下方式近似寻找近点。f(x1)f(x2)x1x2f(x)x


“一个专门模拟f(x)”是什么意思?似乎可以将f局部恒定的假设形式化。仅仅是KNN不能通过任何这样的形式化推导吗?
亚历克2014年

“对于某些看不见的x,对于x的值,线性回归通常会很好地了解f(x)的值”,也不确定这是什么意思……您仍然需要线性模型的参数,只是因为您将需要KNN的参数(尽管它涉及的参数更多)
Alec

好点,我试图编辑答案以使其更清楚,并希望回答您的观点(注释的字符数限制较低)。
Saulius Lukauskas 2014年

+1,这很好地解释了。IMO认为“建模f(x)”与“具有关于f(x)的假设之间的差异”很好地体现了这一想法。可能的另一种表达方式是,考虑 f(x)进行建模就等于对数据生成过程进行了假设,而knn并没有这样做,只是表明给定基准的值可能与附近的值相似。数据。
gung-恢复莫妮卡

嗯好吧 您的编辑肯定会使它更清晰一些,但是我仍然很难真正看到正式的区别。看来,“建模”的意思是“全面了解f的形状”,而KNN只关心局部行为。因此,正是线性全局建模和局部线性建模之间的差异使得KNN不能回归线性回归建模?
亚历克2014年

5

线性回归是基于模型的,因为它假设了数据的结构以生成模型。当您将数据集加载到统计程序中并用于运行线性回归时,输出实际上是一个模型:f^(X)=β^X。您可以将新数据输入该模型并获得预测的输出,因为您已经假设了实际如何生成输出变量。

使用KNN时,实际上根本没有模型-只是假设观测点之间彼此接近 X-space在输出变量方面的行为可能类似。您无需将新观察值输入“ KNN模型”,只需确定哪些现有观察值与新观察值最相似,并根据训练数据预测新观察值的输出变量即可。


尽管从直觉上我理解了您的意思,但是这种区分对我来说仍然有些ky ...您难道不认为KNN是由R ^ d分区和分配给这些分区的权重参数化的吗?
亚历克2014年

1
如果有人要求您证明您的预测是正确的,那么如果您通过解释模型假设的输入和输出之间的关系来使用线性回归,则可以这样做。模型试图解释b / w输入和输出之间的关系。KNN不会尝试解释黑白输入和输出之间的关系,因此没有模型。
tjnel 2014年

4

在讨论聚类方法时,术语“基于模型”与“基于分布”同义。线性回归做出分布假设(误差为高斯分布)。KNN不做任何分布假设。那是区别。


1
就形式上的区别而言,这到目前为止对我来说最有意义,尽管ESL并没有以这种方式真正呈现线性回归。他们首先引入了平方误差成本函数,任意选择(而不是对高斯进行MLE),用来发现我们应该预测f(x)= E(Y | X = x),解释了KNN如何近似在一定的假设下,然后继续假设f是线性的以获得线性回归。
Alec 2014年

有趣的主张,但是如果我们对此有所参考,那就更好了。
2015年

0

kNN基于实例

为了对新观测值做出预测,您必须保留所有训练数据集,因为关于该数据集没有模型

这就是kNN的工作方式:给定一个新的观测值,我们将计算该新观测值与训练数据集中所有其他观测值之间的距离。然后得到邻居(最接近新观测值的邻居)。

如果 k=5,那么我们看一下5个最接近的观察值。“局部恒定函数”表示选择这5个观测值后,我们无需关心距离。它们是相同的,它们对于预测具有相同的重要性。

如何找到模型?

现在,如果我们试图找到一个不是“局部恒定”的函数,那将是一个正态分布。在这种情况下,您将获得称为线性判别分析或朴素贝叶斯的算法(取决于其他一些假设)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.