全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1233 0
2016-12-22
如何创建一个数据挖掘模型集?

模型集包含建模过程中使用的所有数据。模型集中的一些数据被用来寻找模式,对于一些技术,模型集中的一些数据被用来验证该模型是否稳定。模型集也可用来评估模型的性能。创建一个模型集需要从多个数据源聚合数据以形成客户签名,然后准备数据进行分析。

1聚合客户签名

模型集是一个表或一系列表,每一行表示一个要研究的项目,而字段表示该项目有利于建模的一切。当数据描述客户时,模型集的行通常称为客户签名。客户签名,每个客户都由他离开的踪迹唯一确定,你可以利用踪迹充分的了解每个客户。

从关系型数据库中聚合客户签名旺旺需要复杂的查询,这些查询往往需要关联很多的表去查询的数据,然后利用其他来源的数据增强结果。聚合数据的一部分过程是使数据位于正确的汇总层次,然后每一行都包含先关客户的所有信息。

2创建一个平衡的样本

在标准的统计分析中,一种常见的做法是抛弃离群点——远远超出正常范围的观测值。然而在数据挖掘的过程中,这些利群点可能正是你要找的。或许他们带有欺诈行为,可能是你的业务中的一些错误,或一些利润惊人的市场商机。在这种情况下,我们不希望抛出离群点,认识和了解他们。

知识发现算法需通过实例来进行学习。如果没有足够数量的关于某个特定类或行为模型的例子,数据挖掘工具无法得出一个预测该类或模式的模型。在这种情况下,利用罕见事件的例子丰富该模型集,提高建模中该事件的概率。如果比较罕见,有两种方法可以平衡样本:一、分层抽样。二、权重。

例如:银行要建立一个模型,以确定哪些客户是私人银行计划的潜在客户。这些计划只针对非常富有的客户,他们在一个相当大的银行客户样本中也是非常稀少的。如何构建一个能发现这类用户的模型,该模型集可能需要有50%的私人银行的客户,即使他们代表所有支票份额中还不到1%。另外私人银行客户可能被赋予一个值为1的权重,其他客户的权重为0.01,所以浙西专有客户的总权重等于其余客户的总权重。通过增加一些孤立点客户的权重,从而达到模型对数据的合理梳理。

3时间帧

基于一个时间段内的数据建立模型会增加风险,即学习的知识不真实。结合模型集中的多个时间帧可以消除季节性因素的影响。由于季节性影响如此重要,因此应该把它们明确地添加到客户签名中。还有假日购物模式也非常重要。把客户的信息按照时间细分,或是在相应的数据上打上标签。

4创建一个预测模型

当模型集用来预测时,另一个问题,模型集应包含多长时间,时间段该如何划分。任何客户标签在预测变量和目标变量之间都应该有一个时间差。时间可分为,过去、现在、将来。当然所有数据都来自过去,过去又分为三个时期:遥远的过去、不太遥远的过去和最近。预测模型就是要发现遥远的过去的模型,用来解释最近的输出。当部署模型时,它能够使用最近的数据预测未来。如果构建一个模型来利用6月份(不太遥远的过去)的数据对7月份(最近)进行预测,那么在8月份之前的数据是可用的,但它不能用来对9月份进行预测。但是8月份的数据是可用的吗?肯定不是,因为这时,数据仍在产生数据。也不会是9月份的第一周,因为这些数据需要被收集、清洗、加载、测试和认可。8月份的数据可能要懂啊9月份中旬或10月才能用,到这个时候,没人会担心9月份的预测了。解决的办法是在模型集中跳过1个月。

5创建一个剖析模型集

剖析模型集与测试模型相似,但有一点:目标的时间帧与输入的时间帧重叠。看微小的差别对建模工作的影响却很大。因为输入可能会“污染”目标模式。例如:银行,拥有投资账户的客户在储蓄账户中往往有非常低的结余——因为他们能从投资账户中得到更好的回报。这是否意味着银行要为了投资账户而识别低存储账户余额的客户呢?可能不需要,因为这些客户的资产很少。

解决这个问题的一种方法是非常仔细得选择剖析模型的输入。把所有账户余额组合到“储蓄”,“贷款”两组。储蓄组包括所有类型的储蓄和投资。这种方法非常有效,事实证明模型是稳定的。一个更好的办法:开通投资账户之前对账户产生一个模型。一个并发的问题是:由于每一个客户的时间帧都取决于客户开通账户的时间,建立这样一个模型集面临更多的困难。

当目标变量的时间帧与输入变量的时间帧相同时,那么该模型是一个剖析模型,并且这个输入可能会引入一些似是而非的模式,而这些模式可能会混淆数据挖掘技术。你需要非常小心地选择输入或者重建模型集来产生预测模型。

6划分模型集

当你从适当的时间帧中获得预分好的数据后,有指导数据挖掘房峰辉把它分为三个部分。一、训练集,用户建立初始模型。二、验证集,用于调整初始模型,减少其与训练集特性的额绑定,从而更具一般性。三、测试集,用来衡量吧模型应用与未知的数据时可能产生的效果。三个数据集是必要的,因为若某个数据已在此过程中的某一步使用过,那么它包含的信息就已经成为模型的一部分。因此,它不能用来修正或判断模型。

我们往往很难理解为什么训练集和验证集被用来建立模型之后就会成为“污点”。这就好比你参加考试,你认为这题你做的是正确的,老师让你去预测考试成绩,你显然认为分数很高,因为你认为,如果没有答案,第二天在参加同样的考试,你的想法不会改变。这时候,你的系统中没有一个新的标准,这时,你需要的是一个验证集。

现在,想象一下测试结果以后,估分之前老师让你看看你同学的几个试卷。如果他们都和你的结果不一样,这时候,你可能会把你自己的答案标记为一个错误的答案。如果第二天老师给出了正确的结果,这个时候让你再去做同样的的试卷,你可能得出的就是不同的结果。这就是为什么验证集应该不同于测试集的原因。

对于预测模型,一个好主意是测试集所在的时间段与训练集和验证集的时间段不同。一个模型的稳定性证据在于它在连续的月份中都能够良好的运行。来自不同的时间段的测试集,也称为不合时宜的测试集,虽然这样的测试集并不总是可用,但是它是验证模型稳定性的一个很好的方法。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群