4.2创建一个平衡的样本
在标准的统计分析中,一种常见的做法是抛弃离群点——远远超出正常范围的观测值。然而在数据挖掘的过程中,这些利群点可能正是你要找的。或许他们带有欺诈行为,可能是你的业务中的一些错误,或一些利润惊人的市场商机。在这种情况下,我们不希望抛出离群点,认识和了解他们。
知识发现算法需通过实例来进行学习。如果没有足够数量的关于某个特定类或行为模型的例子,数据挖掘工具无法得出一个预测该类或模式的模型。在这种情况下,利用罕见事件的例子丰富该模型集,提高建模中该事件的概率。如果比较罕见,有两种方法可以平衡样本:一、分层抽样。二、权重。
例如:银行要建立一个模型,以确定哪些客户是私人银行计划的潜在客户。这些计划只针对非常富有的客户,他们在一个相当大的银行客户样本中也是非常稀少的。如何构建一个能发现这类用户的模型,该模型集可能需要有50%的私人银行的客户,即使他们代表所有支票份额中还不到1%。另外私人银行客户可能被赋予一个值为1的权重,其他客户的权重为0.01,所以浙西专有客户的总权重等于其余客户的总权重。通过增加一些孤立点客户的权重,从而达到模型对数据的合理梳理。
4.3时间帧
基于一个时间段内的数据建立模型会增加风险,即学习的知识不真实。结合模型集中的多个时间帧可以消除季节性因素的影响。由于季节性影响如此重要,因此应该把它们明确地添加到客户签名中。还有假日购物模式也非常重要。把客户的信息按照时间细分,或是在相应的数据上打上标签。
4.4创建一个预测模型
当模型集用来预测时,另一个问题,模型集应包含多长时间,时间段该如何划分。任何客户标签在预测变量和目标变量之间都应该有一个时间差。时间可分为,过去、现在、将来。当然所有数据都来自过去,过去又分为三个时期:遥远的过去、不太遥远的过去和最近。预测模型就是要发现遥远的过去的模型,用来解释最近的输出。当部署模型时,它能够使用最近的数据预测未来。如果构建一个模型来利用6月份(不太遥远的过去)的数据对7月份(最近)进行预测,那么在8月份之前的数据是可用的,但它不能用来对9月份进行预测。但是8月份的数据是可用的吗?肯定不是,因为这时,数据仍在产生数据。也不会是9月份的第一周,因为这些数据需要被收集、清洗、加载、测试和认可。8月份的数据可能要懂啊9月份中旬或10月才能用,到这个时候,没人会担心9月份的预测了。解决的办法是在模型集中跳过1个月。
4.5创建一个剖析模型集
剖析模型集与测试模型相似,但有一点:目标的时间帧与输入的时间帧重叠。看微小的差别对建模工作的影响却很大。因为输入可能会“污染”目标模式。例如:银行,拥有投资账户的客户在储蓄账户中往往有非常低的结余——因为他们能从投资账户中得到更好的回报。这是否意味着银行要为了投资账户而识别低存储账户余额的客户呢?可能不需要,因为这些客户的资产很少。
解决这个问题的一种方法是非常仔细得选择剖析模型的输入。把所有账户余额组合到“储蓄”,“贷款”两组。储蓄组包括所有类型的储蓄和投资。这种方法非常有效,事实证明模型是稳定的。一个更好的办法:开通投资账户之前对账户产生一个模型。一个并发的问题是:由于每一个客户的时间帧都取决于客户开通账户的时间,建立这样一个模型集面临更多的困难。
当目标变量的时间帧与输入变量的时间帧相同时,那么该模型是一个剖析模型,并且这个输入可能会引入一些似是而非的模式,而这些模式可能会混淆数据挖掘技术。你需要非常小心地选择输入或者重建模型集来产生预测模型。
4.6划分模型集
当你从适当的时间帧中获得预分好的数据后,有指导数据挖掘房峰辉把它分为三个部分。一、训练集,用户建立初始模型。二、验证集,用于调整初始模型,减少其与训练集特性的额绑定,从而更具一般性。三、测试集,用来衡量吧模型应用与未知的数据时可能产生的效果。三个数据集是必要的,因为若某个数据已在此过程中的某一步使用过,那么它包含的信息就已经成为模型的一部分。因此,它不能用来修正或判断模型。