要分析上一会话中的预测结果,您可以使用各种方法来评估和可视化这些预测。以下是一些常见的分析方法:
- 准确率(Accuracy):计算预测结果与实际标签之间的准确率,即正确分类的样本数量与总样本数量的比例。
import numpy as np
def evaluate_accuracy(predictions, labels):
predicted_labels = np.argmax(predictions, axis=1)
correct_predictions = np.equal(predicted_labels, labels)
accuracy = np.mean(correct_predictions)
return accuracy
# 假设labels是真实标签
accuracy = evaluate_accuracy(predictions, labels)
print("Accuracy: {:.2%}".format(accuracy))
- 混淆矩阵(Confusion Matrix):展示模型在每个类别上的预测情况。可以使用sklearn库来计算混淆矩阵并进行可视化。
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns
def plot_confusion_matrix(y_true, y_pred, classes):
cm = confusion_matrix(y_true, y_pred)
plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", xticklabels=classes, yticklabels=classes)
plt.xlabel('Predicted Labels')
plt.ylabel('True Labels')
plt.title('Confusion Matrix')
plt.show()
# 假设labels是真实标签,predictions是预测结果索引
plot_confusion_matrix(labels, predicted_labels, class_names)
- 可视化预测结果:将预测结果与真实标签进行对比可视化,以便更好地理解模型的表现。
import matplotlib.pyplot as plt
def visualize_predictions(images, labels, predictions, class_names):
num_images = len(images)
num_cols = 4
num_rows = (num_images + num_cols - 1) // num_cols
plt.figure(figsize=(15, 12))
for i in range(num_images):
plt.subplot(num_rows, num_cols, i+1)
plt.imshow(images[i])
predicted_label = np.argmax(predictions[i])
true_label = labels[i]
plt.title("Predicted: {}, True: {}".format(class_names[predicted_label], class_names[true_label]))
plt.axis('off')
plt.tight_layout()
plt.show()
# 假设images是图像数据,labels是真实标签,predictions是预测结果概率分布
visualize_predictions(images, labels, predictions, class_names)
以上仅为一些简单的示例方法。您可以根据您的需求和具体情况选择适合您问题的分析方法,并对其进行进一步扩展和定制。
内容由零声教学AI助手提供,问题来源于学员提问