Weka 中的 KNN 算法永远不会在大型数据集上完成

Posted

技术标签:

【中文标题】Weka 中的 KNN 算法永远不会在大型数据集上完成【英文标题】:KNN Algorithm in Weka Never Completing On Large Dataset 【发布时间】:2013-12-12 01:17:11 【问题描述】:

返回一个关于数据挖掘的问题,并与 Weka 和 WekaSharp 合作进行数据挖掘。通过 WekaSharp,我一直在对一个相当大的数据集进行一些分析,该数据集是 KDD Cup 1999 10% 数据库(~70 mb)。我使用决策树 J48 算法和朴素贝叶斯算法都取得了很好的结果,每个算法都需要 10 到 30 分钟才能完成。当我通过 KNN 算法运行相同的数据并且它从未完成分析时,它不会出错,它只是永远运行。我已经尝试了所有不同的参数,但没有任何效果。当我在较小的样本数据集(例如 iris.arff)上运行相同的 KNN 算法时,它可以轻松完成。这是我对 KNN 参数的设置: "-K 1 -W 0 -A \"weka.core.neighboursearch.KDTree -A \\"weka.core.EuclideanDistance -R first-last\\"\"" KNN 和大型数据集是否存在固有问题,或者是否存在设置问题?非常感谢。

【问题讨论】:

【参考方案1】:

kNN 受到“维度诅咒”的影响:高维数据集的空间查询无法像低维数据集一样得到有效优化,从而有效地将其转化为暴力搜索。

NB 嘲笑维度,因为它基本上忽略了维度。许多决策树变体也相当擅长处理高维数据。 kNN 不喜欢高维数据。预计会等待很长时间。

【讨论】:

感谢您的回复和评论,这是一个非常有用的见解,并且在距离测量方面很有意义。我很可能会选择不同的算法,因为我希望能够在这些集合上进行大量运行。再次感谢您。 您好,作为更新,我让算法在 F# 中运行完成,到目前为止,连续时间平均为 53 小时才能完成。所以它最终会完成:-)。

以上是关于Weka 中的 KNN 算法永远不会在大型数据集上完成的主要内容,如果未能解决你的问题,请参考以下文章

在 Weka 中使用 KNN 获取数据集中每个点的 n 个最近邻

如何在 weka 中使用高尔距离进行 KNN?

k近邻算法(knn)与k-means算法的对比

kNN 是统计分类器吗?

数学建模:2.监督学习--分类分析- KNN最邻近分类算法

类别先验在 Weka 分类中的作用