精华内容
下载资源
问答
  • 代价敏感学习

    万次阅读 2020-07-13 04:32:40
    关于代价敏感学习及自己的不成熟想法

    介绍

    代价敏感的学习是分类中错误产生导致不同的惩罚力度时该如何训练分类器。通常,不同的代价用一个N×NN×N的矩阵CostCost表示,其中NN 是类别的个数。Cost[i,j]Cost_{[i, j]}表示将一个$i 类的对象错分到j$ 类中的代价。代价敏感分类就是为不同类型的错误分配不同的代价,使得在分类时,高代价错误产生的数量和错误分类的代价总和最小。常用的方法有如下几种。

    1. 调整样本分布(Stratification)。这是一种传统的方法,它根据错误分类的代价,按照比例变换训练集中类别的频率。其缺点是改变了样本的分布情况,有时会影响算法的性能。
    2. 元代价(MetaCost)。这是一种将一般分类模型转换成代价敏感模型的方法。它通过一个“元学习”过程,根据最小期望代价修改训练样本的类标记,并使用修改过的训练集重新学习新的模型。
    3. 代价敏感决策。首先在训练集中多次采样,生成多个模型;再根据多个模型,得到测试样本属于每个类别的概率;然后计算测试样本的所有错误分类代价,并根据最小代价得到类标记。一种典型的做法是利用集成学习技术。

    类别

    其中 按照对问题的解决方法的不同,代价敏感学习的算法研究又可以分成三类。

    第一类

    第一类代价敏感的学习方法关注于如何直接构造一个代价敏感的学习模型,对不同的分类器模型研究者们提出了不同的解决办法,它们包括
    (1)决策树:Knoll 等和Bradford 等为决策树提出了代价敏感的剪枝方法,Bradford 等研究了在代价敏感的条件下如何对决策树进行剪枝使得损失达到最小,研究表明基于拉普拉斯方法的剪枝方法能够取得最好的
    效果,Drummond 和Holte 研究了代价敏感学习的决策树的节点分裂
    方法。
    (2) Boosting:Fan 等研究着提出了代价敏感的Boosting 算法Ada-Cost
    (3)神经网络:Geibel 和Wysotzki 提出了基于Perceptron 分类算法的代价敏感的学习方法,在文章中作者对不可分的类提出了代价敏感的参数更新规则。例如Kukar和Kononenko为神经网络提出了新的后向传播算法,使之能够满足代价敏感学习的要求。
    (4) Fumera 和Roli[37]以及Bradford 等从结构风险最小的角度来看代价敏感问题,提出了代价敏感的支持向量机分类算法。

    第二类

    第二类代价敏感的学习方法基于对分类结果的后处理,即按照传统的学习方法学习一个分类模型,然后对其分类结果按照贝叶斯风险理论对结果进行调整,以达到最小的损失。和第一类代价敏感学习方法相比,这种方法的优点在于其不依赖于所使用的具体的分类器。Domingos 提出了一种叫做MetaCost 的过程,它把底层的分类器看成一个黑箱子,不对分类器做任何的假设和改变,MetaCost可以应用到任何个数的基分类器和任何形式的代价矩阵上。给定一个样例x,基分类器得出它属于第j个类的概率为Pr(j|x),这样,认为x 属于第i个类的贝叶斯最优预测的风险为:R(i|x) = ΣP(j|x)C(i,j)(C(i,j)是把属于类别j的分为类别i的代价)。

    第三类

    第三种代价敏感的学习方法基于传统的学习模型,通过改变原始训练数据的分布来训练得到代价敏感的模型。Chan 和Stolfo 提出了层次化模型(Stratification),把分布不均匀的训练数据调整为正负例均匀分布的数据。Zadrozny等研究者基于cost-proportionate 的思想,对训练数据调节权值,在实际应用中,其类似于Boosting 算法,可以通过为分类模型调节权值来进行实现,又可以通过采样(subsampleing)来实现。Abe 等提出了对多类分类问题中如何实现代价敏感的学习进行了探讨,提出了一种新的迭代学习方法。

    开始表演

    下面是本人瞎写的一种基于代价敏感学习的防作弊方法

    用较为常见的一维度数据展示基于代价敏感的卷积神经网络:
    η=an1bn2n=n1+n2 \eta=\frac{\frac{a}{n_1}}{\frac{b}{n_2}} \\ n=n_1+n_2
    其中n为样本总数,n1n_1n2n_2分别表示一维样本中的两个不同群体,其中aabb又分别是n1n_1n2n_2中符合某种条件/不符合某种条件的样本。

    但是其中是由于数据不准确导致aa存在虚假数据,因此以上公式可以认定是不正确的,使用代价敏感卷积神经网络的将其正确分类的其步骤是:

    • 获取一维特征数据集的步骤:对包含样本群体与是否符合条件的原始数据集进行分析,利用统计方法提取样每个样本的特征,获得一维特征数据集;

    • 构造特征矩阵的步骤:利用多粒度的时间窗口将一维特征转换成特征矩阵;

    • 分类预测训练的步骤:将特征矩阵数据集作为输入,选择卷积神经网络结构进行分类
      预测训练;在输出层引入代价敏感机制,利用阈值移动进行反向传播;

    • 利用训练好的分类预测。

    代价敏感卷积神经网络

    (全连接层以及层数表示有点问题)

    展开全文
  • 代价敏感支持向量机

    2021-01-15 07:02:27
    以分类精度为目标的传统分类算法通常假定:每个样本的误分类具有同样...针对此缺隙,并基于标准的SVM,通过在SVM的设计中集成样本的不同误分类代价,提出代价敏感支持向量机(CS-SVM)的设计方法.实验结果表明CS-SVM是有效的.
  • 代价敏感的随机森林

    2019-03-04 16:27:19
    关于代价敏感随机森林的参考文章,主要针对非平衡的数据集
  • 代价敏感属性选择问题的目的是通过权衡测试代价和误分类代价,得到一个具有最小总代价的属性子集。目前,多数代价敏感属性选择方法只考虑误分类代价固定不变的情况,不能较好地解决类分布不均衡等问题。而在大规模...
  • 样本依赖的代价敏感流程预测方法,冯一,吴步丹,本文提出了一种样本依赖的代价敏感流程预测方法。在对流程执行结果进行预测时,基于预测结果可能产生的代价,对预测模型的阈值进
  • 代价敏感曲线理解

    2020-02-15 12:04:50
    2.理解:ROC主要考量均等代价,代价敏感曲线主要考量非均等代价。两者都是衡量某一学习器在不同场景下的综合表现情况,而不是单一场景。ROC通过阈值变化来体现不同场景,即高阈值表现了重视查准率的场景,低阈值则...

    1.参考https://www.zhihu.com/question/63492375

    2.理解:ROC主要考量均等代价,代价敏感曲线主要考量非均等代价。两者都是衡量某一学习器在不同场景下的综合表现情况,而不是单一场景。ROC通过阈值变化来体现不同场景,即高阈值表现了重视查准率的场景,低阈值则重视查全率的场景。代价敏感曲线则是通过P值,即正例的先验概率即原本正例占比的变化来体现不同场景。代价敏感曲线上方直线是根据不同决策阈值下做出的(含有参数P,固定参数),横轴P值确定时,即确定了一种情景,直线对应的点体现了P这种情景下在该阈值下的代价。因此当画出不同阈值下的直线时,某一P下总能找到最小代价进而找出对应的决策阈值。这样每一个P都能对应一个在学习器下的最下代价,进而下方面积就是概率和代价的积分则为期望:该学习器的整体期望或整体表现。

    展开全文
  • 代价敏感错误率与代价曲线 https://www.bilibili.com/video/BV17J411C7zZ?p=21 视频 import torch import os os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" output_score = list(range(12)) ## 定义一个列表里面的...

    代价敏感错误率与代价曲线

    https://www.bilibili.com/video/BV17J411C7zZ?p=21 视频

    import torch
    import os
    os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
    
    output_score = list(range(12))  ## 定义一个列表里面的数字是0-11
    print(output_score)
    
    y = [0,0,0,0,1,0,1,1,0,1,1,1] ## 其中0表示的是5,1表示的不是5,这里是来对应的标签信息的
    print(len(y))
    print(y)
    
    # 设定p,集合中正例比列,这里范围是0-100,所以还要除以100
    p = list(range(0,101,10)) ## 数字是从0开始,然后所对应步长是10,所以是对应的10个数
    p = [i/100 for i in p]   ## 然后这里是转换为0-1之间所对应的数的。
    print(p)
    
    
    # 设定代价
    c01 = 3
    c02 = 2
    
    #设置判断阈值
    theta = 6.5
    # 定义函数输出判断
    # 我们是来判断是5还是不是5,我们是把打分输入后,和对应界限值theta
    def calculate_output_result(output_score,theta):
        output_result = []
        for i in range(len(output_score)): ## 侧量输出分数所对应的长度的为0 -11
            if output_score[i] < theta:  ## 如果小于6.5 则就是0
                output_result.append(0)
            else:
                output_result.append(1) ## 如果是大于6.5则就是1
        return output_result
    output_result = calculate_output_result(output_score,theta) ## 然后是我们调用这个函数来进行测试
    print(output_result)
    
    # 要来统计正例和反例的个数 也就是说其中m+有多少个m-有多少个
    import pandas as pd
    def calculate_m_positive_negative(y):
        result = pd.value_counts(y)
        m_positive = result[1]  ## 其中结果是等于1的值是对应的正比例
        m_nagative = result[0]  ## 其中对应的0是对应的负的比列的过程
        return m_nagative,m_positive
    m_positive,m_negative = calculate_m_positive_negative(y)
    print(m_positive,m_negative)
    
    
    # 计算混淆矩阵圈1,圈2,圈3,圈4
    def calculate_confusion(y,output_result):
        con1 = 0  ## 这里是开始来对混淆矩阵进行初始化的过程的。
        con2 = 0
        con3 = 0
        con4 = 0
        for i in range(len(y)):
            if y [i] == 1:
                if y[i] == output_result[i]:
                    con1 += 1   ## 其中本来是正例,预测也为正例时所对应的情况的
                else:
                    con2 += 1  ###本来是为正例,但是预测为反例时所对应的情况的
            else:
                if y[i] == output_result[i]:
                    con4 += 1   ## 本来是为反列预测也是为反例所对应的情况
                else:
                    con3 += 1   ## 本来为反列,但是预测为正列所对应的情况
        return con1,con2,con3,con4
    con1,con2,con3,con4 = calculate_confusion(y,output_result)
    print(con1,con2,con3,con4)
    

    在这里插入图片描述

    # 求几个数所对应的比列,保留四位小数
    def calculate_FNR_FPR(con1,con2,con3,con4):
        FNR = round(con2/(con1+con2),4)  ## FNR:表示正例中有多少被预测错了,变成了负例
        FPR = round(con3/(con3+con4),4)  ## FPR:表示负列中有多少被预测错了,变成了正例
        return FNR,FPR
    FNR,FPR = calculate_FNR_FPR(con1,con2,con3,con4)
    print(FNR,FPR)
    
    

    在这里插入图片描述

    # 正概率代价
    def calculate_Pcost(p,c01,c02):
        Pcosts = []
        for i in range(len(p)):   ## 其中我们p是对应的10个不同的值,也就是对应的正样本和负样本所对应的概率的不同,其中每个都会是对应一个层本函数
            Pcost = round((p[i]*c01)/(p[i]*c01+(1-p[i])*c02),4)  ## (p[i]*c01+(1-p[i])*c02)这里是来对应的归一化的过程的
            Pcosts.append(Pcost)
        return Pcosts
    Pcosts = calculate_Pcost(p,c01,c02)
    print(Pcosts)
    
    

    在这里插入图片描述

    # 归一化总概率 其中p是对应的不同的正负样本所对应的概率的。
    def calculate_cost_norm(p,c01,c02,FNR,FPR):
        costs_norm = []
        for i in range(len(p)):
            cost_norm = round((FNR*(p[i]*c01)+FPR*(1-p[i])*c02)/(p[i]*c01+(1-p[i])*c02),4)
            costs_norm.append(cost_norm)
        return costs_norm
    costs_norm = calculate_cost_norm(p,c01,c02,FNR,FPR)
    print(costs_norm)  ## 是在p不断的变化的时候每一个p所对应的总的归一化的所对应的概率的。
    
    ## 我们来画出图像
    import matplotlib.pyplot as plt
    def plot_lines(X,Y,color):  ## 首先是来定义的函数的,然后再来进行相应的调用的过程的。
        plt.plot(X,Y,color)
        return
    plot_lines(Pcosts,costs_norm,'r')
    plot_lines(p,costs_norm,"b:")
    plt.show()
    
    ## 这里前面的是对应的一个theta所对应的情况的
    
    ## 后面我们是对应的多个theta所对应的情况的
    
    # 生成多个theta
    thetas = list(range(12))
    thetas = [i+0.5 for i in thetas]  ## 这里的thetas值是从0.5开始的
    print(thetas)   ## 这里是来的到多个theta的是,也就是是所对应的权限的值的过程的。
    
    #定义计算每个theta对应的点的函数,并且存放在列表中
    # output_score是输出相应的分数的值,
    # y是对应的真是的标签
    # calculate_Pcost 正概率所对应的代价
    # calculate_cost_norm:归一化总的概率
    def calculate_Pcost_cost_norm(thetas,output_socre,y,calculate_Pcost,calculate_cost_norm):
        Pcosts_n = []
        costs_norm_n = []
        theta_FPR_FNR = []
        for i in range(len(thetas)):
            theta = thetas[i]  ## 这里是来得到每个theta所对应的值
    
            # 计算输出结果,通过theta来对应的边界,这样就是能够通过相应输入分来标签进行预测
            output_result = calculate_output_result(output_score,theta)
            # print(output_result)  ## 这个预测值是不止一个值的
    
            # 统计正反例个数  通过样本的标签来统计正例和反列所对应的个数的。
            m_positive,m_negative = calculate_m_positive_negative(y)
    
            # 计算混淆矩阵
            con1,con2,con3,con4 = calculate_confusion(y,output_result)
            # print(con1,con2,con3,con4)
    
            # 求FNR,FPR,其中FNR有多少正样本被预测错了,变成了反例,FPR是表示负例样本中有多少被预测错了,变成了正例
            FNR,FPR = calculate_FNR_FPR(con1,con2,con3,con4)
            theta_FPR_FNR[theta]:[FNR,FPR]  ## 通过列表的形式把这这些给存储起来,其中每一个theta都是对应一对[FNR,FRP]所
            ## 对应的值过程的。
    
            #正概率代价  # 这里是来对应的不同的概率的过程
            Pcosts = calculate_Pcost(p,c01,c02)
            Pcosts_n.append(Pcosts)
    
            # 归一化总概率 # 这里也是对应的不同的概率的过程的。
            costs_norm = calculate_cost_norm(p,c01,c02,FNR,FPR)
            costs_norm_n.append(costs_norm)
    
        return Pcosts_n,costs_norm_n,theta_FPR_FNR  ## 其中是每一个theta都是对应一条线,(FNR,FPR)就是对应一条线,
        ## 然后又是对应的不同的概率的,
    # 调用这个函数来进行计算
    Pcosts_n,costs_norm_n,theta_FPR_FNR = calculate_Pcost_cost_norm(thetas,output_score,y,calculate_Pcost,calculate_cost_norm)
    
    ## 这里是来画出线段的过程的。
    for i in range(len(Pcosts_n)):  ## 这里总共是可以得到12条线段的。
        plot_lines(Pcosts_n[i],costs_norm_n[i],'r')
    plt.show()
    
    展开全文
  • 传统数据挖掘分类算法在不平衡数据集上分类效果不佳,可以将代价敏感思想与传统分类算法相结合解决不平衡数据分类问题.但在代价敏感学习中,代价的确定需要足够的先验知识,难以把握.针对上述不足,构造针对不平衡数据...
  • 针对氧化铝蒸发过程故障检测中标注者不切实际的假设和控制参数难以确定问题,提出改进的代价敏感主动学习方法。给出了代价敏感主动学习形式化描述和放松了标注者不切实际的假设。为了提高分类精度和减少标注代价,该...
  • 代价敏感的学习方法

    千次阅读 2019-11-22 23:55:16
    代价敏感的学习方法是机器学习领域中的一种新方法,它主要考虑在分类中,当不同的分类错误会导致不同的惩罚力度时如何训练分类器。例如在医疗中,“将病人误诊为健康人的代价”与“将健康人误诊为病人的代价”不同;...

    代价敏感的学习方法是机器学习领域中的一种新方法,它主要考虑在分类中,当不同的分类错误会导致不同的惩罚力度时如何训练分类器。例如在医疗中,“将病人误诊为健康人的代价”与“将健康人误诊为病人的代价”不同;在金融信用卡盗用检测中,“将盗用误认为正常使用的代价”与将“正常使用误认为盗用的代价”也不同。通常,不同的代价被表示成为一个N×N的矩阵Cost中,其中N 是类别的个数。Cost[i, j]表示将一个i 类的对象错分到j 类中的代价。
    按照对问题的解决方法的不同,对代价敏感学习的算法研究可以分成三类。
    第一类代价敏感的学习方法关注于如何直接构造一个代价敏感的学习模型,对不同的分类器模型研究者们提出了不同的解决办法,它们包括
    (1)决策树:Knoll 等和Bradford 等为决策树提出了代价敏感的剪枝方
    法,Bradford 等研究了在代价敏感的条件下如何对决策树进行剪枝使得
    损失达到最小,研究表明基于拉普拉斯方法的剪枝方法能够取得最好的
    效果,Drummond 和Holte 研究了代价敏感学习的决策树的节点分裂
    方法。
    (2) Boosting:Fan 等研究着提出了代价敏感的Boosting 算法Ada-Cost
    (3)神经网络:Geibel 和Wysotzki 提出了基于Perceptron 分类算法的代价敏感的学习方法,在文章中作者对不可分的类提出了代价敏感的参数更新规则。例如Kukar 和Kononenko 为神经网络提出了新的后向传播算
    法,使之能够满足代价敏感学习的要求。
    (4) Fumera 和Roli[37]以及Bradford 等从结构风险最小的角度来看代价敏感问题,提出了代价敏感的支持向量机分类算法。
    第二类代价敏感的学习方法基于对分类结果的后处理,即按照传统的学习方法学习一个分类模型,然后对其分类结果按照贝叶斯风险理论对结果进行调整,以达到最小的损失。和第一类代价敏感学习方法相比,这种方法的优点在于其不依赖于所使用的具体的分类器。Domingos 提出了一种叫做MetaCost 的过程,它把底层的分类器看成一个黑箱子,不对分类器做任何的假设和改变,MetaCost可以应用到任何个数的基分类器和任何形式的代价矩阵上。给定一个样例x,基分类器得出它属于第j 个类的概率为Pr(j|x),这样,认为x 属于第i个类的贝叶斯最优预测的风险为:
    R(i|x) = ΣP(j|x)C(i,j)(C(i,j)是把属于类别j的分为类别i的代价)
    第三种代价敏感的学习方法基于传统的学习模型,通过改变原始训练数据的分布来训练得到代价敏感的模型。Chan 和Stolfo 提出了层次化模型(Stratification),把分布不均匀的训练数据调整为正负例均匀分布的数据。Zadrozny 等研究者基于cost-proportionate 的思想,对训练数据调节权值,在实际应用中,其类似于Boosting 算法,可以通过为分类模型调节权值来进行实现,又可以通过采样(subsampleing)来实现[150]。Abe 等提出了对多类分类问题中如何实现代价敏感的学习进行了探讨,提出了一种新的迭代学习方法。

    [深度学习] 不平衡样本的处理

    https://blog.csdn.net/siyue0211/article/details/80318999
    不平衡样本的处理
    机器学习中经典假设中往往假定训练样本各类别是同等数量即各类样本数目是均衡的,但是真实场景中遇到的实际问题却常常不符合这个假设。一般来说,不平衡样本会导致训练模型侧重样本数目较多的类别,而“轻视”样本数目较少类别,这样模型在测试数据上的泛化能力就会受到影响。一个例子,训练集中有99个正例样本,1个负例样本。在不考虑样本不平衡的很多情况下,学习算法会使分类器放弃负例预测,因为把所有样本都分为正便可获得高达99%的训练分类准确率。
    下面将从“数据层面“和”算法层面“两个方面介绍不平衡样本问题。

    数据层面处理办法
    数据层面处理方法多借助数据采样法使整体训练集样本趋于平衡,即各类样本数基本一致。

    数据重采样
    简单的数据重采样包括上采样和下采样。由于样本较少类,可使用上采样,即复制该图像直至与样本最多类的样本数一致。当然也可以由数据扩充方式替代简单复制。对于样本较多的类别,可采用下采样,注意,对深度学习而言,下采样并不是直接随机丢弃一部分图像,因为那样做会降低训练数据多样性而影响模型泛化能力。正确的下采样方式为,在批处理训练时对每批随机抽取的图像严格控制其样本较多类别的图像数量。以二分为例,原数据的分布情况下每次批处理训练正负样本平均数量比例为5:1,如仅使用下采样,可在每批随机挑选啊训练样本时每5个正例只取1个放入该批训练集的正例,负例选取按照原来的规则,这样可使每批选取的数据中正负比例均等。此外,仅仅将数据上采样有可能会引起模型过拟合。更保险有效的方式是上采样和下采样结合使用。

    类别均衡采样
    把样本按类别分组,每个类别生成一个样本列表,训练过程中先随机选择1个或几个类别,然后从各个类别所对应的样本列表里选择随机样本。这样可以保证每个类别参与训练的机会比较均等。
    上述方法需要对于样本类别较多任务首先定义与类别相等数量的列表,对于海量类别任务如ImageNet数据集等此举极其繁琐。海康威视研究院提出类别重组的平衡方法。
    类别重组法只需要原始图像列表即可完成同样的均匀采样任务,步骤如下:

    1. 首先按照类别顺序对原始样本进行排序,之后计算每个类别的样本数目,并记录样本最多那个类的样本数目。之后,根据这个最多样本数对每类样本产生一个随机排列的列表, 然后用此列表中的随机数对各自类别的样本数取余,得到对应的索引值。接着,根据索引从该类的图像中提取图像,生成该类的图像随机列表。之后将所有类的随机列表连在一起随机打乱次序,即可得到最终的图像列表,可以发现最终列表中每类样本数目均等。根据此列表训练模型,在训练时列表遍历完毕,则重头再做一遍上述操作即可进行第二轮训练,如此往复。 类别重组法的优点在于,只需要原始图像列表,且所有操作均在内存中在线完成,易于实现。
      在这里插入图片描述
      算法层面的处理方法
      对于不平衡样本导致样本数目较少的类别”欠学习“这一现象,一个很自然的解决办法是增加小样本错分的惩罚代价,并将此代价直接体现在目标函数里。这就是代价敏感的方法,这样就可以通过优化目标函数调整模型在小样本上的注意力。算法层面处理不平衡样本问题的方法也多从代价敏感的角度出发。

    代价敏感方法
    代价敏感的方法可概括为两种, 一则基于代价敏感矩阵,一则基于代价敏感向量。

    代价敏感矩阵
    以分类问题为例,假设某训练集共有NN个样本,形如[xn,yn]Nn=1[xn,yn]n=1N,其中样本标记yy隶属于KK类。基于代价敏感矩阵方法是利用K∗KK∗K的矩阵C对不同样本类别施加错分惩罚(亦可称权重)。
    在这里插入图片描述
    其中, C(yi,yj)∈[0,∞)C(yi,yj)∈[0,∞)表示类别yiyi错分为类别yjyj的惩罚。C(yi,yi)=0C(yi,yi)=0。施加代价后的训练目标变为:训练得到某分类器gg 使得期望之和∑nC(yn,g(xn))∑nC(yn,g(xn))最小。
    代价敏感向量
    另一种代价敏感的反映方式则针对样本级别:对某样本 (xn,yn)(xn,yn),有对应的一个 KK维的代价敏感向量cn∈[0,+∞)Kcn∈[0,+∞)K,其中cncn的第kk维表示该样本被错分为第kk类的惩罚。基于代价敏感向量的方法在模型训练阶段是将样本级别的代价敏感向量与样本以 (xn,yn,cn)(xn,yn,cn) 三元组形式一同作为输入数据送入学习算法。细心的读者不难发现,代价敏感矩阵法实际上是代价敏感向量法的一种特殊形式,即对于某类的所有样本其错分惩罚向量为同一向量。

    代价敏感法中权重的指定方式
    代价敏感方法的处理前提是先指定代价敏感矩阵或向量。其中关键是错分惩罚或错分权重的设定。实际使用中可根据样本的比例,分类结果的混淆矩阵等信息指定代价敏感矩阵或向量中错分权重的具体取值。

    按照比例指定
    假设训练样本的标记共有3类:a类, b类, c类。它们的样本数目比例是3:2:1,则代价敏感矩阵为:
    在这里插入图片描述
    可以在矩阵基础上乘以类别最小公倍数6。
    根据混淆矩阵指定
    混淆矩阵(confusion matrix)是人工智能中一种算法分析工具, 用来度量模型或学习算法在监督学习中预测能力的优劣。 在机器学习领域,混淆矩阵通常也被称之为”联列表“ 或 ”误差矩阵“。混淆矩阵的每一列代表一个类的实例预测,而每一行代表其真实类别,如下表,仍以a, b, c三类分类为例。
    在这里插入图片描述
    矩阵对角线为正确分类样本数,各分类为4, 3, 21。矩阵其它位置为错分样本数,如a错分b类的样本数为1, 错分c类的样本数为3。
    虽然各类错分样本数的绝对数值接近(均错分3)但是相对而言,样本数较少的a类b类有50%和66.67%的样本被错分,比例相当高,但是c类只有19%。该情况用代价敏感法处理时,可根据各类分错样本数设置代价敏感矩阵的取值。
    一种方法直接以错分样本数为矩阵取值。
    在这里插入图片描述
    不过更优的方案还需考虑各类的错分比例,并以此比例调整错分权重。对a类而言,a类错分比例50%,占所有比例的136%(50%+67%+19%)的百分之36.76%,
    在这里插入图片描述
    小结
    数据层面采用数据重采样处理解决样本不平衡问题,其操作简单,不过该类方法会改变数据原始分布,有可能产生过拟合
    算法层面采用代价敏感法处理样本不平衡问题,通过指定代价敏感矩阵或代价敏感向量的错分权重,可缓解样本不平衡带来的影响。

    参考文献
    解析卷积神经网络——深度学习实践手册

    展开全文
  • 目的 代价敏感分类策略可以最小化误分类代价并有效提高识别率.针对计算机辅助肺穿刺样本的病理图像分析,提出一种新的代价敏感图像层的肺癌诊断系统(cost-sensitive image-level lung cancer diagnosis system,CILCDS...
  • 名词性数据的五种代价敏感属性约简算法比较
  • 然后,从代价敏感角度构建误分类代价的粗糙集近似集模型,并分析该模型下求得的近似集的相关性质.为了在多粒度空间中寻找一个合适的粒度空间来对不确定性目标概念进行近似描述,使误分类代价与测试代价之和尽可能小,给...
  • 提出一种基于动态代价敏感参数寻优机制的行人检测算法。该算法引入代价敏感的支持向量机分类算法,通过设置代价敏感参数处理图像中行人与非行人样本数量间的非均衡问题。考虑到代价敏感参数值的选择对检测性能影响很...
  • 针对电力系统暂态稳定评估中稳定样本与不稳定样本误分类代价不同的特点,提出一种基于代价敏感极端学习机的电力系统暂态稳定评估方法。该方法在现有极端学习机的基础上,引入误分类代价的概念,以误分类代价最小为...
  • 数据驱动下的代价敏感信用评估研究进展,李华雄,周献中,数据驱动型信用评估是加强信用风险管理和防范系统性金融风险的重要手段。近年来,随着全球金融危机的持续发酵和互联网大数据分析
  • 代价敏感分类算法的几种基于c4.5算法的扩展算法的实验比较
  • 论文研究-测试代价敏感的粗糙集方法.pdf, 在粗糙集模型中,α量化不可分辨关系是强与弱不可分辨关系的推广形式.然而值得注意的是,基于这三种不可分辨关系的粗糙集并未...
  • 针对此,提出了代价敏感相关向量机(CS -RVM)。CS-RVM以误分代价最小为目标,按贝叶斯风险理论预测新样本类别。在用典型算例验证了CS-RVM具有代价敏感性的基础上,尝试将其应用于变压器故障诊断。基于溶解气体分析...
  • 为解决因网络数据分布不均匀性而造成的链路预测问题,提出一种改进的代价敏感型链路预测算法(Link Boost).设计一种有监督链路预测可变代价损失函数,该函数对低节点度有链路节点对出现分类错误时的惩罚大于高节点度有...
  • 代价敏感 数据不均衡It’s amazing how nowadays the majority of us understand that AI is the way to go when talking about becoming a market leader, regardless of the vertical where you’re into....
  • 人脸识别是一个多类的代价敏感和类不平衡问题.例如,在人脸识别的门禁系 统中,将入侵者错分成合法者的损失往往高于将合法者错分成入侵者的损失.因此,每一类的错分代价是不同的.另 外,如果任一类合法者的样本...
  • 嵌入代价敏感的极限学习机相异性集成的基因表达数据分类
  • 为了解决客户细分中由于客户价值不同和不同价值客户数量的悬殊差异造成对客户错误分类的代价不同和不平衡的数据样本,研究了客户价值细分问题中错误分类代价形成机理...,在此基础上设计了代价敏感的支持向量机分类器...
  • 代价敏感随机森林Python附代码

    千次阅读 2019-11-01 10:34:56
    代价敏感随机森林Python 本文介绍了代价敏感随机森林,并附上代码 流程 1.根据训练数据创建决策树,组建随机森林 2.用创建好的随机森林跑一遍训练数据,统计每一棵树针对每一条数据的FP,FN 3.计算每一棵树的AC值,...
  • 主动学习 代价敏感 K-means

    千次阅读 2018-06-19 18:12:38
    主动学习:利用更加普遍存在的训练集,对模型进行训练,初始训练集的标记可以为空。... 第一类代价敏感的学习方法关注于如何直接构造一个代价敏感的学习模型,对不同的分类器模型研究者们提出了不同的解决办法,...
  • 为此,提出一种混合策略属性选择多决策树分类算法:算法融合代价敏感因子,结合C4.5和CART属性选择方法作为分裂指标,并采用了基于不同根节点信息的多决策树建树方法。首先采用11个非平衡数据集进行算法有效性验证,...
  • 1.降低分类器复杂度,提高少数类识别率,提出代价敏感随机森林 2.随机森林为框架,Bagging平衡数据,在基分类器属性分裂度量以及评价函数中引入误分类和测试双重代价 3.在少数类识别上,比RF,敏误分类RF有更大的...
  • 多粒度模糊粗糙集是经典多粒度粗糙集模型在模糊环境下的有益扩展,然而,已有的多粒度模糊粗糙集并未 考虑考虑数据的测试代价,为解决这一问题,本文提出了基于测试代价敏感的多粒度模糊粗糙集模型,分析了其相...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 360
精华内容 144
关键字:

代价敏感