首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用平衡生成更相关的数据模型和数据结果-4

使用平衡生成更相关的数据模型和数据结果-4

确定平衡是否值得或是否对建模有利,这通常取决于项目的业务目标。首先检查模型的 融合矩阵,查看模型是否符合业务目标。在 示例 1                中列出的情形中,融合矩阵可能表明,基于一个不平衡数据集的模型能够正确识别几乎所有非欺诈性保险索赔,但无法识别所有(或仅能识别极少数)欺诈性索赔。换言之,该模型拥有:
  • 大量的错误否定
  • 很高的 II 型错误比率
  • 接近 1.0 的特异性
如果目标是避免调查有效的索赔,这可能是不错的模型。但是如果目标是检测和阻止欺诈(更常属于这种情况),则此模型无法满足目标,而且平衡数据可能是一种改进模型的方式。
选择使用 boosting、reduction                还是二者的组合,具体情况取决于数据集的相对比例和业务目标。找到合适的平衡水平的最佳方式是,构建包含不同方法和系数的模型,并评估它们来确定哪些模型能最有效地满足业务目标。
有一些经验规则和指导原则:
  • 当平衡一个数据集时, 需要实现均匀分布。
  • 避免对更常见类别过度采样,因为这可能导致丢弃不常见类别中的许多数据,一些重要的关联或模式需要从这些类别的整个数据集中采样。
  • 避免过多地复制单条记录,因为这可能导致随机模式和很少出现的模式被建模算法识别为有意义的模式。
在保险欺诈示例中,您不想通过复制欺诈性索赔来实现均匀分布。这么做可能让建模算法将来自每个原始欺诈性索赔的属性组合识别为一种欺诈模式。您可能也不希望通过                reduce                非欺诈性索赔来实现均匀分布。这样会丢弃很大一部分相关数据,这些数据中的模式表明了非欺诈性索赔的特征,会使得识别这些索赔变得更难。解决方案介于这两个极端(复制欺诈性索赔和减少非欺诈性索赔)之间,建立一种合理且使模型能满足业务目标的平衡。
对过度平衡数据集的最重要防御措施是,确保数据集划分为训练分区和测试分区(可能还有验证分区),其中测试分区和验证分区是不平衡的,而且保留了原始比例。然后基于测试分区或验证分区来评估模型性能,确定模型的真实有效性。
示例 6:信用卡优惠信息。
在示例 6                中,一家信用卡公司希望在客户联系它时,向现有持卡人提供不同的优惠信息和开展营销活动。一条优惠信息是,持卡人为同一个帐户注册一张补充信用卡,以提供给配偶或其他家庭成员使用。
在拨入呼叫中心的 5,904 通电话中,此优惠信息仅提供给了不到 2,000 位持卡人,而且该优惠信息的接受率为 13.8%。
首先,基于数据集的真实、不平衡的分布来训练模型。
用于训练信用卡优惠信息模型的基本流在上图中,流程为信用卡 > 再分类 > 提供的优惠信息 > 分区 > 平衡 >                类型,然后分支到训练、优惠信息响应或经历额外的测试和分析来获得融合矩阵的优惠信息响应。
该模型对 87.5% 的响应者进行了正确分类,但融合矩阵预测,94.9% 的响应者会拒绝该优惠信息。该模型还识别出只有 23.9%                的持卡人接受了该优惠信息。这带来了 76.1% 的错误否定率。
在不平衡的数据集上训练的模型的融合矩阵

实际响应

接受  拒绝  总计 预计响应接受 23.9%  1.9%  5.1% 拒绝 76.1%  98.1%  94.9% 总计 100.0%  100.0%  100.0% 然后训练一个模型,其中使用提升实现了被接受和拒绝的优惠信息的均匀分布。这通过添加一个平衡节点来完成,在该节点中,对接受优惠信息的记录使用了系数                6.2409。该数据集包含 274 个接受优惠信息的响应者,1,710                个拒绝优惠信息的响应者。在两个小组之间建立均匀分布的系数,可通过将较大的小组中的响应者数量 (1,710) 除以较小的小组中的响应者数量 (274)                来得到该系数。这会得到系数 1,710/274=6.2409。
结果模型对训练分区中的 95.1% 的响应进行了正确分类,但仅正确分类了测试分区中 81.4% 的响应,这表明该模型被过度训练;boosting                级别太高了,需要调节。
一个在具有均匀分布的平衡数据集上训练的模型的融合矩阵

