Kas*_*aei 6 machine-learning probability nearest-neighbor scikit-learn
谁能告诉我我的代码有什么问题?为什么我可以使用LinearRegression来预测虹膜数据集的概率,但是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]
Run Code Online (Sandbox Code Playgroud)
数组([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]
Run Code Online (Sandbox Code Playgroud)
array([0.,0.,0.,0.,0.,1.,1.,1.,1.,1.])
因为KNN具有非常有限的概率概念。它的估计仅是最近邻国中票数的一部分。将邻居数增加到15或100或决策边界附近的查询点,您将看到更多不同的结果。当前,您的点仅总是具有5个具有相同标签的邻居(因此概率为0或1)。
| 归档时间: |
|
| 查看次数: |
2451 次 |
| 最近记录: |