最近咋研究clementine,发现他功能很强大,流程也很清晰化,现在记录一个简单的操作过程,以下为整个操作过程图
研究说明,主要研究顾客的购买行为,主要究对象为顾客购买A商品的情况,我们主要研究顾客买了A商品后是否会再次购买A。B商品是A商品的附加商品,使用B商品会对是否再次购买A商品产生较大影响。
数据说明,来自数据库的2张表,第一张来自一个商品A销售数据,记录了客户ID,第一次购买A的消费金额,客户等级,是否有第二次购买A。第二张表记录和这个商品相关的另外一个商品B,记录了客户ID(和第一张表关联),B的使用数量。现在来预测第一次购买A的人是否会第二次再购买A。根据以往的数据显示,第一次消费金额,客户等级,B商品的使用情况会对是否再次购买A产生比较大的影响
现在直接到clementine进行操作
首先用 源模块的sql导入节点载入数据:商品A和数据:商品B
。
接下来做简单的处理数据,首先把商品A和商品B这2个数据合并,这步可以在数据库中用join做,不过为了操作一下clementine的数据处理功能,还是用记录选项中的
节点来操作,合并方法选择关键字:客户ID,下面选择全外连接,因为需要的数据是购买A商品的客户使用B商品的情况,也有部分客户使用了B商品但是没有购买A商品或者购买了A商品没有使用B商品,所以要用外连接,稍后把使用B商品但没有购买A商品的客户过滤掉,同时对买了A商品没有使用B商品的数据做一些处理,因为目前只关心购买A商品客户的相关情况
合并数据后,
接下来过滤掉
使用B商品但没有购买A商品的数据
,用节点,以首次金额这个字段为null,以及客户等级为null为条件来丢弃记录
接下来生成一个是否使用B商品的字段,用节点,如果B的使用次数大于0,为1,等于0或Null 则为0,
这个变量稍后将进入模型,更改为标志型变量。
接下来对数据进行简单的审核,用节点,发现客户等级有30个缺失记录,
其他进入模型的变量都没有缺失,所以这里对客户等级缺失的记录不进入模型。
选择节点,对进入模型的变量做最后的处理,把客户ID和B的使用次数方向选为无,这些变量不进入模型,是否再次购买A为预测变量,选择输出,类型选择标志,其他为输入,是否使用B商品选择标志,客户等级的缺失开启,检查选择丢弃。
接下来进入建模阶段,这里的数据变量比较少,数量也不大 ,所以不选择建立训练和测试分区了,由于是预测再次购买与否,所以选择,
模型排序选择总体精确性,方法选择全部,执行一下。结果都差不多,准确率都在90%左右,C5,C&R数,神经网络,排在前三,选择这3种模型生成节点
接下来看看这个模型的解释结果,变量重要性显示,是否购买B商品最重要,A的首次费用其次,客户等级重要性不强,被排除在决策树的模型外。
同样的,C&R数的结果和C5的结果相似,神经网络算法比较复杂,这里暂时不陈述了。通过决策树可以看到,没有使用B商品的客户,几乎不会再第二次购买A商品了,使用了B商品的客户购买A商品的概率就比较大了,同时首次购买A商品费用大于62块的客户,再使用了B商品后,再次购买A商品的概率将达到70%
接下来通过一个的节点将模型整合,通过
和
可以看看模型的效果。
也可以保存在表中查看,
最后,对于新的数据,但是没有是否再次购买A商品的字段,我们可以通过这个模型来预测一下。
只要更换数据节点即可,之后的不能用了,可以通过生成表或者图表来看预测结果。
新的数据的预测结果为:整体上再次购买A的概率降低了
总结:通过一个简单的数据对spss clementine的从数据导入,选择,处理,建模,分析,应用有所了解。
当然由于数据量小和变量少,这个操作过程对简单,
在面对海量数据时,整个操作过程会更加复杂,数据处理已经其他考虑的方面将多得多。还需要多多学习和积