首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sklearn k-nn中获得每个类的比率?

如何在sklearn k-nn中获得每个类的比率?
EN

Stack Overflow用户
提问于 2021-06-30 15:14:47
回答 1查看 40关注 0票数 0

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

在sklearn或tensorflow中有什么工具可以做到这一点吗?或者我应该创建自己的k-nn模型?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-30 15:24:06

Sklearn就是这么做的!查看thisPredict_proba是您想要的函数。

您将获得每个类的概率,只需将其乘以K即可得到您想要的实际数字:

代码语言:javascript
复制
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 K
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68190047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档