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

Posted

技术标签:

【中文标题】在 Weka 中使用 KNN 获取数据集中每个点的 n 个最近邻【英文标题】:Get n closest neighbors to each point in a dataset using KNN in Weka 【发布时间】:2018-09-17 18:04:00 【问题描述】:

我有一个数据集,假设有 1000 条记录(点)。对于数据中的每个点,我希望获得与该点最近的 N 个邻居,并使用这些邻居(不包括该点)建立一个模型。我需要一个 for 循环来执行此操作,并且我必须在 Weka 中执行此操作。如何获得到 Weka 中每个点的 N 个最近邻居?

【问题讨论】:

大概,您正在编写代码,而不是使用 GUI。你的代码是什么语言的?爪哇? @G5W 感谢您的回答。因为我需要一个即时的解决方案,所以我在 python 中编写了代码来执行这个......没有 Weka。只是纯python。 【参考方案1】:

要查找 k 近邻,请使用 weka 类:

最近邻搜索

其中有一个名为

的方法

kNearestNeighbours(实例目标,int k)

其中 target 是您要查找 N 近邻的实例,而 k 这里是 N。此方法的返回类型是 Instances,因此您将获取您最近的 N 个邻居。

read more about this class here

【讨论】:

谢谢。我需要为超过 100,000 个实例执行此操作。所以我需要一种机制,使我能够遍历它们。知道如何在 Weka 中做到这一点吗? 是的。只需遍历循环中的所有实例,每个实例都使用该 kNearestNeighbour(...) 方法。然后使用该方法返回的实例来构建您的模型 这实际上是一个问题......我该怎么做?如何在 Weka 中编写 for 循环? @G5W 是我上面的问题吗? 抱歉,不,我是为 geek2000 准备的。我会移动评论。

以上是关于在 Weka 中使用 KNN 获取数据集中每个点的 n 个最近邻的主要内容,如果未能解决你的问题,请参考以下文章

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

机器学习之初识KNN算法——针对泰坦尼克号生存记录建模的两种方法

如何在 Weka 中构建 SVM 分类器以仅考虑数据集中的某些特征?

机器学习之KNN算法

KNN近邻算法

在 Weka 中使用 HMM