sklearn.metrics中的评估方法介绍

  1. accuracy_score

分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。

  • 形式
sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

normalize:默认值为True,返回正确分类的比例;如果为False,返回正确分类的样本数 

 

  1. recall_score

召回率 =提取出的正确信息条数 /样本中的信息条数。通俗地说,就是所有准确的条目有多少被检索出来了。

  • 形式
sklearn.metrics.recall_score(y_true, y_pred, labels=None, pos_label=1,average='binary', sample_weig

 

 

  1. roc_curve

ROC曲线指受试者工作特征曲线/接收器操作特性(receiver operating characteristic,ROC)曲线,是反映灵敏性和特效性连续变量的综合指标,是用构图法揭示敏感性和特异性的相互关系,它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真正例率(也就是灵敏度)(True Positive Rate,TPR)为纵坐标,假正例率(1-特效性)(False Positive Rate,FPR)为横坐标绘制的曲线。

ROC观察模型正确地识别正例的比例与模型错误地把负例数据识别成正例的比例之间的权衡。TPR的增加以FPR的增加为代价。ROC曲线下的面积是模型准确率的度量,AUC(Area under roccurve)。

纵坐标真正率(True Positive Rate , TPR)或灵敏度(sensitivity)

TPR = TP /(TP + FN)  (正样本预测结果数 / 正样本实际数)

横坐标假正率(False Positive Rate , FPR)

FPR = FP /(FP + TN) (被预测为正的负样本结果数 /负样本实际数)

  • 形式:
sklearn.metrics.roc_curve(y_true,y_score, pos_label=None, sample_weight=None, drop_intermediate=True)

 

该函数返回这三个变量:fpr,tpr,和阈值thresholds;

这里理解thresholds:

分类器的一个重要功能“概率输出”,即表示分类器认为某个样本具有多大的概率属于正样本(或负样本)。

“Score”表示每个测试样本属于正样本的概率。

接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。其实,我们并不一定要得到每个测试样本是正样本的概率值,只要得到这个分类器对该测试样本的“评分值”即可(评分值并不一定在(0,1)区间)。评分越高,表示分类器越肯定地认为这个测试样本是正样本,而且同时使用各个评分值作为threshold。我认为将评分值转化为概率更易于理解一些。

 

 

 

 

 

 

转自:https://blog.csdn.net/xieganyu3460/article/details/81205993

在使用机器学习模型进行预测任务时,评估模型的性能是非常重要的。scikit-learn(sklearn)是一个常用的Python机器学习库,提供了许多评估模型性能的工具。下面介绍几个常用的评估指标和如何使用sklearn.metrics进行评估。 1. 混淆矩阵 混淆矩阵是评估分类模型性能的基本工具。它是一个N x N的矩阵,N表示分类的数目。对于二分类问题,混淆矩阵如下所示: | | 预测为正例 | 预测为反例 | | --- | --- | --- | | 真实为正例 | TP | FN | | 真实为反例 | FP | TN | 其,TP表示真正例(True Positive)、FN表示假反例(False Negative)、FP表示假正例(False Positive)、TN表示真反例(True Negative)。 使用sklearn.metrics的confusion_matrix函数可以方便地计算混淆矩阵。例如,假设有一个二分类模型预测结果为y_pred,真实标签为y_true,可以使用以下代码计算混淆矩阵: ``` from sklearn.metrics import confusion_matrix confusion_matrix(y_true, y_pred) ``` 2. 准确率、召回率和F1值 准确率、召回率和F1值是三个常用的评估指标。它们的计算公式如下: 准确率(Accuracy):(TP + TN) / (TP + FP + TN + FN) 召回率(Recall):TP / (TP + FN) F1值:2 * Precision * Recall / (Precision + Recall) 其,Precision表示精确率,定义为TP / (TP + FP)。 sklearn.metrics提供了accuracy_score、precision_score、recall_score和f1_score函数可以方便地计算这些指标。例如,可以使用以下代码计算准确率、召回率和F1值: ``` from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score accuracy = accuracy_score(y_true, y_pred) precision = precision_score(y_true, y_pred) recall = recall_score(y_true, y_pred) f1 = f1_score(y_true, y_pred) ``` 3. ROC曲线和AUC值 ROC曲线是另一个常用的评估分类模型性能的工具。ROC曲线是以假正例率(False Positive Rate,FPR)为横轴,真正例率(True Positive Rate,TPR)为纵轴绘制的曲线。使用sklearn.metrics的roc_curve函数可以方便地计算ROC曲线。例如,可以使用以下代码计算ROC曲线: ``` from sklearn.metrics import roc_curve fpr, tpr, thresholds = roc_curve(y_true, y_pred) ``` AUC(Area Under Curve)是ROC曲线下的面积,是一个介于0和1之间的值,AUC值越大,模型性能越好。使用sklearn.metrics的roc_auc_score函数可以方便地计算AUC值。例如,可以使用以下代码计算AUC值: ``` from sklearn.metrics import roc_auc_score auc = roc_auc_score(y_true, y_pred) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值