1. 表查询模型的基本思想:
表查询模型基本上基于这样一个基本思想:在多个已知属性上上相似的个体,在其他属性上也会相似。
比如个体A和个体B的三个属性x1,x2,x3相似,那么另外一个属性y很可能也相似。
注:
(1)这种相似性的关联是有限制的,主要的限制就是x1,x2,x3和y应该具有比较高的相关性。如果x1,x2,x3和y没有相关性,那么,即使两个个体在x1,x2,x3属性上都非常相似,在属性y上也不一定相似。
(2)实际上,不光是表查询模型的基本思想是这个,其他很多数据挖掘模型的基本思想也是这个。比如各种回归模型。
2. 表查询模型的基本使用流程
(1)确定一个需要进行预测的目标y。比如顾客未来1个月会产生购买的可能性,用户未来3个月内流失的可能性等等。
(2)确定建立模型的训练集。训练集应该是包含预测目标y的结果的数据集。并且包含较多的候选自变量。
(3)找到几个和y相关性大的变量作为自变量。
(4)对自变量进行分段,各自变量的每个分段互相组合,即形成了查询表的单元格。
(5)把训练集个记录根据自变量组合分到各个查询单元格。
(6)把各单元格统计出来的y的取值作为预测结果。模型建立完毕。
(7)如果有验证集,使用测试集对训练集上建立的模型进行验证,查看效果。
3. 表查询模型的关键流程详解
3.1 选择用来创建查询表的自变量
(1)选择标准:
1)维度应该对因变量y有较大的影响力(高度相关,不同取值时y的取值有明显区别);
2)维度之间相关性尽可能低,高相关性会造成有些单元格训练样本数太低(不过有时不必太关心这个问题,因为训练样本数低的单元格,在模型应用时,会落进来的记录也会很少)。
(2)选中的维度数量多少主要取决于:
1)用维度划分后,每个单元格训练样本的数量不能太少,一般情况下,至少也应该有几十个;
2)在样本数足够多的前提下,维度多些,划分精细些,模型效果会好一些。但过犹不及,不要把每个维度都划分的过于密集,避免过拟合。
3.2 对自变量进行分段
(1)自变量分段的总体原则:没有固定标准,从实际出发。
(2)类别变量常用的分段方法:
1)每个类别一个分段;
2)训练样本数比较小的类别,可以进行合并,但合并时应该注意,尽量把因变量y取值相近的类别合并,相差太远的尽量不合并;
3)特别大的类别可以进一步划分为小类别。
(3)数值型变量的划分方法:
1)不同分段有业务含义的,可以按业务含义分段;
2)没有业务含义的,可以按等分的方式分段,比如用20%分位数,10%分位数,5%分位数。
(4)每个单元格最佳的样本数量:最少也需要几十个。
3.3 训练模型
(1)把训练集的记录按照划分分到各个单元格,计算每个单元格的预测变量y的预测值。
(2)对于y是数值型的变量,y的预测值是本单元格所有个体y值的平均值。
(3)对于y是分类型的变量,y的预测值是本单元格所有个体y取各个类别的比例。通常,分类型的预测都会有一个特定的感兴趣的分类,比如响应、流失等,这时,只需要计算所有个体的y是响应(流失)的比例,作为本单元格的预测值即可。
3.4 稀疏单元格的处理方法
(1)首先考虑对某些稀疏的单元格去掉一些维度,可以从影响最小的维度开始去掉,直到单元格里的样本量够大。
(2)对于极为稀疏,甚至稀疏到0个样本的单元格(比如某个产品在某个地区根本不销售,那么这两个维度交叉起来的这个单元格样本数应该是0),可以把这样的单元格集中到一起,作为一个特殊类别,这个类别的y的预测值置为训练集所有个体作为一组时y的预测值。