gpt4 book ai didi

machine-learning - KNeighborsClassifier的概率预测方法仅返回0和1

转载 作者:行者123 更新时间:2023-11-30 08:26:34 26 4
gpt4 key购买 nike

谁能告诉我我的代码有什么问题吗?为什么我可以使用 LinearRegression 来预测 iris 数据集的概率,但是 KNeighborsClassifier 给我 0 或 1,而它应该给我一个像 LinearRegression 产生的结果?

from sklearn.datasets import load_iris
from sklearn import metrics

iris = load_iris()
X = iris.data
y = iris.target

for train_index, test_index in skf:
X_train, X_test = X_total[train_index], X_total[test_index]
y_train, y_test = y_total[train_index], y_total[test_index]

from sklearn.linear_model import LogisticRegression
ln = LogisticRegression()
ln.fit(X_train,y_train)

ln.predict_proba(X_test)[:,1]

array([ 0.18075722, 0.08906078, 0.14693156, 0.10467766, 0.14823032, 0.70361962, 0.65733216, 0.77864636, 0.67203114, 0.68655163, 0.25219798, 0.3863194 , 0.30735105, 0.13963637, 0.28017798])

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=5, algorithm='ball_tree', metric='euclidean')
knn.fit(X_train, y_train)

knn.predict_proba(X_test)[0:10,1]

array([ 0., 0., 0., 0., 0., 1., 1., 1., 1., 1.])

最佳答案

因为KNN的概率概念非常有限。它的估计只是最近邻国的选票的一小部分。将决策边界附近的邻居或查询点数量增加到 15 或 100 个,您将看到更加多样化的结果。目前,您的点总是有 5 个具有相同标签的邻居(因此概率为 0 或 1)。

关于machine-learning - KNeighborsClassifier的概率预测方法仅返回0和1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com