标签:
sas处理变量划分节点分层模型 |
分类: SAS数据挖掘 |
Power of the Group Processing Facility in SAS® Enterprise Miner™
Sascha Schubert, SAS Institute Inc., Cary, NC
当你的数据需要被细分或者分组处理,并且你想用不同的方式处理这些分组数据时,SAS EM中的分组处理功能是很有用的。它运用By语句对那些来自已经根据一个或多个共同变量分组或者排序的不同数据源的观测值进行分组处理。
SAS EM分组处理一般流程
使用By语句进行分组发生在分组起始节点和终止节点之间。分组处理的By语句是在起始分组节点的对话框中定义参数。
https://pfztpq.bay.livefilestore.com/y1mXabzI3nku6Y63dhp_bXahwcEprPAVZ98JNR61UtQRqR1t_krnGdnVgcDZ7wuBS4RYMAIk7PxcRw0fPeSxapckLbMbPX_qAJVF6_lOmizalZ6OtZeRcy80UG5X3yUHazPdzGksbyHpbg8Hu_gzORJxg/clip_image002_thumb%20541D0CB7.jpg
在这些设置的基础之上,分组处理可以用来做以下处理:
在同一个流程中分析多个目标变量
为了获得对每个分组变量或者变量独立的分析来定义分组变量
用交叉验证来测试模型的稳定性
定义循环系数
重复抽样数据集来创建袋装和步进模型
多个目标——组合模型
不同公司都有很多商业问题,通过采用多目标方法可以得到统一数据准备和分组处理。
ABT(Analytical Base Table)的格式如下:
https://pfztpq.bay.livefilestore.com/y1mYyeoKfDEwPS3QKOxrBMizUnpAprsl2MNLXk4-pUoKSui2SQvZ-O0dWUOWsWK_3yfx-i-1XP0sqQffRuVXhsTYSJ1RRzOHtxYPk0yF17Tz5EWJqrpswCu14_EfxB3rROgLDTYxbC4PzhKTLYX5bsuuQ/clip_image004_thumb%2055DD886D.jpg
输入空间是由为分类和预测提供潜在信息的变量的属性组成。输入数据中每个目标变量是基于输入数据源节点的元数据,分组处理帮助创建模型循环。SAS EM允许将二值变量和区间变量混合在一起,它能够自动的选择合适的算法进行分组处理。
分组处理能够帮助处理分组步骤中的节点,它们独立于数据划分和数据转换。进一步,分组处理中的并行分支是得到很好支持的。因此,在很多循环处理中,多个建模算法能够并行运行,从而选择最优的模型。
分层、划分模型
目标分组处理能够帮助组合模型训练过程,输入数据的分组处理也能够帮助单个分组数据建立单独的模型。这些依赖于不同的业务环境。
分组处理功能可以为每个定义的划分抽取数据子集,将选择的数据应用到分组处理内部的数据挖掘步骤。多属性的划分是被支持的。
分组处理流程如下:
https://pfztpq.bay.livefilestore.com/y1mZ36M2DSIlY6dpbJVn_owyk_czsxnBInwl86LqlxQitjW3KHgHvqrj51pbgYzBFBv6d0UNpGRojQEbHFt1XhRHXx8MrHnm4gE-96SuWdZh5Nz4XPvWzoeBs2aObg-eR3OM-sGl7wka1NtTrFavxHXNg/clip_image006_thumb%2032C31FF5.jpg
在分组起始节点设置划分分组:
https://pfztpq.bay.livefilestore.com/y1mgXbbZk_d_HjENMi8N_9x0GUs6fZ_kuOe6xlYm1O4jZ_asYDPIGE-31Ckd8q0nvD3NHur6m_ZRqCWbx-eg-W5Ic6XgB8MmZcjjwM4KNRikJroPPU92txP9NM6ds6ykn0IU28VVV_THqd_wKf_dxYGcA/clip_image008_thumb%207F3E2759.jpg
划分变量角色定义
https://pfztpq.bay.livefilestore.com/y1myPq97IeqxYYK9yqqbNTKI2ITGvpObUmQpLVxGC-tYm3rdaOILVe7-DdqvZJU05xkeOvS8B4EBKBaXIjxSrc4yIk4kPp2ji26mQvOd2_5qpLpQEZ2Wf-o6tzU88b0eYba3Ky81eDNgQ0Obo5UUiBwpA/clip_image010_thumb%203DDD67A6.jpg
在分组终止节点中展现了分层模型的结果
https://pfztpq.bay.livefilestore.com/y1muOA0Ow_8S7iNe-CqspNULP8XLNS2XvH6n7kFnrp8ZrwlCdqvzaBJjuOgNvzwegkJBNMmqUH_rxivWWj5mcMyHPABoxNRNedyhKSzy2vvyLHg1iICxiwZbk76Jp31tVKF4OxOAkkbcwAHvCxOlNBUtw/clip_image012_thumb%206FAA03E7.jpg
对不同的客户划分,比较决策树,回归和神经网络模型
https://pfztpq.bay.livefilestore.com/y1m5kFN4zZFIsm3zrMAopRHE4U5vbBB3MvIN199u_4GS4OIasJb1JQYrDTcyxQv1HHqEBuAbWDj9vGevnIVE2_pFbPQ6l4Va4uW0njRiQ04Cdnk-nK20Jkln1Y-c5m9jEEuI9zcBqwrM5pImLgtPJODwQ/clip_image014_thumb%20708DB9F8.jpg
分层模型结果评估图
https://pfztpq.bay.livefilestore.com/y1mYVk8Oe0gCmnmd79n2ds7Ocu4XQjCTatnak4vyBwJ1ObQc5IkBcIvncv9cPYDihbjTtPmP4kwQlp3VmpKrUPj8EWzMqBoIVq0-KZSj_C73QCTxM_3StkC-0kbq2_1kDMDjitxMM4si8AjWoAZVz15uQ/clip_image016_thumb%2057820FA2.jpg
除了商业驱动的输入数据空间的分组,分组功能还可以处理动态的数据驱动的划分。运用提供的划分算法,譬如SOM,决策树等等,输入数据空间可以被统计划分定义为同构的组。
https://pfztpq.bay.livefilestore.com/y1mwzU2YFKGGR9taRRdEVd0K2X6clVX4O4t-_EFbqBecvuKwZLSSQQvAQfJyLEetQOGQzbleh2VIIN3LtwgdrlYS2WLo7U3R3U0YMGJvzZxT-opT1vOZnHj1Ml8xI2hOYmPMo23WKNXPd6DF4HVKUxlMg/clip_image018_thumb%20667D029D.jpg
https://pfztpq.bay.livefilestore.com/y1m5HEH4p2GZIHUw6ZdlqZrZNWRgL35E2u7F9HpsbOMpICKZoibqKYo1jfu2fR1fMs46B9mEQ2tzc34ItA5GO6JjuuS_cEXUvUE3iPb5WsTJzGNzsjRCJ2p4SoQZDPqdkVLv90EosNFgGvZp8Mevhl5Cg/clip_image020_thumb%2021C08E4B.jpg
交叉验证-测试模型
分组处理功能能够帮助数据挖掘者应用交叉验证算法测试模型的稳定性。当数据很稀少并且常用的数据划分算法(训练,测试和验证数据)不好用,这就显得很有用。SAS EM中的分组处理功能支持两种用于交叉验证的理论,一种是直接的另外一种是间接地。直接的方法就是在分组起始节点的对话框中选择交叉验证。
https://pfztpq.bay.livefilestore.com/y1mk_E3qzJNX0SMqQN8RZSZxmb_TvPlrWnVdztucwHego5SRuU7zSI3hiYgsoH4CB063xyEf4lgrKddy0iA1I5HKO13Ke9ipIVdTt9p_tfxtzJpD9Sqz_KlXLmxzlinVX_XWrtMqmlFwR9PJ6Ma0wuAKw/clip_image022_thumb%2064D1EFA3.jpg
这个选择将导导出和组本身相反的所有的致输入数据的子集。譬如,两个分组变量GENDER(M、F)和REGION(N、S、E、W)。如果采用分层模型执行标准分组处理,下面的分组将会通过。
https://pfztpq.bay.livefilestore.com/y1mY7fGmThjBzlyo6QvqOj1iApHUSLy5QveUbPYfzrKko1DH4P9h6-I9SNkylpMzpdfEtp7DquG3PDSHHRMutmxgII0Igp2Og92BTOLYzn5jjhis7cshoKYXOTsEFOV8RMC_0v15ycRKZ7wIn1NYkM9rQ/clip_image024_thumb%200B7BF207.jpg
当我们运用交叉验证模型执行时,出了当前组,其他的所有数据都可以通过。使用交叉验证的处理结果如下:
https://pfztpq.bay.livefilestore.com/y1m5Vayiwec5DyOGLDjeC8zvxKZ5MmsfIRlWY7EPU8jedR2SWubGj92gouof4oESkNxc8kzWUT4OVnnM6VFmH9T4uT-RDo1xJzA6Q8bpPftJfMOvAcWv1zuDCWPyMQFjM5iV-YpQvbCwyPTM7_wqsT_pA/clip_image026_thumb%2018B47013.jpg
分组处理功能也允许通过使用数据转换节点进行f折叠交叉验证。在整个循环过程之前,加入数据转换节点。
https://pfztpq.bay.livefilestore.com/y1mliG9UtuZl0IH9nmdUC7Cfj5ohsq0HSNFLnSb1_Rc3iDjmkP0QpaNei3mOv17uf7_LJqkKWRLGD3FCE-n8pyxDKDRR06DveT7MvO9msn2W2r1CqmLhFi0XN9wGKnk8HZw1GPdiiTuW9WKwYgxFHzCtg/clip_image028_thumb%2039F829D0.jpg
在这个节点中我们可以为数据设置一个随机划分的ID,用来表示交叉验证过程中的组。划分ID的一般公式是:
https://pfztpq.bay.livefilestore.com/y1mylx5NPs3M_KYoJK7wH3qHY1oW-jPgXh9V4iocbGHThCQwX7nHpRaE_SkGolBNpO8Wd8MREUh2knpf-B5CDTPD4Dovv-WjIL89gZqieBPBt1BHKwzFQuyyo2YfHs90uSpI6-0Rw0sMPSwZnWuisH4LA/clip_image030_thumb.jpg
f表示划分的数目,即f折叠交叉验证。在数据转换节点中,新变量的角色可以设置为segment,从而允许立即进行交叉验证。再次,在分组处理起始节点对话框设置交叉验证,同时产生每个划分的一个完全选择。譬如,如果设置划分ID为1,则所有的划分都剔除掉为1 的分组,从而进行模型训练。为每次模型的训练提供足够大的样本。
https://pfztpq.bay.livefilestore.com/y1mtNRa-z2sO-lfRXXwoO8zQH-Z6samr1_jq12tEwnEaSIiX9Ye1C6FMSrqpj6bZ4RHGApbLt3wX6ShF-n-SapQycSGqo5pXUXBQT6qzr6Fb1wFfkkylS1SFknj1ogYoXxsCc8O4wCt7N5wURnCUL0rSw/clip_image032_thumb.jpg
10折叠交叉验证结果
https://pfztpq.bay.livefilestore.com/y1mDOiZw6RpitnqquPrDxrV_cr9DpIGcKy3S9-Nkb0mInak1ZEnrlfwpKaPisPp24XpS4um08X_BMwyNZmfDYxCoddNQvwZ-7vTtHgfwuocpHSYT_7cJ6jm2eVrrA4kSIuBACc10DqZuu6K72K0WV0KuQ/clip_image034_thumb.jpg
SAS EM还提供了很多图形化的功能用于分析模型的性能。
https://pfztpq.bay.livefilestore.com/y1m6d1M89kVeg9qnig5wwofRMfNqd5MY48DQXaxGDOYq_gAj122rA9zxaHTGPfkXygZu7grcKmYL0ButGPUQZ24vD8xVVDOqXcUBWptS3yHfWqrEucX92P58lj2mQHlQjHI7cTB0sFS4xjedVfguENcWA/clip_image036_thumb.jpg
组合模型-使模型更加稳定
SAS EM中的分组处理功能提供两种自动的组合算法模型,bagging 和 boosting。这些是用来提高分类和预测模型准确性和稳定性的机器学习组合算法。这两种方法的主要不同在于每个建模步骤中选择子数据集的抽样方法不同。
Bagging采用一种基于随机抽样的方法创建n个样本的非加权重抽样。每个观测值都有相同的机会被加入到模型训练集中。因此,每个步骤和前面的步骤都是相互独立的,可以进行并行处理。模型的最终输出是是通过对每个模型迭代产生的概率进行平均而产生的。
Boosting通过执行加权重抽样技术来改进模型的准确性,主要集中关注那些更难分类和预测的观察值。在每次迭代完成后,抽样权重是根据模型结果准确性与观测之间的关系进行调整。正确的分类观测将得到较低的抽样权重,而不正确的分类观测值将得到较高的抽样权重。因此,在下一次迭代过程中,将从那些误分类的观测中抽取样本。这些将导致依赖于算法的迭代次数和处理顺序。同样,最终模型结果的评分需要根据训练算法的顺序来进行处理。模型结果是根据分类器的加权投票顺序。
SAS EM创建模型的最终评分节点是根据累积每次迭代产生的评分之和进行组合而产生的。因此,整个评分节点是根据分组节点运行而得到的。组合算法的缺点就是损失了模型结果的解释性和透明性。
https://pfztpq.bay.livefilestore.com/y1mAnTlMCR0RonCh_1gWnQf_hi00YyFbnYOERZKTifeJbSx0R7RV0_mRHuoMgwzE7U-XJj9lFAgqeMEdcd8dG0D-9UpdEbhtitbYJugwQpbPYbmBNFmtxk0KA3HT0tGyhtwE9fqoPNBGX84pTORk4N3Rg/clip_image038_thumb.jpg
袋方法和步进方法在SAS EM中通过分组处理功能很容易实现。用户通过在起始分组的对话框中选择代表模型的方法,一旦抽样属性被定义为bagging,算法就能够自动运行并且产生结果,显示在分组终节点的浏览器中。对于boosting来说,用户仅仅需要定义迭代次数。
https://pfztpq.bay.livefilestore.com/y1mLpNN5cGdVn4N-k_9W6kkcZVTRq247V2Jz5OX5VEoVgHlPo1aoB3-iAXLVXox8iSGI0jRjB4x6h8Z2LcO1M8szvJewUnkqtRyHDk2OfslCQpp6FxQ20vsAzzH6gkIdn541_Fccs2cQGPqCKpJpD28yQ/clip_image040_thumb.jpg
提升图显示了分类模型的训练和验证数据的结果。统计图显示了每个迭代模型的统计误差,并且可以洞察模型的稳定性。
总结:SAS EM中的分组处理功能提供细分或者组合训练模型的不同方法,从而使用户容易选择最有效的过程。在相同的数据集上,模型你给可以通过对多个目标组合起来进行训练。模型的稳定性可以很容易地通过交叉验证算法进行测试,而且模型的稳定性也可以通过组合算法技术来提高。