zoukankan      html  css  js  c++  java
  • 处理样本不均衡数据

    处理样本不均衡数据一般可以有以下方法:

    1、人为将样本变为均衡数据。

    上采样:重复采样样本量少的部分,以数据量多的一方的样本数量为标准,把样本数量较少的类的样本数量生成和样本数量多的一方相同。

    下采样:减少采样样本量多的部分,以数据量少的一方的样本数量为标准。

    2、调节模型参数(class_weigh,sample_weight,这些参数不是对样本进行上采样下采样等处理,而是在损失函数上对不同的样本加上权重)

    (A)逻辑回归中的参数class_weigh;

    在逻辑回归中,参数class_weight默认None,此模式表示假设数据集中的所有标签是均衡的,即自动认为标签的比例是1:1。所以当样本不均衡的时候,我们可以使用形如{标签的值1:权重1,标签的值2:权重2}的字典来输入真实的样本标签比例(例如{“违约”:10,“未违约”:1}),来提高违约样本在损失函数中的权重

    或者使用”balanced“模式,sklearn内部原理:直接使用n_samples/(n_classes * np.bincount(y)),即样本总数/(类别数量*y0出现频率)作为权重,可以比较好地修正我们的样本不均衡情况。

     

    (B)在SVM中使用SVC类的参数class_weigh和接口fit中可以设定的sample_weight:

    SVC类的参数class_weigh:

    对于class_weight,输入形如{"标签的值1":权重1,"标签的值2":权重2}的字典,则不同类别的C将会自动被设为不同的值:

    sklearn内部原理:标签的值为1的C:权重1 * C,标签的值为2的C:权重2*C 

    或者,可以使用“balanced”模式,sklearn内部原理:这个模式使用y的值自动调整与输入数据中的类频率成反比的权重为 n_samples/(n_classes * np.bincount(y)

    fit接口参数sample_weight:

    参数形式:数组,结构为 (n_samples, ),则模型参数C则变为,每个样本的权重 * C值,这样迫使分类器强调权重更大的样本。通常,较大的权重加在少数类的样本上,以迫使模型向着少数类的方向建模

  • 相关阅读:
    如何搭建docker镜像私有仓库
    CentOS 安装 Docker教程
    git push撤销、git commit 撤销、git add撤销、修改git提交信息
    虚拟对抗训练(VAT):一种用于监督学习和半监督学习的正则化方法
    CentOS7虚拟机配置、Hadoop搭建、wordCount DEMO运行
    统计学习方法——KD树K近邻搜索
    应用程序使用统计信息 – .NET CORE(C#) WPF界面设计
    (四)开源C# WPF控件库《AduSkin – UI》
    简化MVVM属性设置和修改
    少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
  • 原文地址:https://www.cnblogs.com/simpleDi/p/10235907.html
Copyright © 2011-2022 走看看