实际响应

接受  拒绝  总计 预计响应接受 56.3%  14.4%  20.4% 拒绝 43.7%  85.6%  79.6% 总计 100.0%  100.0%  100.0% 另一方面,您设法将错误否定率降低到了 43.7%,这与原始模型相比是一项重大改进。
构建具有不同平衡水平的模型,会得到稍微不同的结果。下表给出了在同一个数据集上训练,但使用了不同平衡水平的同一个模型。错误否定率和错误肯定率都基于测试分区。
在具有不同平衡程度的数据集上训练的模型的总体准确度 方法  指令  错误否定率  错误肯定率  准确度训练  准确度测试  准确度差异  无  不适用  76.1%                                                        32.0%  87.5%                                                        87.5%                         0.0% 提升 (25/75)  2.1070:接受  71.8%                                                        44.4%  85.9%                                                        86.4%                         -0.5% Boosting (33/67)  3.1200:接受  43.7%                                                        53.5%  91.6%                                                        84.4%                         7.2%Boosting (40/60)  4.2000:接受  39.4%                                                        57.4%  91.7%                                                        82.6%                         9.1% Boosting (50/50)  6.2409:接受  45.1%                                                        60.2%  95.3%                                                        81.6%                         13.7% 组合 (50/50)  3.6204:接受 0.5801:拒绝  33.8%                                                        60.5%  90.3%                                                        80.6%                         9.7%来自  的结果已在                 中绘制成图,以演示在使用不同的平衡水平时,两种错误率之间的权衡。虚线表示一条高度主观性边界,人们可能在这里预计同一个空间存在其他平衡水平的高度主观性边界。
基于具有不同平衡水平的数据集的模型的错误否定率和错误肯定率之间的关系图可通过许多方式评估这些模型,但出于平衡的目的,我们又回到了确定什么是正确的平衡的业务案例。如果您通过低成本渠道提供高收入产品,那么您可能愿意接受较高的错误肯定率,如果您通过高成本渠道销售低收入产品,则情况可能相反。
示例 6                中的优惠信息是针对现有帐户的补充性信用卡。向帐户中添加一张卡,意味着有另外一个人使用该信用卡帐户,进而在每次刷卡时为信用卡提供者创造收入。每个帐户的预计收入取决于许多不同因素,很可能需要我们建立一个模型来评估每年的预期收入和预期寿命。对于此示例,我们假设添加一张补充性信用卡带来的预期收入为                10 美元。
提供此优惠信息的成本也由多个组件组成,包括呼叫中心代理花费的时间,向可能已接受另一项优惠信息的帐户持有人提供此优惠信息所损失的收入,但为了简便起见,我们将成本设置为                2 美元。这将意味着,公司可以接受高达 80% 的错误肯定率,且仍能实现收支平衡。
确定要在任何用例中使用的正确的平衡指令很难,并且必须依靠一些反复试验来确定最适合业务目标的平衡水平。关键在于良好地理解业务目标,理解如何实现和使用预测模型。
结束语本文介绍了如何评估不同的方法和平衡水平,以及如何在 IBM SPSS Modeler 中部署平衡。使用所提供的测试数据集,您可以使用平衡节点,根据需要                boost 或 reduce                模型来得到期望的结果。通过实现动态平衡,平衡节点可随着分析的数据变化而变化。例如,当使用预测模型来选择应提供补充性信用卡的客户时,接受优惠信息的客户的比率将增加,从而改变数据中的平衡。数据通常是动态的,平衡系数可能也需要定期手动调节。您可以根据自己的业务目标,使用                IBM SPSS Modeler 确定您的数据的平衡系数应该是多少。
返回列表