sklearn中的metrics--常见的损失函数

sklearn中的metric中共有70+种损失函数,让人目不暇接,其中有不少冷门函数,如brier_score_loss,如何选择合适的评估函数,这里进行梳理。

文章目录

  • 分类评估指标
    • 准确率Accuracy:函数accuracy_score
    • 精确率Precision:函数precision_score
    • 召回率Recall: 函数recall_score
    • F1-score:函数f1_score
    • 受试者响应曲线ROC
    • AMI指数(调整的互信息指数):adjusted_mutual_info_score
  • 回归评估
    • 平均绝对误差 MAE:函数mean_absolute_error
    • 平均平方误差 MSE:函数mean_squared_error
    • 均方根误差 RMSE
    • R2
  • 未完成指标列表

分类评估指标

  • TP:预测为正向(P),实际上预测正确(T),即判断为正向的正确率
  • TN:预测为负向(N),实际上预测正确(T),即判断为负向的正确率
  • FP:预测为正向(P),实际上预测错误(F),误报率,即把负向判断成了正向
  • FN:预测为负向(N),实际上预测错误(F),漏报率,即把正向判断称了负向
Positive Negative
True TP 真阳性 TN 真阴性
False FP 假阳性 FN 假阴性

准确率Accuracy:函数accuracy_score

A C C = T P + T N T P + T N + F P + F N ACC= \frac{TP+TN}{TP+TN+FP+FN} ACC=TP+TN+FP+FNTP+TN

分类准确率分数指的是所有分类正确的百分比。
缺点:(1)无法告知响应值的潜在分布,也无法告知分类器错误。
(2) 在数据集不平衡的时候,不太能反映模型优劣。

例如:分类问题的数据集中本来就有97% 示例是属于X,只有另外3%不属于X,所有示例都被分类成X的时候,准确率仍然高达97%,但这没有任何意义。

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

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

精确率Precision:函数precision_score

P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP
作用: 预测正向的数据里有多少预测正确。在癌症,广告转换率的时候需要用到。

召回率Recall: 函数recall_score

R e c a l l = T P T P + T N Recall = \frac{TP}{TP+TN} Recall=TP+TNTP
作用:预测正向的数据中,有多少预测正确

F1-score:函数f1_score

精确率和召回率的调和均值。
F 1 = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F1 = \frac{2*Precision*Recall}{Precision + Recall} F1=Precision+Recall2PrecisionRecall

受试者响应曲线ROC

AMI指数(调整的互信息指数):adjusted_mutual_info_score

AMI是基于预测簇响亮与真实簇响亮的互信息分数衡量相似度的。AMI越大,相似度越高。AMI接近于0表示簇向量是随机分配的。MI(互信息指数)和NMI(标准化的互信息指数)不符合簇向量随机分配的理论,随着分配簇的个数增加,MI和NMI也会趋于增加,AMI的值会一直接近于0。
A M I ( U , V ) = [ M I ( U , V ) − E ( M I ( U , V ) ) ] / [ a v g ( H ( U ) , H ( V ) ) − E ( M I ( U , V ) ) ] AMI(U, V) = [MI(U, V) - E(MI(U, V))] / [avg(H(U), H(V)) - E(MI(U, V))] AMI(U,V)=[MI(U,V)E(MI(U,V))]/[avg(H(U),H(V))E(MI(U,V))]

回归评估

平均绝对误差 MAE:函数mean_absolute_error

平均绝对误差MAE(Mean Absolute Error)又被称为 范数损失(l1-norm loss)。
M S E = 1 m ∑ i = 1 m ∣ y i − y ^ ∣ MSE = \frac{1}{m}\sum_{i=1}^m |y^i - \hat{y}| MSE=m1i=1myiy^

平均平方误差 MSE:函数mean_squared_error

平均平方误差 MSE(Mean Squared Error)又被称为 范数损失(l2-norm loss)。
M S E = 1 m ∑ i = 1 m ( y i − y ^ ) 2 MSE = \frac{1}{m}\sum_{i=1}^m (y^i-\hat{y})^2 MSE=m1i=1m(yiy^)2

均方根误差 RMSE

均方根误差RMSE(Root Mean Squared Error)
R M S E = 1 m ∑ i = 1 m ( y i − y ^ ) 2 RMSE = \sqrt{\frac{1}{m}\sum_{i=1}^{m}(y^i - \hat{y})^2} RMSE=m1i=1m(yiy^)2
缺点:加大了预测不准的评估项的惩罚。

R2

未完成指标列表

~~'accuracy_score',~~ 
~~'adjusted_mutual_info_score',~~ 
'adjusted_rand_score',
'auc',
'average_precision_score',
'balanced_accuracy_score',
'calinski_harabasz_score',
'check_scoring',
'classification_report',
'cluster',
'cohen_kappa_score',
'completeness_score',
'ConfusionMatrixDisplay',
'confusion_matrix',
'consensus_score',
'coverage_error',
'dcg_score',
'davies_bouldin_score',
'DetCurveDisplay',
'det_curve',
'euclidean_distances',
'explained_variance_score',
'f1_score',
'fbeta_score',
'fowlkes_mallows_score',
'get_scorer',
'hamming_loss',
'hinge_loss',
'homogeneity_completeness_v_measure',
'homogeneity_score',
'jaccard_score',
'label_ranking_average_precision_score',
'label_ranking_loss',
'log_loss',
'make_scorer',
'nan_euclidean_distances',
'matthews_corrcoef',
'max_error',
~~'mean_absolute_error',~~ 
'mean_squared_error',
'mean_squared_log_error',
'mean_poisson_deviance',
'mean_gamma_deviance',
'mean_tweedie_deviance',
'median_absolute_error',
'mean_absolute_percentage_error',
'multilabel_confusion_matrix',
'mutual_info_score',
'ndcg_score',
'normalized_mutual_info_score',
'pair_confusion_matrix',
'pairwise_distances',
'pairwise_distances_argmin',
'pairwise_distances_argmin_min',
'pairwise_distances_chunked',
'pairwise_kernels',
'plot_confusion_matrix',
'plot_det_curve',
'plot_precision_recall_curve',
'plot_roc_curve',
'PrecisionRecallDisplay',
'precision_recall_curve',
'precision_recall_fscore_support',
~~'precision_score',~~ 
'r2_score',
'rand_score',
~~'recall_score',~~ 
'RocCurveDisplay',
'roc_auc_score',
'roc_curve',
'SCORERS',
'silhouette_samples',
'silhouette_score',
'top_k_accuracy_score',
'v_measure_score',
'zero_one_loss',
'brier_score_loss',

你可能感兴趣的:(机器学习(吴恩达课程))