机器学习模型评估指标-混淆矩阵-精度-召回率-F1分数

本文介绍了机器学习模型的评估指标,包括混淆矩阵、精度、召回率和F1分数。混淆矩阵用于描述模型预测结果的四个基本类别:真阳性、真阴性、假阳性、假阴性。精度关注正确预测为阳性的比例,而召回率关注真正阳性的样本被正确预测的比例。F1分数结合精度和召回率,是两者的调和平均数。根据不同业务需求,可以选择不同的F-β得分来平衡精度和召回率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在复盘udacity 的机器学习的课程,现在来整理一下关于机器学习模型的评估指标的相关知识。

不同数据集采用不同的模型进行训练,会得到完全不同的效果,那么如何衡量一个模型是否适合该数据集呢?在数据集训练后可以对一些指标进行运算,观察实际的效果,进行调整参数或者更换模型等等。

学习模型的评估指标常用的有几种:F-β得分(F1得分,F2得分等等,根据不同的业务实际需求来指定适合的β值),ROC 曲线,回归指标包含:平均绝对误差,均方误差,R2分数等等

1 混淆矩阵

上图为检测特定疾病的例子,如果一个人检测出生病,那么成为阳性,如果检测结果是未生病则为阴性,阳性分为真阳性和假阳性,阴性分为真阴性和假阴性.

如果一个病人检测出生病,则为真阳性 (True Positive ,TP)

如果一个病人检测为健康,则为假阴性(False Negative,FN);

如果一个健康人检测出生病,称为假阳性 (False Positive,FP);

如果一个健康人检测为健康,称为真阴性(True Negative,TN)

由上面四种状态构成的矩阵称之为混淆矩阵。

再看一个检测垃圾邮件的例子:

使用scikit-learn库中的SVC类创建一个多分类模型来识别"Labeled Faces in the Wild"(LFW)人脸据集,首先需要对据进行预处理,包括特征提取(如PCA降维)、划分训练集和测试集,然后构建支持向量机(SVM)模型,选择适当的核函(如线性、多项式或径向基函RBF)。 以下是基本步骤: 1. **导入所需的库**: ```python import numpy as np from sklearn.datasets import fetch_lfw_people from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from sklearn.svm import SVC from sklearn.metrics import accuracy_score, recall_score, f1_score ``` 2. **加载和预处理据**: ```python lfw = fetch_lfw_people(min_faces_per_person=70) X, y = lfw.data, lfw.target le = LabelEncoder() y_encoded = le.fit_transform(y) X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.2, random_state=42) ``` 3. **创建SVC模型并训练**: ```python svc_model = SVC(kernel='rbf', C=1.0) # 根据需求调整kernel和C参 svc_model.fit(X_train, y_train) ``` 4. **进行预测并评估**: ```python y_pred = svc_model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) recall = recall_score(y_test, y_pred, average='weighted') f1 = f1_score(y_test, y_pred, average='weighted') print(f"Accuracy: {accuracy:.2%}") print(f"Recall: {recall:.2%}") print(f"F1 Score: {f1:.2%}") ``` 5. **找出最具代表性的样本**: - LFW通常会提供一些示例图像,你可以查看`lfw.images`属性以及对应的标签`lfw.target_names`来找到某些特定人物的关键图片。 为了找出最具代表性的样本,可以考虑计算模型预测最不确定(预测概率接近)的样本,或者直接查看错误分类的例子,从中分析哪些特征可能导致了混淆。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值