一、连接数据库
安装了mysql之后自动安装了ODBC,在开始菜单下搜索“ODBC”即可,打开ODBC,在用户DCN中设置需要连接的数据库即可。
1、选择消费金额前10的顾客
根据订单表、订单明细表、客户表写类似sql的语句,根据订单id汇总总金额,根据总金额降序选择前10条,根据订单id合并订单表、最后根据客户id合并客户表即可。
用mysql导入数据:打开sqlyog,点击相应的数据里——开始新的工作——下一步——系统/用户DSN——选择之前在ODBC添加的数据库——选择相应的表(客户、订单、订单明细)——下一步ok。
在mysql中的操作:
SELECT * FROM 客户 AS d
INNER JOIN
(SELECT b.订单ID,客户ID ,总金额
FROM 订单 AS a
INNER JOIN (SELECT 订单ID,(单价*数量*(1-折扣)) AS 总金额
FROM 订单明细
GROUP BY 订单ID
ORDER BY 总金额 DESC
LIMIT 10) AS b
ON a.`订单ID`=b.订单ID) AS c
ON d.`客户ID`=c.客户ID
二、分析产品之间的关联
数据结构如下图
步骤:源节点——类型结点——网络结点
粗线为强关联,细线弱关联
三、直邮目标客户挖掘
数据结构
变量:年龄、性别、客户所在地、收入、是否结婚、孩子数量、有无汽车、是否有储蓄账户(save_act)、是否有活期账户(current_act)、是否有抵押贷款(mortgage)、是否响应(pep:yes为响应,no为不响应)。
建模
步骤:源节点——分区(分为训练集和测试集)——类型(定义输入输出)——c5.0(以信息增益率划分特征的决策树)——分析(模型评估)
评估:
10折交叉验证,平均正确率91.3%。
注意:在spss modeler中对分类变量值为字符串格式的字段不需要像sklearn那样转为数字或者生成哑变量(one-hot),spss modeler内部会自动编码。
模型应用:
用sklearn试下
import pandas as pd
import numpy as np
data = pd.read_csv(r"C:\Users\Administrator\Desktop\mailshot.csv",encoding = "utf-8")
data.drop(["id"],inplace = True ,axis =1)#丢掉ID列
#将分类字符串改为数字
tra_dict = {"MALE" : 0,"FEMALE":1}
data["sex"] = data["sex"].map(tra_dict)
tra_dict1 = {"NO":0,"YES":1}
for u in ["married","car","save_act","current