精华内容
下载资源
问答
  • roc_auc_score函数
    2021-01-15 03:01:43

    首先,roc_auc_score函数需要具有相同形状的输入参数。sklearn.metrics.roc_auc_score(y_true, y_score, average=’macro’, sample_weight=None)

    Note: this implementation is restricted to the binary classification task or multilabel classification task in label indicator format.

    y_true : array, shape = [n_samples] or [n_samples, n_classes]

    True binary labels in binary label indicators.

    y_score : array, shape = [n_samples] or [n_samples, n_classes]

    Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of decisions (as returned by “decision_function” on some classifiers).

    现在,输入的是真实和预测的分数,而不是您在发布的示例中使用的培训和标签数据。详细信息,model.fit(X_important_train, y_train)

    model.score(X_important_train, y_train)

    # this is wrong here

    roc_auc_score(X_important_train, y_train)

    你应该这样做:y_pred = model.predict(X_test_data)

    roc_auc_score(y_true, y_pred)

    更多相关内容
  • ROC曲线封装函数 # 画ROC曲线函数 def plot_roc_curve(y_true, y_score): """ y_true:真实值 y_score:预测概率。注意:不要传入预测label!!! """ from sklearn.metrics import roc_curve import ...

    画ROC曲线封装函数

    # 画ROC曲线函数
    def plot_roc_curve(y_true, y_score):
        """
        y_true:真实值
        y_score:预测概率。注意:不要传入预测label!!!
        """
        from sklearn.metrics import roc_curve
        import matplotlib.pyplot as plt
        fpr,tpr,threshold = roc_curve(y_true, y_score, pos_label=1)
        plt.xlabel('False Positive Rate')
        plt.ylabel('Ture Positive Rate')
        plt.title('roc curve')
        plt.plot(fpr,tpr,color='b',linewidth=0.8)
        plt.plot([0,1], [0,1], 'r--')
    

    计算AUC、画ROC曲线

    在这里插入图片描述在这里插入图片描述

    踩坑

    如果传入的不是预测概率而是label,画出的ROC曲线会只有一个折线!!!比如逻辑回归会将预测概率以阈值转换为预测label,如果传入的不是概率而是预测label,如下面代码所示会导致画的ROC曲线只有一个折线:
    在这里插入图片描述

    展开全文
  •   了解一个函数首先看这个函数的功能,也就是这个函数的参数有哪些,这个函数的返回值是哪些。...accuracy_score()函数 1、函数功能 分类正确率分数,函数返回一个分数,这个分数或是正确的比.

      了解一个函数首先看这个函数的功能,也就是这个函数的参数有哪些,这个函数的返回值是哪些。其次和这个函数类似的函数之间的对比,什么情况下用什么、用哪个会更好(减少调用的时间,数据的存储决定怎么调用等等)。最后就是列举一些这个函数的例子,确保达到会用的程度。熟悉函数的这些含义是用好它的前提,因此,非常有必要去总结这些函数。
      熟悉这些函数的方法就是看官方文档的注释,理解不透的就是看相关博客啦!

    • accuracy_score()函数
      1、函数功能
      分类正确率分数,函数返回一个分数,这个分数或是正确的比例,或是正确的个数。
      2、函数原型

      accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None):

      3、函数参数解读
       - y_true:正确输出值。y_pred:经过网络的预测值,分类器输出值。
        y_treue和y_pred可以选择的类型一样,包括:一维数组、矩阵。
        - normalize:normalize是布尔类型参数,如果是False的话,函数就返回样本分类的正确数量。如果是True的话,返回分类正确率。默认情况下数True的,也就是返回正确率。
        - sample_weight:样本的权重,默认是None。
      4、官方文档的例子

        > from sklearn.metrics import accuracy_score
        > y_pred = [0, 2, 1, 3]
        > y_true = [0, 1, 2, 3]
        > accuracy_score(y_true, y_pred)
        0.5
        > accuracy_score(y_true, y_pred, normalize=False)
        >2
        
        >In the multilabel case with binary label indicators:
        > import numpy as np
        > accuracy_score(np.array([[0, 1], [1, 1]]), np.ones((2, 2)))
        0.5
        """
    

    • recall_score()函数
      1、函数功能
      计算召回率,就是正例被分为正例的比例。函数返回一个float类型的数字或数组。在二分类任务中,召回率表示被分为正例的个数占所有正例个数的比例;如果是多分类的话,就是每一类的平均召回率。

      2、函数原型

      recall_score(y_true, y_pred, *, labels=None, pos_label=1, average=‘binary’,
      sample_weight=None, zero_division=“warn”):

      3、函数参数解读

       F1-score:    2*(P*R)/(P+R)
       
       精确度P 为 TP/(TP+FP)
       
       召回率R TP/(TP+FN)
      
      • y_truey_pred:正确输出值,y_pred:经过网络的预测值,分类器输出值。
      • pos_label: 这个参数设置为binary并且数据是binary时,返回二分类的分数。如果数据是多分类或者多标签时,返回 labels=[pos_label] 的标签分数。
      • average:计算F1分数,根据average的不同取值,F1的计算方法也不同。对于多类/多标签目标,此参数是必需的。如果为None,则返回每个班级的分数。否则,这将确定对数据执行的平均类型:
        'binary':返回pos_label所表示类的结果。这个仅仅在二分类上有用。
        'micro':通过先计算总体的TP,FN和FP的数量,再计算F1。
        'macro':分布计算每个类别的F1,然后做平均(各类别F1的权重相同)。
        'weighted':计算每个标签的metrics,并找到它们的加权平均值。这个改变‘macro’去解释标签不平衡,这可能导致F分数不在precision和recall之间。
        'samples':计算每个实例的metrics,并找到他们的平均值。
      • samples weight:样本权重。
      • zero_division:参数可选的取值有"warn", 0 or 1, 默认是"warn"。设置出现0除法返回的值。

      4、官方文档的例子

     Examples
        --------
        >>> from sklearn.metrics import recall_score
        >>> y_true = [0, 1, 2, 0, 1, 2]
        >>> y_pred = [0, 2, 1, 0, 0, 1]
        
        # 结果1
        >>> recall_score(y_true, y_pred, average='macro')
        0.33...
        # 结果2 
        >>> recall_score(y_true, y_pred, average='micro')
        0.33...
        # 结果3
        >>> recall_score(y_true, y_pred, average='weighted')
        0.33...
        
        # 结果4
        >>> recall_score(y_true, y_pred, average=None)
        array([1., 0., 0.])
        """
    

    在这里我们可以列一个表格,根据y_true = [0, 1, 2, 0, 1, 2]和y_pred = [0, 2, 1, 0, 0, 1],可以得到下列的混淆矩阵,不懂怎么列的评论。

    类0 类1 类2 总计
    类 0 2002
    类1 1012
    类2 0 202
    总计 3216
    1)结果2,average=‘micro’,此时F1分数的计算方法是计算总的TP,FN和FP的数量,再计算F1。(当average=‘macro’时,是分别求出每个类的F1分数,之后求均值。可使用相似的列表格方法求出)
    类0类1类3总数
    TP2002
    FP1214
    FN0224

    精确度P 为 TP/(TP+FP)=2/6=1/3; 召回率R TP/(TP+FN)=2/6=1/3。

    F1-score: 2(PR)/(P+R)=1/3

    2)结果4中,当average=None时,结果将返回每个类分数,y_true是三分类问题,那么返回的结果数组就是三维的。类0、1、2的实际个数都为2,预测分类中类0、1、2分类正确的个数分别是2、0、0(表格对角线),因此数组展示的结果就是2/2、0/2、0/2,即1、0、0( array([1., 0., 0.]))。

        >>> y_true = [0, 0, 0, 0, 0, 0]
        >>> recall_score(y_true, y_pred, average=None)
        array([0.5, 0. , 0. ])
        # 结果5
        >>> recall_score(y_true, y_pred, average=None, zero_division=1)
        array([0.5, 1. , 1. ])
    

    3)结果5中,zero_division=1,将结果为0的设置为1。

    • precision_score()函数
      1、函数功能
      精确度 =tp / (tp + fp)。
      2、函数原型
    def precision_score(y_true, y_pred, *, labels=None, pos_label=1,
                        average='binary', sample_weight=None,
                        zero_division="warn"):
    

    3、函数参数解读
    和上述的recall_score()函数的参数类似。
    4、官方文档的例子
    和上述的recall_score()函数类似。

    • roc_auc_score()函数
      1、函数功能
      计算auc,auc就是曲线roc下面积,这个数值越高,则分类器越优秀。这个曲线roc所在坐标轴的横轴是FPR,纵轴是TPR。TPR = TP/P = TP/(TP+FN)、FPR = FP/N = FP/(FP+TN)。
      2、函数原型
    def roc_auc_score(y_true, y_score, *, average="macro", sample_weight=None,
                      max_fpr=None, multi_class="raise", labels=None):
    
    展开全文
  • roc_auc_score则是不需要求这两个值,直接将预测概率值和label输入到函数中便可以求得auc值,省略了求这两个值的步骤,由函数本身代求。 这是我找很久的解释博客,才弄明白。 希望能帮助到大家。 ...

    在一般求解AUC时需要求得混沌矩阵 及:

    metrics中的auc 需要输入已知求得的 fprtpr 值。

    roc_auc_score则是不需要求这两个值,直接将预测概率值label输入到函数中便可以求得auc值,省略了求这两个值的步骤,由函数本身代求

    这是我找很久的解释博客,才弄明白。 希望能帮助到大家。

    展开全文
  • roc_auc_score 传参

    2021-03-12 10:59:51
    from sklearn.metrics import roc_auc_score y_true = [0, 0, 1, 1, 1] y_score = [0.1, 0.2, 0.7, 0.8, 0.9] print(roc_auc_score(y_true, y_score)) y_score = [0.7, 0.8, 0.9, 0.1, 0.2] print(roc_auc_score(y...
  • sklearn.metrics.roc_auc_score()函数用法

    千次阅读 2020-08-02 12:02:21
    sklearn.metrics.roc_auc_score(y_true, y_score, *, average='macro', sample_weight=None, max_fpr=None, multi_class='raise', labels=None) 二分类 y_true:样本的真实标签,形状(样本数,) y_score:预测为1...
  • import numpy as np from sklearn import metrics import matplotlib.pyplot as plt ...fpr,tpr,thresholds=metrics.roc_curve(label,scores) print('FPR:',fpr) print('TPR:',tpr) print('thresholds:',thresho
  • roc_auc_score sigmoid

    2021-11-03 09:35:04
    sklearn中使用roc_auc_score()函数计算auc。 group true得是{0,1}n\{0,1\}^n{0,1}n, pred 理论上得是每个元素都是概率。用于多标签分类的话是得用sigmoid 激活后的(0,1)之间的概率值。 但是sklearn是可以直接没有...
  • 运行roc_auc_score(y_true, y_scores)报错

    千次阅读 2020-03-24 16:02:40
    关于运行roc_auc_score(y_true, y_scores)报错:ValueError: multiclass format is not supported,原因在于ROC只能用于二分类问题,所以,对于多分类问题,我们不用ROC曲线去评估,可以选用accuracy_score进行评估 ...
  • sklearn:aucroc_curve、roc_auc_score_NockinOnHeavensDoor的博客-CSDN博客 切记: 1。 train的时候,若出现valuerror,只出现一个class在y_true的情况时,可通过提高batchsize的大小解决,这种情况的发生是...
  • AUC并不总是ROC曲线下的面积 . 曲线下面积是 some 曲线下的(抽象)区域,因此它比AUROC...请参阅 roc_auc_score 的sklearn源:def roc_auc_score(y_true, y_score, average="macro", sample_weight=None):# docstring...
  • 网上的举例基本都是预测的概率作为输入 而对于预测的标签为输入时如何计算出来的不是很理解 于是做了些实验: import numpy as np from sklearn.metrics import roc_auc_score ...roc_auc_score(y_...
  • 写在前面: sklearn计算auc(一):使用sklearn.metrics.roc_auc_score()计算二分类的auc 1.sklearn.metrics.roc_auc_score()计算多分类auc的用法 2.例子
  • 1、accuracy_score 分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。sklearn.metrics.accuracy_...
  • accuracy_score 分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。 形式: sklearn.metrics....
  • accuracy_score 分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。 形式: sklearn.metrics....
  • 关于ROC曲线和AUC的计算scikit-learn工具包中主要提供了以下几个函数: 1、roc_curve函数(只能用于二分类):根据模型预测结果(概率,置信度等)和样本真实标签,按照模型预测结果降序排序依次选择阈值,基于阈值...
  • roc_auc_score confusion_matrix 1. accuracy_score 分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的...
  • 1.ROC-AUC 和PR-AUC定义 AUC: 随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。 ROC-AUC 指的是 ROC 曲线下的面积,...
  • accuracy_score分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。形式:sklearn.metrics.accuracy_...
  • accuracy_score 分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。 形式: sklearn.metrics....
  • # 利用sklearn自建评价函数from sklearn.model_selection import train_test_splitfrom sklearn.metrics import roc_auc_scorefrom keras.callbacks import Callbackclass RocAucEvaluation(Callback):d...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,185
精华内容 2,474
关键字:

roc_auc_score函数

友情链接: Bresamham.rar