为什么KNN在weka中的实现速度更快



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

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

这也会导致计算错误吗?

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

问题1的答案

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

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

这种数据结构的例子是KD树和SR树。

在训练阶段,必须创建数据结构,因此这将比分类花费更多的时间。

问题2的答案

(我不确定您是指预测性能还是指加速中的性能。由于两者都是相关的,我将在回答中解决它们。)

对最相关的特征使用更高的权重,而对不太相关的特征则使用更低的权重,这可以提高的预测性能

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

当然,可以同时执行这两种操作,即先执行特征选择,然后对其余特征使用权重。例如,您可以使用相互信息对其余要素进行加权。在文本分类的情况下,您也可以使用TF-IDF来加权您的功能。

最新更新