游戏用户流失预测数据分析

本文介绍了对游戏用户流失数据进行分析的过程,包括数据转换、变量相关性分析、10折交叉验证选择模型优化参数。使用了二元logistic回归、C5.0决策树、随机森林和神经网络模型。结果显示,随机森林在训练集上表现出近乎完美的预测效果,但测试集上略有下降,可能存在过拟合。模型对比显示,所有模型在训练和测试集上的准确率均超过90%,其中随机森林和logistic回归表现突出。
摘要由CSDN通过智能技术生成

感谢关注天善智能,走好数据之路↑↑↑

欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!

练习数据来源

谢佳标老师R语言游戏数据分析和挖掘中的第8章:用户流失预测数据.csv

数据分析方法

使用各种分类算法(二元logistic回归、决策树、随机森林、人工神经网络)

分析步骤

按照谢老师文章中的步骤,依次为:

步骤1:数据转换:增加周活跃度和玩牌胜率等衍生指标。周活跃度=登录总次数/7;玩牌胜率=赢牌局数/玩牌局数;玩牌负率=输牌局数/玩牌局数。

步骤2:变量相关性分析:考虑因子变量的哑变量处理

步骤3:10折交叉验证进行模型优化参数选择

步骤4:构建决策树、随机森林、人工神经网络构建三种分类模型,并比较各分类器结果,选择最优分类器。

分析

##导入数据

说明:共1309条记录,13个字段。数据已经经过清洗,无缺失值,且变量属性无需修改。

> userchurn<-read.csv("E:\\R语言\\Game_DataMining_With_R-master\\data\\第8章\\用户流失预测数据.csv",header=T)> str(userchurn)'data.frame':1309 obs. of13variables:$ 用户id : int12345678910 ...$ 是否流失 : Factor w/2levels "否","是":2112221221 ...$ 性别 : Factor w/2levels "男","女":1111111111 ...$ 登录总次数: int2332227226 ...$ 站内好友数: int1510101000 ...$ 等级 : int4674446343 ...$ 积分 : int058000260020 ...$ 玩牌局数 : int27832091530186510156 ...$ 赢牌局数 : int4405643810382 ...$ 输牌局数 : int04315300055074 ...$ 正常牌局 : int01101630186410156 ...$ 非正常牌局: int0000001000 ...$ 最高牌类型: int0780007084 ...

>summary(userchurn) 用户id是否流失 性别 登录总次数 站内好友数Min. : 1 否: 291 男:1057Min. : 2.00Min. : 0.0001stQu.: 328 是:1018女: 252 1stQu.: 2.001stQu.: 0.000Median: 655Median: 2.00Median: 1.000Mean: 655Mean: 2.81Mean: 1.3413rdQu.: 982 3rdQu.: 3.003rdQu.: 2.000Max.:1309Max.:11.00Max.:22.000等级 积分 玩牌局数 赢牌局数Min. : 0.000Min. : 0.000Min. : 1.0Min. : 1.001stQu.: 3.0001stQu.: 0.0001stQu.: 8.01stQu.: 2.00Median: 4.000Median: 0.000Median: 23.0Median: 7.00Mean: 4.361Mean: 7.257Mean: 104.4Mean: 26.533rdQu.: 5.0003rdQu.: 5.0003rdQu.: 63.03rdQu.: 19.00Max.:16.000Max.:595.000Max.:7215.0Max.:2023.00输牌局数 正常牌局 非正常牌局 最高牌类型Min. : 0.00Min. : 0.0Min. : 0.000Min. : 0.0001stQu.: 0.001stQu.: 8.01stQu.: 0.0001stQu.: 0.000Median: 0.00Median: 22.0Median: 0.000Median: 0.000Mean: 69.05Mean: 110.2Mean: 1.483Mean: 3.4753rdQu.: 29.003rdQu.: 63.03rdQu.: 0.0003rdQu.: 8.000Max.:6568.00Max.:12425.0Max.:284.000Max.:11.000

##变量转换

> ##变量转换> userchurn$周活跃度<-round(userchurn$登录总次数/7,3)> userchurn$玩牌胜率<-round(userchurn$赢牌局数/userchurn$玩牌局数,3)> userchurn$玩牌负率<-round(userchurn$输牌局数/userchurn$玩牌局数,3)

考虑到自己电脑对中文不太友好,后续建模时总是出现警告,所以尽量将汉字字符改为英文字符,字段名则不需要改。

> levels(userchurn$是否流失)<-c("0","1")##0表示不会,1表示会> levels(userchurn$性别)<-c("M","F")

##相关性分析

> library(caret)> userchurn_dummy<-dummyVars(~.,data=userchurn)> userchurn_dummy_pre<-as.data.frame(predict(userchurn_dummy,userchurn))> str(userchurn_dummy_pre)'data.frame':1309 obs. of18variables:$ 用户id : num12345678910 ...$ 是否流失.0: num0110001001 ...$ 是否流失.1: num1001110110 ...$ 性别.M : num1111111111 ...$ 性别.F : num0000000000 ...$ 登录总次数: num2332227226 ...$ 站内好友数: num1510101000 ...$ 等级 : num4674446343 ...$ 积分 : num058000260020 ...$ 玩牌局数 : num27832091530186510156 ...$ 赢牌局数 : num4405643810382 ...$ 输牌局数 : num04315300055074 ...$ 正常牌局 : num01101630186410156 ...$ 非正常牌局: num0000001000 ...$ 最高牌类型: num0780007084 ...$ 周活跃度 : num 0.286 0.429 0.429 0.286 0.286 0.28610.286 0.286 0.857 ...$ 玩牌胜率 : num 0.148 0.482 0.268 0.267 0.1 0.444 0.154 0.3 0.533 0.333 ...$ 玩牌负率 : num0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值