我正在研究一个简单的KNN算法,其中我想添加一个if语句来解析tie(如果在一个测试点周围有来自几个不同类的相等数量的邻居)。当我想知道一个数组的最大值是否多次出现时,问题就出现了,但我似乎找不到一个函数来执行此操作。我想要的:
unique, counts = np.unique(k_nearest_labels, return_counts=True)
if (len(unique)>1) and (frequency of max(counts) in counts > 1)
return the nearest of the tied points
其中counts
是unique
中数字的频率。如何解决if状态中的第二个条件?或者我忽略了另一种解决方案。在
实际上,您可以跳过
np.unique
(这在计算上相当昂贵),仍然可以得到您想要的:还有:耶!你在写的时候回答了你自己的问题。那总是很有趣。你绝对应该接受海默森的建议,把你的编辑和答案分割成一个合适的答案(这会让其他人更容易找到答案)。在
我解决了它,忘了我可以创建一个布尔数组,然后求和,这是我的解决方案,给那些偶然发现它的人。在
可以写成:
^{pr2}$相关问题 更多 >
编程相关推荐