企业建设网站的案例,php网站后台登陆不上,做衣服的网站推荐,商城网站开发与设计文#xff1a;Rick Radewagen译#xff1a;李萌在银行欺诈检测#xff0c;市场实时竞价或网络入侵检测等领域通常是什么样的数据集呢#xff1f;在这些领域使用的数据通常有不到1#xff05;少量但“有趣的”事件#xff0c;例如欺诈者利用信用卡#xff0c;用户点击广告… 文Rick Radewagen译李萌在银行欺诈检测市场实时竞价或网络入侵检测等领域通常是什么样的数据集呢在这些领域使用的数据通常有不到1少量但“有趣的”事件例如欺诈者利用信用卡用户点击广告或者损坏的服务器扫描网络。 然而大多数机器学习算法对于不平衡数据集的处理不是很好。 以下七种技术可以帮你训练分类器来检测异常类。1.使用正确的评估指标 对使用不平衡数据生成的模型应用不恰当的评估指标可能是危险的。想象一下我们的训练数据如上图所示。 如果使用精度来衡量模型的好坏使用将所有测试样本分类为“0”的模型具有很好的准确性99.8但显然这种模型不会为我们提供任何有价值的信息。在这种情况下可以应用其他替代评估指标例如精度/特异性有多少个选定的相关实例。调用/灵敏度选择了多少个相关实例。F1得分精度和召回的谐波平均值。MCC观察和预测的二进制分类之间的相关系数。AUC正确率与误报率之间的关系。2.重新采样训练集 除了使用不同的评估标准外还可以选择不同的数据集。使平衡数据集不平衡的两种方法欠采样和过采样。欠采样通过减少冗余类的大小来平衡数据集。当数据量足够时使用此方法。通过将所有样本保存在少数类中并在多数类中随机选择相等数量的样本可以检索平衡的新数据集以进一步建模。相反当数据量不足时会使用过采样尝试通过增加稀有样本的数量来平衡数据集。不是去除样本的多样性而是通过使用诸如重复自举或SMOTE等方法生成新样本合成少数过采样技术请注意一种重采样方法与另一种相比没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。过度取样和欠采样不足结合使用也会有很好的效果。3.以正确的方式使用K-fold交叉验证 值得注意的是使用过采样方法来解决不平衡问题时应适当地应用交叉验证。切记过采样会观察到稀有的样本并根据分布函数自举生成新的随机数据。如果在过采样之后应用交叉验证那么我们所做的就是将模型过度适应于特定的人工引导结果。这就是为什么在过采样数据之前应该始终进行交叉验证就像实现特征选择一样。只有对数据进行重复采样可以将随机性引入到数据集中以确保不会出现过拟合问题。4.组合不同的重采样数据集 生成通用模型的最简单方法是使用更多的数据。问题是开箱即用的分类器如逻辑回归或机森随林倾向于通过丢弃稀有样例来推广。一个简单的最佳实现是建立n个模型使用少数类的所有样本和数量充足类别的n个不同样本。假如您想要组合10个模型需要少数类1000例随机抽取10.000例多数类的样本。然后只需将10000个样本分成10个块训练出10个不同的模型。 如果您有大量数据那么这种方法很简单完美地实现水平扩展因此您可以在不同的集群节点上训练和运行模型。集合模型也趋于一般化使得该方法容易处理。5.用不同比例重新采样 以前的方法可以通过少数类和多数类之间的比例进行微调。最好的比例在很大程度上取决于所使用的数据和模型。但是不是在整体中以相同的比例训练所有模型合并不同的比例值得尝试。 所以如果训练了10个模型对一个模型比例为11少数多数另一个13甚至是21的模型是有意义的。 根据使用的模型可以影响一个类获得的权重。6. 对多数类进行聚类 Sergey Quora提出了一种优雅的方法[2]。他建议不要依赖随机样本来覆盖训练样本的种类而是将r个分组中的多数类进行聚类其中r为r中的样本数。对于每个组只保留质心样本的中心。然后该模型仅保留了少数类和样本质心来训练。7.设计自己的模型 以前的所有方法都集中在数据上并将模型作为固定的组件。但事实上如果模型适用于不平衡数据则不需要对数据进行重新采样。如果数据样本没有太多的倾斜著名的XGBoost已经是一个很好的起点因为该模型内部对数据进行了很好的处理它训练的数据并不是不平衡的。但是再次如果数据被重新采样它只是悄悄进行。 通过设计一个损失函数来惩罚少数类的错误分类而不是多数类可以设计出许多自然泛化为支持少数类的模型。例如调整SVM以相同的比例惩罚未被充分代表的少数类的分类错误。综上所述这不是一份独家的技术清单而是处理不平衡数据的一个起点。没有适合所有问题的最佳方法或模型强烈建议您尝试不同的技术和模型来评估哪些方法最有效。 可以尝试创造性地结合不同的方法。同样重要的是要注意在不平衡类出现的许多领域例如欺诈检测实时竞价中“市场规则”正在不断变化。所以要查看一下过去的数据是否已经过时了。文章版权归原作者所有转载仅供学习使用不用于任何商业用途如有侵权请留言联系删除感谢合作。