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

使用平衡生成更相关的数据模型和数据结果(3)

使用平衡生成更相关的数据模型和数据结果(3)

组合使用                boosting 和 reduction也可以组合两种方法来创建一个平衡的数据集,其中包含 3 位男性和 3 位女性。将系数设置为丢弃 4 位男性中的 1 位,复制 2 位女性中的 1                位。
从图形生成平衡节点可从一个针对类别字段的  或从针对连续字段的 ,生成在两个或更多类别之间建立均匀分布的简单平衡节点。这是通过生成一个图形来显示数据集中的相关字段的真实分布,然后单击工具栏上的                    Generate 来完成的。
从图形创建平衡节点
来自示例 2 的  包含一个分布图和一个直方图,可以使用它们按这种方式生成平衡节点。
在 IBM SPSS Modeler 中,可通过多种不同方式 。
这些选项仅在存在于使用分布图和直方图节点创建的图形中,使用  创建的图形中不存在这些选项。
处理可重复的分配请记住,在使用非整数系数时,这种记录复制或丢弃是随机的,在数据每次                经过该节点时完成。这意味着,每次执行一个节点时,结果数据集都会不同。
一些节点包含 IBM SPSS Modeler 中的随机分配元素,比如  和 ,这些节点可以选择执行可重复的分区分配。平衡节点没有这样的选项。如果每次需要以完全相同的方式执行平衡,可使用缓存或导出。
使用缓存在平衡节点上启用                 是最简单的选项。这可以确保平衡节点连同数据集的剩余部分一起存储在一个临时文件或数据库表中,这个临时文件或数据库表将在填充后用于会话的剩余部分。填充缓存后,一个小图标(添加到节点的右上角)变为绿色。

但是该分配不会在会话之间持久化,而且每次关闭流并重新打开时,或者在出于其他某种原因而擦除缓存时,都会重新分配记录。对于包含大量字段的数据集,这可能还会导致一个不必要的大型临时文件,因为它实质上会创建整个数据集的副本。可以在  文章中找到更多的细节。
使用导出另一个可重复分配选项是,创建平衡数据集一次,然后将它连同一个或多个唯一标识每个记录的字段导出到一个文件或数据库表。然后,可以将导出的平衡结果与原始源数据合并,实现一种将在会话间持久化的平衡。
但是,如果平衡的细微变化导致估算模型的巨大变化,这应该解释为一种表明该模型不稳定的迹象,该问题可能比数据集不平衡更重大。
动态平衡在 SPSS Modeler                    中编写脚本要了解如何自动化 SPSS Modeler 中的任务,请先阅读以下文章:
  • Julian Clinton 撰写的
  • Paul Brown 撰写的

平衡节点允许数据科学家输入条件和用于平衡的系数,但这些系数通常依赖于被分析的数据集中的平衡。因此,在会定期更改数据集和重新训练模型的环境中,用于平衡的系数也会发生更改。如果手动重新训练模型,或者基础数据中的平衡没有显著变化,那么在检查数据后和重新训练模型前,数据科学家不需要做太多额外工作来更改这些系数。但是,如果以自动化方式构建和重新训练模型,使用同一个流为不同的客户细分类别或产品构建模型,则将需要动态平衡来适应具有不同比例的数据集。
可使用流脚本来操作平衡节点,重设系数,以及甚至重设节点的条件。
示例 4:使用脚本的动态平衡 和流脚本。
示例 4 展示了如何动态创建必要的系数和条件,以平衡之前的示例中使用的数据集,通过减少数据集中的男性数量来实现均匀的男女分布。
通过流脚本来执行动态平衡的流 流的最长分支计算系数和条件。count_by_gender 汇总节点仅创建一个分别包含规定数量的男性和女性的数据集。
GENDERCount_by_gender Male  4  Female  2  名为 Target Count 的  通过获取性别计数的最小值来确定平衡方法(在本例中为                reduction)。这是每个类别的目标案例数量,而且可以轻松地将它从 Min(reducing)更改为 Max(boosting)或                Mean(reducing 和 boosting 的组合)。也可使用一个或多个节点代替该节点,以不同方式创建想要的目标数量。
将两个汇总节点合并到一个数据集中,每个性别对应一条记录。
GENDERCount_by_gender                            Target_count Male                             4                             2                         Female                             2                             2                         系数节点是一个 ,它使用公式 target_count/count_by_gender                导出系数供平衡中的每种性别使用。该公式计算每个类别的目标案例数量与该类别的实际案例数量的比率。
条件节点使用公式 "GENDER = \"" >< GENDER ><                    "\"" 导出要用于平衡节点中的每个性别的条件。
名为 Directives 的  显示在一个表中显示系数和条件,使表中的值可供脚本使用。
系数条件 0.500  GENDER = "Male"                         1.000  GENDER = "Female"                         可在指令节点之前添加 ,以便丢弃该系数等于 1 的所有记录,因为这些记录在平衡节点中没有任何用处。
返回列表