📜  带有标签 sklearn 的混淆矩阵 - Python (1)

📅  最后修改于: 2023-12-03 14:54:03.977000             🧑  作者: Mango

带有标签 sklearn 的混淆矩阵 - Python

在分类问题中,混淆矩阵(Confusion Matrix)是一种常见的评估模型性能的方法。混淆矩阵展示了模型预测的结果与实际类别之间的关系。在Python中,我们可以使用Scikit-learn库中的confusion_matrix()函数来计算混淆矩阵。

安装Scikit-learn库

在使用Scikit-learn库中的confusion_matrix()函数之前,我们需要先安装Scikit-learn库。可以使用pip来安装Scikit-learn库:

!pip install -U scikit-learn
计算混淆矩阵

假设我们有一个二分类问题,有100个数据样本,我们将其中90个数据样本用于训练模型,剩下10个数据样本用于测试模型。我们可以使用如下的Python代码来计算混淆矩阵:

from sklearn.metrics import confusion_matrix

# 模拟数据
y_test = [0, 1, 1, 0, 1, 0, 0, 1, 0, 1]
y_pred = [0, 1, 1, 0, 1, 1, 0, 0, 0, 0]

# 计算混淆矩阵
confusion_matrix = confusion_matrix(y_test, y_pred)

# 将混淆矩阵转换为DataFrame格式,并添加标签
confusion_matrix_df = pd.DataFrame(confusion_matrix, columns=['预测为0', '预测为1'],
                                    index=['实际为0', '实际为1'])

# 打印混淆矩阵
print(confusion_matrix_df)

输出结果如下:

       预测为0  预测为1
实际为0      4      1
实际为1      2      3
解读混淆矩阵

在上面的例子中,我们得到了一个2×2的混淆矩阵,其中第一行表示实际类别为0的样本,第二行表示实际类别为1的样本,第一列表示模型预测为0的样本,第二列表示模型预测为1的样本。我们可以从混淆矩阵中得到以下信息:

  • True Positive(TP,真正例):模型正确预测为1的样本数量,本例中为3。
  • False Positive(FP,假正例):模型错误地预测为1的样本数量,本例中为1。
  • False Negative(FN,假负例):模型错误地预测为0的样本数量,本例中为2。
  • True Negative(TN,真负例):模型正确预测为0的样本数量,本例中为4。

除了混淆矩阵,我们可以使用Scikit-learn库中的其他函数来评估模型性能,如准确率、召回率、F1值等。