在 k-最近邻中使用来自 PCA 的特征值

机器算法验证 分类 主成分分析 k-最近邻 加权平均数
2022-03-30 01:57:42

我对这个 StackExchange 很陌生,到目前为止只是一个潜伏者,但我的 StackOverflow 伙伴说你会是最好的人问这个问题。

无论如何,足够的介绍。我正在使用加权 k-Nearest-Neighbours 算法。我的原始数据集有 37 个特征。我已经研究过使用 PCA 来降低维度,我将遵循这种方法。

为简单起见,让我们假设创建的两个新特性占方差的 90%,我将只使用这两个新特性。让我们称它们为特征 1 和特征 2 ( , )。假设占方差的 60%,占方差的 30%。我知道希望为这两个特征我最初的直觉是,我们可以将考虑的方差与特征的权重相关联。因此,我会在我的 k-Nearest-Neighbours 算法中f1f2f1f2w1,w2w1=0.6w2=0.3

我很清楚有很多文献表明选择权重的最佳方法是使用格型方法,我们选择不同的权重组合,然后按照产生最佳结果的组合进行。我只是想知道权重的直觉是否与总方差有关。此外,由于我的数据集实际上需要使用 11 个特征来解释 90% 的方差,因此我希望有一个确定权重组合的起点。

摘要:当使用 PCA 作为 kNN 的前体时,是否可以将 k-NN 中特征的权重基于所述特征在数据中占的总方差?

抱歉,如果有任何格式错误或我破坏了任何协议。如果有请告诉我,我会更新帖子。

1个回答

你可以追求的选择有很多,我可以推荐一些。首先,如果你已经有一个训练集,并且假设训练集足够大,你可以学习距离度量而不是使用基于 PCA 权重的解释。参见Mahalanobis Distance作为距离度量学习的一个例子。

主要思想是您打算使用加权欧几里得度量: 马氏距离定义类似,尽管它考虑了变量之间的互相关协方差(您的某些特征可能是相关的)

D(x1,x2)=(x1x2)TC(x1x2)
C=diag(w1...wn)
DM(x1,x2)=(x1x2)TC(x1x2)

其中 C 是协方差矩阵。

另一种选择是不使用 PCA(这是一种无监督方法),而是使用监督方法,例如 Class Augumented-PCA一般来说,您可以使用任何可解释的机器学习分类算法(给您权重)并使用带有权重的 K-NN。