suiji
来源:互联网 发布:懒蛋蛋淘宝 编辑:程序博客网 时间:2024/04/28 02:39
PC_APP 响应模型
yuyingfu174
2016-10-28
0 结论
\(a^2+b^2=c^2\)
1 从特征选择来看,坐席接收短信之后是否转APP 跟 最后一次登录渠道 关系相当密切。 其次是 二级注册渠道 、历史活跃月数 、风险偏好
2 将9月份数据 2 8 分 ,训练集 准确率达到 0.9963175 接近100% 9月测试集的准确率并没有下降很多( 0.8306595 ) ,充分说明该批用户可以通过行为数据和 属性数据进行分割;甚至10月份的测试数据准确率也达 到了 0.7635359 。ROC 和lift 曲线也再次验证了模型的稳定性和可行性。
3 模型运用建议:运用模型选择9月份打电话进来且不愿接受短信用户 进行短信轰炸,测试其转化率。
1 模型数据
1 模型选择下列变量
lable–是否pc转app
age–年龄
age_range–年龄区间
gender–性别
city_level_cd–城市等级
live_city–手机号归属地
customer_level_cd—客户等级
reg_source–一级注册渠道
appid_sub_category–二级注册渠道
reg_month_uptonow–注册迄今月数
lg_month_uptonow–最后一次登录迄今月数
logon_months–历史活跃月数
lg_index –历史活跃月数 /注册距今月数
last_lg_source–最后一次登录渠道
Total_max_amt_1m –最大订单金额
Total_tms_1m –交易总次数
Total_suc_tms_1m –交易成功总次数
Total_fail_tms_1m –交易失败总次数
Total_suc_amt_1m –购买成功金额
Total_max_amt_gr_1m –最大订单金额上升比例
Total_tms_gr_1m –交易总次数上升比例
Total_suc_tms_gr_1m –交易成功次数上升比例
Total_suc_amt_gr_1m –交易失败次数上升比例
cash_amt –现金类资产金额
fixed_amt–固收类资产金额
equity_amt–权益类资产金额
final_cluster–风险偏好
aum_2_range–金融类AUM分组
toa_cmv_level–财富度
class_all_cnt—加挂账户
class_fin_cnt
class_life_cnt
asbind_fin ,asbind_life ,asbind_invest ,asbind_consume ,asbind_saving ,asbind_loan ,asbind_ins ,asbind_car ,asbind_house ,asbind_health ,asbind_other ,asbind_invest1 ,asbind_invest2 ,asbind_invest3 ,asbind_invest4 ,asbind_invest5 ,asbind_invest7 ,asbind_invest6 ,asbind_consume1 ,asbind_consume2 ,asbind_consume3 ,asbind_consume4 ,asbind_consume6 ,asbind_consume5 ,asbind_saving1 ,asbind_saving2 ,asbind_loan3 ,asbind_loan4 ,asbind_loan2 ,asbind_ins1 ,asbind_ins2 ,asbind_ins3 ,asbind_ins4 ,asbind_ins5 ,asbind_car1 ,asbind_house1 ,asbind_health1 ,asbind_health2 ,asbind_other1 ,asbind_other2
2 数据集构成
训练集: 9月份愿意接受短信的用户
实验集1: 9 月份愿意接受短信的部分用户
实验集2: 10 月份愿意接受短信的用户
目标变量: label=“yes” 表示转app ;“no” 表示没有转
加载模型(已经在linux R上训练测试好)
setwd("D:\\yzt_customerinsight)\\资料")#save(mtcars.rf, var, file = "rf.RData")#setwd("/data1/public/BI-ANALYTICS/yuyingfu174")load("rf_moder.RData")library(randomForest)
## Warning: package 'randomForest' was built under R version 3.3.1
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
library(ROCR)
## Warning: package 'ROCR' was built under R version 3.3.1
## Loading required package: gplots
## Warning: package 'gplots' was built under R version 3.3.1
## ## Attaching package: 'gplots'
## The following object is masked from 'package:stats':## ## lowess
2 变量特征选择
变量特征选择根据的是信息熵,和模型准确率的提升两个指标:如果因变量全部选择可以得到一个 准确率;然后逐一减少,观察模型的准确率的变化。下降的越多,变量越重要 ,
var
## y x## 11 last_lg_source 134.8131701## 6 appid_sub_category 53.4331876## 9 logon_months 51.2831396## 16 final_cluster 50.2128296## 8 lg_month_uptonow 40.7756408## 7 reg_month_uptonow 37.3886467## 10 lg_index 35.1029427## 19 class_all_cnt 34.3406625## 20 class_fin_cnt 32.6216489## 21 class_life_cnt 32.4468446## 5 reg_source 30.8592353## 18 toa_cmv_level 30.5240577## 45 asbind_consume5 29.0801325## 53 asbind_ins3 25.5555699## 2 gender 23.0472896## 51 asbind_ins1 22.2783487## 42 asbind_consume3 21.6331994## 28 asbind_ins 21.5750428## 25 asbind_consume 21.3223115## 13 cash_amt 20.9579354## 24 asbind_invest 20.8741615## 1 age_range 20.7011536## 17 aum_2_range 20.6877859## 26 asbind_saving 19.0929696## 23 asbind_life 18.8721258## 37 asbind_invest5 17.4820744## 47 asbind_saving2 16.7819262## 46 asbind_saving1 16.7330311## 40 asbind_consume1 16.6984137## 32 asbind_other 15.4672161## 22 asbind_fin 15.4599481## 33 asbind_invest1 15.0362838## 3 city_level_cd 14.3640006## 61 asbind_other2 14.0119555## 4 customer_level_cd 11.9664415## 59 asbind_health2 10.3322859## 56 asbind_car1 9.8330908## 31 asbind_health 8.8838069## 35 asbind_invest3 8.8328954## 29 asbind_car 8.3101837## 34 asbind_invest2 7.6094925## 15 equity_amt 7.0238887## 27 asbind_loan 6.6209193## 50 asbind_loan2 5.1738965## 14 fixed_amt 4.8829833## 30 asbind_house 4.6546920## 57 asbind_house1 4.5752890## 44 asbind_consume6 3.3371016## 41 asbind_consume2 2.1679554## 52 asbind_ins2 0.9401292## 55 asbind_ins5 0.7087917## 43 asbind_consume4 0.0105080
varImpPlot(trian.rf)
3 正确率 召回率 准确率 F
准确率: 反映了被分类器判定的正例中真正的正例样本的比重
正确率: 反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负
召回率: 反映了被正确判定的正例占总的正例的比重
#训练集F1
## $acc## [1] 0.9699852## ## $recall## [1] 0.9333078## ## $Precision_F## [1] 0.9963175## ## $F_score## [1] 0.9512931
#测试集9F2
## $acc## [1] 0.8024934## ## $recall## [1] 0.6934524## ## $Precision_F## [1] 0.8306595## ## $F_score## [1] 0.7439989
#测试集10F3
## $acc## [1] 0.7486054## ## $recall## [1] 0.587835## ## $Precision_F## [1] 0.7635359## ## $F_score## [1] 0.65855
4 ROC曲线
ROC曲线下方的面积(Area Under the ROC Curve, AUC)提供了评价模型平均性能的另一种方法。如果模型是完美的,那么它的AUC = 1,如果模型是个简单的随机猜测模型,那么它的AUC = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大
m_rf=prediction(pre_rf_train[,2],as.character(trian1data[,length(trian1data)]))m_rf_test1=prediction(pre_rf_test1[,2],as.character(test1data[,length(test1data)]))m_rf_test2=prediction(pre_rf_test2[,2],as.character(testdata[,length(testdata)]))plot(performance(m_rf,'tpr','fpr'),col=2,mian="ROC")test1_roc=performance(m_rf_test1,'tpr','fpr')test2_roc=performance(m_rf_test2,'tpr','fpr')lines(unlist(test1_roc@x.values),unlist(test1_roc@y.values),col=3)lines(unlist(test2_roc@x.values),unlist(test2_roc@y.values),col=4)abline(0,1, lty = 8, col = "grey")legend("bottomright",legend=c("9月训练集","9月测试集","10月测试集"), col=2:4,pch=c(5,24),lty=1)
5 Lift曲线
plot(performance(m_rf,'lift','rpp'),col=4,mian="LIFT")test1_lift=performance(m_rf_test1,'lift','rpp')test2_lift=performance(m_rf_test2,'lift','rpp')lines(unlist(test1_lift@x.values),unlist(test1_lift@y.values),col=3)lines(unlist(test2_lift@x.values),unlist(test2_lift@y.values),col=2)legend("topright",legend=c("9月训练集","9月测试集","10月测试集"), col=4:2,pch=c(5,24),lty=1)