数据科学与机器学习案例之汽车目标客户销售策略研究

发布于:2023-01-26 ⋅ 阅读:(15) ⋅ 点赞:(0) ⋅ 评论:(0)

数据科学与机器学习案例之客户的信用风险与预测

数据科学与机器学习之信用卡欺诈识别(严重类失衡数据建模)

数据科学与机器学习案例之汽车目标客户销售策略研究

识别数据中的异常值与缺失值

数据中的0类与1类严重失衡,具体的解决方法可参考链接中的文章。
在这里插入图片描述

> library(data.table)
> library(Hmisc)
> library(readxl)
> library(caret)
> library(car)
> df.train <- data.table(read_excel('目标客户体验数据.xlsx'))                                                                         
> df.test <- data.table(read_excel('待判定的数据.xlsx'))                                                                         
> 
> df.train$a1[which(df.train$a1 > 100)] = mean(df.train$a1[-which(df.train$a1 > 100)])
> df.train$a3[which(df.train$a3 > 100)] = mean(df.train$a3[-which(df.train$a3 > 100)])
> df.train$a5[which(df.train$a5 > 100)] = mean(df.train$a5[-which(df.train$a5 > 100)])
> df.train[,B3 := recode(B3,'1=1;2=2;3=3;4=4;5=5;6=5')]
> df.train$B7[is.na(df.train$B7)] = 0
> df.train[,B8 := 2022 - B8 + 1]
> df.train[,IS := ifelse(B13 > B14,0,1)]
> View(df.train[which(df.train$IS == 1),.(B13,B14)]) # 删除这些异常值
> df.train = df.train[-which(df.train$IS == 1),]
> df.train[,IS := NULL]
> 
> 
> df.train$B17[which(df.train$B17 > 100)] = quantile(
+           df.train$B17[-which(df.train$B17 > 100)],0.5,na.rm = T)
> 
> 
> continous = c(paste('a',1:8,sep = ''),
+               'B2', 'B4', 'B5', 'B7', 'B8', 'B10'
+               , 'B13', 'B14', 'B15', 'B16', 'B17')
> category = colnames(df.train)[which(!colnames(df.train) %in% continous)]
> 
> apply(df.train[,continous,with = FALSE],2,e1071::skewness)

可视化

相关系数图

通过相关系数图可以看到连续性变量间存在较大的相关性。

雷达图

脸谱图

glmnet模型

> glmnetGrid = expand.grid(.alpha = c(0,.1),
+                          .lambda = seq(.01,.1,length = 10))
> 
> ctrl <- trainControl(method = 'cv',number = 10,classProbs = TRUE,
+                      summaryFunction = twoClassSummary,
+                      verboseIter = TRUE)
> 
> set.seed(1024)
> glmnet.fit = train(x = df.train[,2:27],y = df.train$y,
+                   method = 'glmnet',
+                   tuneGrid = glmnetGrid,
+                   trControl = ctrl,
+                   metric = 'ROC')
> plot(glmnet.fit,plotType = 'level')
> 

ROC曲线下面积图

总结:汽车目标客户销售策略研究仍然为类失衡问题,类失衡问的具体解决方法参考上一篇博客,这里对于其问题不做过多的赘述!