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)