在这种情况下,当k为5时,将预测为蓝色,因为5个蓝点中有3个。而且,我知道如何获得准确率。但我想知道的是每个蓝点和红点的比例,如下图所示。

在sklearn或tensorflow中有什么工具可以做到这一点吗?或者我应该创建自己的k-nn模型?
发布于 2021-06-30 15:24:06
Sklearn就是这么做的!查看this。Predict_proba是您想要的函数。
您将获得每个类的概率,只需将其乘以K即可得到您想要的实际数字:
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsClassifier
K = 3
neigh = KNeighborsClassifier(n_neighbors=K)
neigh.fit(X, y)
print(neigh.predict([[1.1]]))
predicted = neigh.predict_proba([[0.9]]) # -> [[0.66666667 0.33333333]]
whatYouWant = K*predicted
print(whatYouWant) #-> [[2,1]]
print("Number of 0 : ",whatYouWant[0][0]) # -> Number of 0 : 2.0
print("Number of 1 : ",whatYouWant[0][1]) # -> Number of 1 : 1.0
print("Total : ",sum(whatYouWant[0])) # -> Total : 3.0 which is Khttps://stackoverflow.com/questions/68190047
复制相似问题