From dcd7a8a41b509ddb06fc682e38ed0be91cde1f00 Mon Sep 17 00:00:00 2001 From: jackfrued Date: Thu, 13 Feb 2025 16:10:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=B8=AD=E7=9A=84=E7=AC=94=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Day81-90/82.k最近邻算法.md | 79 ++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/Day81-90/82.k最近邻算法.md b/Day81-90/82.k最近邻算法.md index 36ffa0f..50b8abe 100644 --- a/Day81-90/82.k最近邻算法.md +++ b/Day81-90/82.k最近邻算法.md @@ -241,50 +241,55 @@ model.score(X_test, y_test) | **实际为未患病** | 30(FP) | 870(TN) | 1. **准确率**(Accuracy)。 - $$ - \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{FP} + \text{FN} + \text{TN}} - $$ - - 上面的例子,模型预测的准确率为: $\small{\frac{80 + 870}{80 + 30 + 20 + 870} = \frac{950}{1000} = 0.95}$ 。 - + +$$ +\text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{FP} + \text{FN} + \text{TN}} +$$ + +上面的例子,模型预测的准确率为: $\small{\frac{80 + 870}{80 + 30 + 20 + 870} = \frac{950}{1000} = 0.95}$ 。 + 2. **精确率**(Precesion)。精确率用于衡量在所有被预测为正类的样本中,实际上属于正类的比例,通常也被称为查准率。 - $$ - \text{Precesion} = \frac{\text{TP}}{\text{TP} + \text{FP}} - $$ - - 上面的例子,模型预测的精确率为: $\small{\frac{80}{80 + 30} = \frac{80}{110} = 0.73}$ 。 - + +$$ +\text{Precesion} = \frac{\text{TP}}{\text{TP} + \text{FP}} +$$ + +上面的例子,模型预测的精确率为: $\small{\frac{80}{80 + 30} = \frac{80}{110} = 0.73}$ 。 + 3. **召回率**(Recall)。召回率用于衡量在所有实际为正类的样本中,被模型正确预测为正类的比例,通常也被称为查全率或真正例率(True Positive Rate)。 - $$ - \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} - $$ - - 上面的例子,模型预测的召回率为: $\small{\frac{80}{80 + 20} = \frac{80}{100} = 0.8}$ 。 - + +$$ +\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} +$$ + +上面的例子,模型预测的召回率为: $\small{\frac{80}{80 + 20} = \frac{80}{100} = 0.8}$ 。 + 4. **F1 分数**(F1 Score)。F1 分数是精确率和召回率的调和平均数,它在精确率和召回率之间寻求一个平衡,尤其适用于在两者之间有权衡的情况。 - $$ - \text{F1 Score} = \frac{2}{\frac{1}{\text{Precision}} + \frac{1}{\text{Recall}}} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precesion} + \text{Recall}} - $$ - - 上面的例子,模型预测的F1 分数为: $\small{2 \times \frac{0.7273 * 0.8}{0.7273 + 0.8} = 0.76}$ 。 - -5. **特异度**(Specificity)和**假正例率**(False Positive Rate)。特异度用于衡量的是在所有实际为负类的样本中,被模型正确预测为负类的比例,类似于召回率,只不过针对的是负类样本。 - $$ - \text{Specificity} = \frac{\text{TN}}{\text{TN} + \text{FP}} - $$ - - $$ - \text{False Positive Rate} = 1 - \text{Specificity} - $$ - - 上面的例子,模型预测的特异度为: $\small{\frac{870}{870 + 30} = \frac{870}{900} = 0.97}$ 。 - + +$$ +\text{F1 Score} = \frac{2}{\frac{1}{\text{Precision}} + \frac{1}{\text{Recall}}} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precesion} + \text{Recall}} +$$ + +上面的例子,模型预测的F1 分数为: $\small{2 \times \frac{0.7273 * 0.8}{0.7273 + 0.8} = 0.76}$ 。 + +5. **特异度**(Specificity)和**假正例率**(False Positive Rate,简称 FPR)。特异度用于衡量的是在所有实际为负类的样本中,被模型正确预测为负类的比例,类似于召回率,只不过针对的是负类样本。 + +$$ +\text{Specificity} = \frac{\text{TN}}{\text{TN} + \text{FP}} +$$ + +$$ +\text{FPR} = 1 - \text{Specificity} +$$ + +上面的例子,模型预测的特异度为: $\small{\frac{870}{870 + 30} = \frac{870}{900} = 0.97}$ 。 + 6. **ROC** 和 **AUC**。 - **ROC**(Receiver Operating Characteristic Curve)绘制了召回率与假正例率的关系,如下图所示。 - + - + - **AUC**(Area Under the Curve)是 ROC 曲线下的面积,衡量模型区分正类和负类的能力。AUC 值的范围是 $\small[0, 1]$ ,值越接近 1,表示模型区分正负类的能力越强。0.5 < AUC < 1,说明我们的模型优于随机猜测,只要这个分类器(模型)妥善设置阈值的话,就有预测价值。AUC = 0.5,说明我们的模型跟随机猜测一样,模型没有预测价值。AUC < 0.5,模型比随机猜测还差,但只要总能反向预测,它的实际效果就优于随机猜测。 对于多分类问题,混淆矩阵的行数和列数都等于类别数,混淆矩阵是一个方阵,也就是说如果有 $\small{n}$ 个类别,那么混淆矩阵就是一个 $\small{n \times n}$ 的方阵。根据上面我们得到的鸢尾花数据集的预测结果,我们先输出真实值和预测值,然后制作对应的混淆矩阵,如下所示。