K-NN 算法如何在 rapidminer 中以相同的距离工作?

Posted

技术标签:

【中文标题】K-NN 算法如何在 rapidminer 中以相同的距离工作?【英文标题】:How K-NN Algorithms work with same distance in rapidminer? 【发布时间】:2019-12-18 16:05:32 【问题描述】:

其实我已经在rapidminer论坛问过了,但是还没有人给出答案。。 https://community.rapidminer.com/discussion/55963/how-k-nn-algorithms-work-with-same-distance-in-rapidminer#latest

我在 rapidminer 中找不到具有相同欧几里德距离的 KNN 算法的令人满意的答案..

我发现了一个类似的问题,但它不在 rapidminer K Nearest-Neighbor Algorithm

说 k=5。现在我尝试通过获取 5 个最近的邻居来对未知对象进行分类。 怎么办,如果距离是很多相同的距离.. 如果在确定 4 个最近的邻居之后,接下来的 2 个(或更多)最近的对象具有相同的距离和不同的标签?这 2 个或更多 rapidminer 中的哪个对象被选为第 5 个最近邻?

我很困惑..我在 excel 中尝试,结果与 rapidminer 的某些数据不同。 在 excel 中,结果标签是“LU”: https://i.ibb.co/RSYnTWg/Capturess.jpg

但 rapidminer 的结果是 "LT" : https://i.ibb.co/NKv0bmp/4.jpg

结果 rapidminer 加权投票被检查为“LU”: https://i.ibb.co/r68y05v/5.jpg

rapidminer 如何处理这样的情况... rapidminer如何排序距离?... 我的数据有问题吗?或者如果距离相同,rapidminer 随机排序?

【问题讨论】:

【参考方案1】:

在这些距离相同的情况下,RapidMiner kNN 使用在训练时使用的 ExampleSet 的内部排序。所以在内部它会选择它“首先看到”的例子。

在构建kNN模型之前尝试改变排序,它应该会给出不同的结果。

可以通过github上的官方源码验证:https://github.com/rapidminer/rapidminer-studio/blob/master/src/main/java/com/rapidminer/operator/learner/lazy/KNNClassificationModel.java

【讨论】:

【参考方案2】:

在这种情况下怎么做肯定不好。

有些实现总是返回正好 5 个对象(这意味着可能有多个不同的正确答案!)而其他实现则使用所有绑定对象,还有一些实现可能使用所有绑定对象,但会减少它们的权重。

您需要检查源代码,因为如果手册不够详细,我不会感到惊讶。

【讨论】:

以上是关于K-NN 算法如何在 rapidminer 中以相同的距离工作?的主要内容,如果未能解决你的问题,请参考以下文章

高数值维度数据的最佳学习模型? (使用 Rapidminer)

了解快速排序算法如何在 VBA 中重现

Rapidminer 中的深度学习算法类型是啥?

转载K-NN算法 学习总结

rapidminer 和 scikit-learn 中的 DBSCAN 算法

遗传算法如何在不知道搜索量的情况下优化神经网络的权重?