Python 3.x 显示混淆矩阵中的错误分类数字
我编写了一个函数来查找模型的混淆矩阵:Python 3.x 显示混淆矩阵中的错误分类数字,python-3.x,scikit-learn,Python 3.x,Scikit Learn,我编写了一个函数来查找模型的混淆矩阵: NN_model = KNeighborsClassifier(n_neighbors=1) NN_model.fit(mini_train_data, mini_train_labels) # Create the confusion matrix for the dev data confusion = confusion_matrix(dev_labels, NN_model.predict(dev_data)) print(confusion)
NN_model = KNeighborsClassifier(n_neighbors=1)
NN_model.fit(mini_train_data, mini_train_labels)
# Create the confusion matrix for the dev data
confusion = confusion_matrix(dev_labels, NN_model.predict(dev_data))
print(confusion)
但我在显示5位数以上的图像时遇到了问题,这些图像经常与其他图像混淆。但是当我尝试下面的代码时,我没有得到预期的结果
index = 0
misclassifiedIndexes = []
for label, predict in zip(dev_labels, predictions):
if label != predict:
misclassifiedIndexes.append(index)
index +=1
plt.figure(figsize=(20,4))
for plotIndex, badIndex in enumerate(misclassifiedIndexes[0:5]):
plt.subplot(1, 5, plotIndex + 1)
plt.imshow(np.reshape(dev_data[badIndex], (28,28)), cmap=plt.cm.gray)
plt.title('Predict: {}, Actual: {}'.format(predictions[badIndex], dev_labels[badIndex]), fontsize = 15)
你能看看我的代码出了什么问题吗?谢谢大家! 因此,我无法处理您的代码。因此,我在这里提供了一个可复制的代码 您可以在预测和实际值之间的布尔比较中使用
np.where
试试这个例子:
从sklearn.com导入KNeighborsClassifier
从sklearn.dataset导入load_数字
从sklearn.model\u选择导入列车\u测试\u拆分
十、 y=加载数字(返回X=真)
X_系列,X_测试,y_系列,y_测试=系列测试分割(X,y,测试尺寸=0.4)
NN_模型=Kneighbors分类器(n_邻居=1)
NN_模型拟合(X_序列,y_序列)
#为dev数据创建混淆矩阵
从sklearn.metrics导入混淆矩阵
预测=NN_模型。预测(X_检验)
混淆=混淆矩阵(y_测试,预测)
将matplotlib.pyplot作为plt导入
误分类指数=np。其中(y_检验!=预测)[0]
图,ax=plt.子批次(4,3,figsize=(15,8))
ax=ax.ravel()
对于i,枚举中的badIndex(误分类索引):
ax[i].imshow(np.重塑(X_检验[badIndex],(8,8)),cmap=plt.cm.gray)
ax[i].set_title(f'Predict:{predicts[badeindex]},'
f'Actual:{y_测试[badIndex]}',fontsize=10)
ax[i].set(frame_on=False)
ax[i]。轴(“关闭”)
打印框(假)
打印轴(“关闭”)
因此,我不能对您的代码提出异议。因此,我在这里提供了一个可复制的代码 您可以在预测和实际值之间的布尔比较中使用
np.where
试试这个例子:
从sklearn.com导入KNeighborsClassifier
从sklearn.dataset导入load_数字
从sklearn.model\u选择导入列车\u测试\u拆分
十、 y=加载数字(返回X=真)
X_系列,X_测试,y_系列,y_测试=系列测试分割(X,y,测试尺寸=0.4)
NN_模型=Kneighbors分类器(n_邻居=1)
NN_模型拟合(X_序列,y_序列)
#为dev数据创建混淆矩阵
从sklearn.metrics导入混淆矩阵
预测=NN_模型。预测(X_检验)
混淆=混淆矩阵(y_测试,预测)
将matplotlib.pyplot作为plt导入
误分类指数=np。其中(y_检验!=预测)[0]
图,ax=plt.子批次(4,3,figsize=(15,8))
ax=ax.ravel()
对于i,枚举中的badIndex(误分类索引):
ax[i].imshow(np.重塑(X_检验[badIndex],(8,8)),cmap=plt.cm.gray)
ax[i].set_title(f'Predict:{predicts[badeindex]},'
f'Actual:{y_测试[badIndex]}',fontsize=10)
ax[i].set(frame_on=False)
ax[i]。轴(“关闭”)
打印框(假)
打印轴(“关闭”)