gpt4 book ai didi

machine-learning - 为什么weka中的KNN实现运行得更快?

转载 作者:行者123 更新时间:2023-11-30 08:31:08 25 4
gpt4 key购买 nike

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

为什么 weka 中的 KNN 在分类方面表现得更快,而一般情况下它应该表现得更慢?

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

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

最佳答案

问题 1 的答案

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

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

此类数据结构的示例是 KD treeSR Tree .

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

回答问题2

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

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

提高预测性能的另一种方法是执行特征选择。使用Mutual Information或某种其他类型的单变量关联(例如连续变量的 Pearson correlation)是执行特征选择的最简单且最容易的方法。请注意,减少变量数量可以在计算时间方面显着加速。 p>

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

关于machine-learning - 为什么weka中的KNN实现运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com