建模杂谈系列62- knime模型实例1- 流失预测 Churn Prediction

说明

KNIME是一个开源的机器学习平台,有兴趣可以自己查一下怎么用,这里几篇都是关于其中的示例介绍。
在这里插入图片描述

内容

1 获取数据

原始程序读取了两个文件并拼接在一起
在这里插入图片描述
根据节点里的信息找到文件位置,拿出来
在这里插入图片描述
从上面可以看到,例子的来源是CallsData.xls, 从根目录下执行查找

find /|grep CallsData.xls
---
...
find: /.DocumentRevisions-V100: Permission denied
/Users/yukai/knime-workspace/Example Workflows/TheData/Customers/CallsData.xls
find: /dev/fd/3: Not a directory

打开文件,因为文件夹的名称有空格,要用单引号括起来

open '/Users/yukai/knime-workspace/Example Workflows/TheData/Customers'

找到了数据
在这里插入图片描述

  • CallsData 对应行为数据
  • ContractData 对应目标数据
# 目标数据
contract_df = pd.read_csv('ContractData.csv')
# churn=1表示流失
contract_df.head()

在这里插入图片描述

2 将数据连接起来

在这里插入图片描述

joint_df = pd.merge(left=callsdata_df, right = contract_df, how='inner', on=['Area Code','Phone'])

连接后的数据
在这里插入图片描述

3 将数值转为字符

在这里插入图片描述

在这里插入图片描述
这一步在python里是没有必要的,从某种程度上,sklearn或者深度学习,其实最终反而将数据转为纯数值。

4 将数据进行标记

在这里插入图片描述
流失客户标记为红色
在这里插入图片描述

5 分层采样

在这里插入图片描述

按照80:20的比例将数据分割
在这里插入图片描述

train_df, validate_df = train_validate_split(joint_df,target_varname='Churn',train_ratio=0.8)

在这里插入图片描述

6 模型训练

在这里插入图片描述

在这里插入图片描述

#导入需要的模块
from sklearn import tree                                
#实例化 
clf = tree.DecisionTreeClassifier(min_samples_leaf=6)        
#用训练集数据训练模型 
clf = clf.fit(X_train,y_train)   

7 样本内测试结果

result = clf.score(X_validate,y_validate)  
---
result
0.9312406576980568  

这个结果足够好吗?

y_validate.mean()
0.1375186846038864

可以看到测试集中目标比例大约是13.7%,因此我盲猜不流失的准确率是86.3%。目前模型93%,说明是有一定效果的。

对应的jupyter notebook已上传至此处,需要可以下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值