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 算法永远不会在大型数据集上完成的主要内容,如果未能解决你的问题,请参考以下文章