我的逻辑回归算法返回了y_pred作为一个数组。例如:
array([False, False, True, False, False, True, False, False, False, False, False, ...])
我想查看数据集中哪些行被预测为True。作为一种理智测试,可以看看这些被错误预测为True的行是否完全错误,还是至少接近正确。有没有办法获取预测行的索引?或者通常是如何做的?
回答:
如果你的预测是:
y = array([False, False, True, False, False, True, False, False, False, False, False, ...])
那么后面的数据将简单地是:
data[y]
假设预测是在data
上进行的。
示例:
from sklearn import datasetsfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.model_selection import train_test_splitX, y = datasets.load_breast_cancer(return_X_y=True) # 2类 - 二元分类knn = KNeighborsClassifier()X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)knn.fit(X_train, y_train)prediction = knn.predict(X_test).astype(bool)
在最后一步中,我们利用了两个事实:
X
和y
具有相同的顺序。运行predict
保持顺序不变- 使用布尔条件选择数组项目
pred_tested_true = X_test[prediction]
pred_tested_true
现在包含所有被预测为True
的行。