4

1) 正如我们所知,KNN 在训练阶段不执行任何计算,而是推迟所有计算进行分类,因此我们称之为惰性学习器。分类应该比训练花费更多的时间,但是我发现这个假设与 weka 几乎相反。其中 KNN 训练比测试花费更多时间。

为什么以及如何在 weka 中的 KNN 在分类中执行得更快,而通常它应该执行得更慢?

它是否也会导致计算错误?

2)当我们说 Knn 中的特征权重可以提高高维数据的性能时,我们说它是什么意思?我们的意思是特征选择和选择具有高 InformationGain 的特征吗?

4

1 回答 1

4

回答问题 1

我的猜测是 Weka 实现使用某种数据结构来有效地执行(近似)最近邻查询。

使用这样的数据结构,可以比以幼稚的方式执行查询更有效地执行查询。

这种数据结构的示例是KD 树SR 树

在训练阶段必须创建数据结构,因此比分类需要更多时间。

回答问题 2

(我不确定您是否将预测性能或性能称为speed-up。由于两者都是相关的,我将在回答中同时解决它们。)

对最相​​关的特征使用较高的权重,对不太相关的特征使用较低的权重可以提高预测性能

提高预测性能的另一种方法是执行特征选择。使用互信息或其他类型的单变量关联(如连续变量的Pearson 相关)是执行特征选择的最简单和最简单的方法。请注意,减少变量的数量可以显着加快计算时间

当然,你可以两者都做,即先进行特征选择,然后对剩余的特征使用权重。例如,您可以使用互信息来加权剩余的特征。在文本分类的情况下,您还可以使用 TF-IDF 来加权您的特征。

于 2014-02-13T13:55:52.073 回答