Sklearn.neighbors分类器 - 出现平局时的结果顺序

时间:2017-11-10 10:53:43

标签: python scikit-learn nearest-neighbor

我遇到了Sklearn.neighbors分类器的排序问题。也就是说,我想要的是在分类器的情况下,预测出现在数据帧上的第一个结果。

Sklearn.neighbors的文档说:

  

''关于最近邻居算法的警告,如果是两个   邻居,邻居k + 1和k,具有相同的距离但不同   标签,结果将取决于培训的顺序   数据。 ''

但是我发现只有在我使用算法“暴力”时才会出现这种情况,即:

clf = NearestNeighbors(n_neighbors=2, algorithm='brute').fit(X)

我的问题是,即使使用暴力作为算法,在特定数量的预测邻居之后,订单也会丢失。即:

clf.kneighbors(np.array(y), n_neighbors=1) -> Predicts 0 row which is correct in terms of ordering
clf.kneighbors(np.array(y), n_neighbors=2) -> Predicts 0 and 101 rows which are correct in terms of ordering
clf.kneighbors(np.array(y), n_neighbors=3) -> Predicts 0, 101 and 115 rows which are correct in terms of ordering

但是当我使用n_neighbors = 4时,我得到了:

clf.kneighbors(np.array(y), n_neighbors=4) -> Predicts 4416, 223, 7626 and 2047 rows which are not correct in terms of ordering

对于任何数字> 3,它都会像这样。订单完全丢失。

以前处理过这个问题的人?

0 个答案:

没有答案