sklearn中的metrics.roc_auc_score评价指标

参数说明

from sklearn.metrics import roc_auc_score

roc_auc_score(y_true, y_score, *, average='macro', sample_weight=None,
 max_fpr=None, multi_class='raise', labels=None)
 计算曲线ROC的面积

 - Parameters(参数)
    y_true : array-like of shape (n_samples,) or (n_samples, n_classes)
    真实数据
    二分类和多分类需要带有shape (n_samples)的标签,而多标签情况需要带有shape (n_samples, n_classes)
    的二进制标签。

    y_score : array-like of shape (n_samples,) or (n_samples, n_classes)
    预测结果数据
    1.在二分类的情况下,它对应于形状数组(n_samples,),可以提供概率估计和非阈值决策值
    概率估计值对应于具有更大标签的类别的概率,即estimator.classes_ [1],
    因此是estimator.predict_proba(X,y)[:, 1]。
    决策值对应于estimator.decision_function(X,y)的输出。
    2.在多分类情况下,它对应于由predict_proba方法提供的概率估计的形状数组(n_samples,n_classes)
    每个sample概率估计值为1;此外,每一个sample的概率估计值的顺序必须与y_true中标签的顺序相对应。
    3.在多标签情况下,它对应于一个形状数组(n_samples,n_classes)。
    概率估计由predict_proba方法提供,非阈值决策值由decision_function方法提供。

    average : {‘micro’, ‘macro’, ‘samples’, ‘weighted’} or None, default=’macro’
    当y_true是二进制时,这个参数将被忽略
    'macro':简单地计算 binary metrics (二分指标)的平均值,赋予每个类别相同的权重
    'micro':给每个 sample-class pair (样本类对)对 overall metric (总体指数)
    (sample-class 权重的结果除外) 等同的贡献。除了对每个类别的 metric 进行求和之外,这
    个总和构成每个类别度量的 dividends (除数)和 divisors (除数)计算一个整体商。 在
    multilabel settings (多标签设置)中,Micro-averaging 可能是优先选择的,包括要忽略
    majority class (多数类)的 multiclass classification (多类分类)
    'weighted': 通过计算其在真实数据样本中的存在来对每个类的 score 进行加权的 binary metrics (二分指标)
    的平均值来计算类不平衡。
    'samples':仅适用于多标签问题。它不计算每个类别的 measure,而是计算评估数据中的每个样本
    的真实和预测类别的 metric (指标),并返回 (sample_weight-weighted) 加权平均。
    sample_weight :array-like of shape (n_samples,), default=None
    样品权重

    sample_weight : array-like of shape (n_samples,), default=None
    如果不为None,则返回范围为[0,max_fpr]的标准化部分AUC
    对于多分类情况,max_fpr应该等于None或1.0

    multi_class:{‘raise’, ‘ovr’, ‘ovo’}, default=’raise’
    仅用于多分类,默认值会引发错误,因此必须显式传递'ovr'或'ovo'
    'ovr':一对多
    'ovo':一对一
    这两个概念想了解的参考为2.逻辑回归部分

    labels : array-like of shape (n_classes,), default=None    
    仅用于多分类,标签列表索引了y_score中的类,如果为None,则使用y_true中标签的数字或字典顺序

 - 返回
    AUC值

获取auc的方式

二分类:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score
X, y = load_breast_cancer(return_X_y=True)
clf = LogisticRegression(solver="liblinear", random_state=0).fit(X, y)

from sklearn.metrics import roc_auc_score
#方式一
roc_auc_score(y, clf.predict_proba(X)[:, 1])
#方式二
roc_auc_score(y, clf.decision_function(X))

sklearn中的metrics.roc_auc_score评价指标_第1张图片

多分类:

from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
clf = LogisticRegression(solver="liblinear").fit(X, y)
clf.predict_proba(X)   

from sklearn.metrics import roc_auc_score
#multi_class='ovr'
roc_auc_score(y, clf.predict_proba(X), multi_class='ovr')

2.4 sklearn中的metrics.roc_auc_score评价指标_哎呦-_-不错的博客-CSDN博客_metrics.roc_auc_score

你可能感兴趣的:(机器学习与算法,sklearn,人工智能,python)