有人对这种方法的有效性有任何想法吗?
我可以看到的主要问题是线性回归建议将样本空间分成两部分(超平面的两个“边”),而最近的邻居会将其分成区域(可能很多),具体取决于不同的类在样本空间上进行采样。
我能看到的最坏情况如下。您的数据显示了 KNN 可以很好地处理的分布,但是线性回归的表现会很糟糕,就像下图中的棋盘一样(代码在帖子的底部)。尽管这是漫画,但许多其他数据集将表现出相同的行为。

如果您根据 p 值选择特征,线性回归将丢弃这两个特征:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.538955 0.041424 37.151 <2e-16 ***
x1 -0.037032 0.027543 -1.345 0.179
x2 -0.006612 0.027526 -0.240 0.810
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
如果您决定根据线性回归的权重对特征进行加权,请注意权重可能会有数量级的不同,尽管没有理由让它们如此!这相当于将您的数据投影在单个轴上,KNN 无法在该轴上学习任何相关内容(如果您从单个维度查看点的颜色,请考虑它们的颜色)。
因此,我不会使用这种方法来校准 KNN 的权重(或选择属性)。
编辑
您可以增加任何拟合优度度量,添加显示相对于目标的线性相关性的变量。在这种情况下,拟合优度将不再是微不足道的,但您会丢失来自前两个变量的信息。
关于加权 KNN
但是,有可能将距离函数从欧几里德距离更改为维度具有不同权重的距离。这种方法的调整时间很长,因为每次更改一个属性的权重时都必须评估模型。如果是您的特征数量,并且您想用和,那么您有模型要评估(使用天真的策略)。pxx/2x×23p
请注意,如果您独立处理特征(不是它们的每个组合),您可能会有显着的改进,只运行模型。3×p
KNN 的其他改进
J. Wang、P. Neskovic 和 LN Cooper,“使用简单的自适应距离测量改进最近邻规则”,模式识别快报,卷。28,没有。2,第 207-213 页,2007 年 1 月。
“随机 KNN 特征选择 - 一种快速稳定的随机森林替代方案”Shengqiao Li、E James Harner 和 Donald A Adjeroh,生物信息学 2011 12:450
代码
N <- 2000
decision_function <- function(x){
(((x[1]%%1-0.5)*(-x[2]%%1-0.5))>0)+1
}
x <- abs(matrix(runif(n = N, min = 0, max = 2), ncol = 2))
y <- apply(X = x, MARGIN = 1, FUN = decision_function)
plot(x, col=y)
model <- lm(y ~ x, data = cbind.data.frame(x,y))
summary(model)