suiji

来源:互联网 发布:懒蛋蛋淘宝 编辑:程序博客网 时间:2024/04/28 02:39

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)

0 0