1.问题提出:某游戏公司用户数量停滞问题,进行针对性运营策略

2.业务目标:

  • 抽取目标用户集
  • 根据用户行为特征调整游戏运营策略
  • 增加用户游戏兴趣

3.问题分析流程

  1. 计算用户的业绩指标(KPI)
  2. 提取用户行为特征提取重要特征属性(PCA降维)
  3. 根据用户特征属性进行聚类发现不同用户群体(K-means聚类算法)
  4. 计算每类用户的平均KPI

4.分析结果

4.1抽取用户行为分析所需用户集(过滤掉行为频率低的用户)

将用户根据参与次数分为三类,取前两类参与度较高的用户行为数据作为数据源

4.2根据用户特征进行K-Means聚类

此步骤根据业务部门提供的相关资料将K值范围定为4-6类,通过聚类筛选标准,K=5时效果较好

4.3 聚类结果结合用户特征,应用雷达图进行展示与分析

根据PCA降维得到的重要特征中,根据6个重要特征构建了雷达图,并对5个用户群体进行分析

4.4结合用户群体KPI进行用户行为分析,给出运营策略

分析结果:

#1用户群体,各项技能等级较低,技术较差,但是游戏KPI贡献度较高

#2用户群体,对战敌方首领较多,援救他人较多,但是游戏KPI贡献度较低

#3用户群体,参与游戏度和等级较高,技术最好,但是游戏KPI贡献度较低

#4 用户群体,经常帮助他人的用户,技术较好,但是游戏KPI贡献度最低

#5用户群体,经常互帮互助的用户群体,游戏KPI贡献度最高

运营策略:

  • 增加互帮互助的可能性,提高组队性能,优化组队方式
  • 对于新手用户给予技术扶持,让其多尝试不同角色,推荐较高战力装备
  • 对于技术较好用户,推荐难度较高的任务
  • 优化用户间的交流机制方便用户群体组队交流

主要代码:

1.提取分析数据源(过滤频率低的用户)

# 读入数据

# DAU
dau <- readDau("game-01", "2013-05-01", "2013-10-31")
head(dau)
# DPU
dpu <- readDpu("game-01", "2013-05-01", "2013-10-31")
head(dpu)
# Action
user.action <- readActionDaily("game-01", "2013-10-31", "2013-10-31")
head(user.action)

# 将DAU和DPU合并

# 合并消费额数据
dau2 <- merge(dau, dpu[, c("log_date", "user_id", "payment"), ],
by = c("log_date", "user_id"), all.x = T)
# 添加消费额标志位
dau2$is.payment <- ifelse(is.na(dau2$payment), 0, 1)
head(dau2)
# 将无消费记录的消费额设为0
dau2$payment <- ifelse(is.na(dau2$payment), 0, dau2$payment)
head(dau2)

# 按月统计

# 增加一列表示月份
dau2$log_month <- substr(dau2$log_date, 1, 7)
# 按月统计
mau <- ddply(dau2, .(log_month, user_id), summarize, payment = sum(payment),
access_days = length(log_date))
head(mau)

# 确定排名的范围
library(ykmeans)
library(ggplot2)
library(scales)
# A47为排行榜得分
user.action2 <- ykmeans(user.action, "A47", "A47", 3)
# 每个类的人数
table(user.action2$cluster)

# 排行榜得分的分布
ggplot(arrange(user.action2, desc(A47)),
aes(x = 1:length(user_id), y = A47,
col = as.factor(cluster), shape = as.factor(cluster))) +
geom_line() +
xlab("user") +
ylab("Ranking point") +
scale_y_continuous(label = comma) +
ggtitle("Ranking Point") +

theme(legend.position = "none")

2.根据用户行为特征进行聚类分析,给出最优聚类结果

# 限定排名靠前的用户
user.action.h <- user.action2[user.action2$cluster >= 2,
names(user.action)]

# 进行主成分分析

# 用于机器学习的库
# 利用库中包含的函数进行数据的前期处理
library(caret)
user.action.f <- user.action.h[, -c(1:4)]
row.names(user.action.f) <- user.action.h$user_id
head(user.action.f)
# 删除那些信息量小的变量
nzv <- nearZeroVar(user.action.f)
user.action.f.filterd <- user.action.f[,-nzv]
# 删除那些相关性高的变量
user.action.cor <- cor(user.action.f.filterd)
highly.cor.f <- findCorrelation(user.action.cor,cutoff=.7)
user.action.f.filterd <- user.action.f.filterd[,-highly.cor.f]
# 进行主成分分析
# pca
user.action.pca.base <- prcomp(user.action.f.filterd, scale = T)
user.action.pca.base$rotation

# 进行聚类
user.action.pca <- data.frame(user.action.pca.base$x)
keys <- names(user.action.pca)
user.action.km <- ykmeans(user.action.pca, keys, "PC1", 3:6)
table(user.action.km$cluster)

ggplot(user.action.km,
aes(x=PC1,y=PC2,col=as.factor(cluster), shape=as.factor(cluster))) +

geom_point()

3.根据重要特征属性进行分析(雷达图)

# 计算每个类的平均值
user.action.f.filterd$cluster <- user.action.km$cluster
user.action.f.center <-
ldply(lapply(sort(unique(user.action.f.filterd$cluster)),
function(i) {
x <- user.action.f.filterd[user.action.f.filterd$cluster == i,
-ncol(user.action.f.filterd)]
apply(x, 2, function(d) mean(d))
}
))

# 生成用于雷达图的数据
library(fmsb)
# 对雷达图所需的数据进行整理的函数
createRadarChartDataFrame <- function(df) {
df <- data.frame(df)
dfmax <- apply(df, 2, max) + 1
dfmin <- apply(df, 2, min) - 1
as.data.frame(rbind(dfmax, dfmin, df))
}
# 排除相关性较高的变量
df <- user.action.f.center[, -(ncol(user.action.f.center) - 1)]
df.cor <- cor(df)
df.highly.cor <- findCorrelation(df.cor, cutoff = 0.91)
# 手动调整使得数据易于解释
df.filterd <- df[, -df.highly.cor]
# 生成雷达图所需的数据
df.filterd <- createRadarChartDataFrame(scale(df.filterd))
names(df.filterd)

names(df.filterd) <- c("级别", "救援他人的次数", "被救援的次数", "对战敌方首领的次数",
"参与战斗的次数", "参与游戏的次数")

radarchart(df.filterd, seg = 5, plty = 1:5, plwd = 4, pcol = rainbow(5))

legend("topright", legend = 1:5, col = rainbow(5), lty = 1:5)

4.计算每个用户群体的KPI

# 计算每个类的KPI

user.action.f.filterd$user_id <-
as.numeric(rownames(user.action.f.filterd))
user.action.kpi <- merge(user.action.f.filterd, mau,by = "user_id")
ddply(user.action.kpi, .(cluster), summarize,
arpu = round(mean(payment)),
access_days = round(mean(access_days)))

用户行为分析-解决某游戏公司用户数量停滞问题,给出营销策略相关推荐

  1. 家用电器用户行为分析与事件识别_用户行为分析系统

    随着互利网时代多元化商业模式和细分市场的快速发展,众多行业面临着高昂的获客成本和高流失率的双重挑战,如何精准定位获客渠道?如何精细化运管,挖掘更大的用户价值?如何洞察客户流失的真实原因?如何减少用户流 ...

  2. 小红书用户画像分析_数据分析中的用户画像,原来就是这么简单

    转载自:接地气学堂 有同学问:到处都看到吹用户画像的,可就是没见过真正例子.今天我们来一个:利用用户画像提升交易额的实战例子.而且这个例子就发生在我们身边. 1.一个活生生的用户画像实例 秋高气爽,爸 ...

  3. 家用电器用户行为分析与事件识别_用户行为分析埋点实时数仓实践

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...

  4. 用户行为分析面面观(之一)-----用户行为研究体系 + 特征1:差异性

    你的营销虽林林种种,但却有一个永恒的轴心:用户. 用户行为指挥着营销活动的走向:从新品开发到价格制定:从渠道管理到品牌管理--,营销围绕用户展开,用户行为分析是营销工作的首要环节. 用户行为分析需要回 ...

  5. 小红书用户画像分析_电商平台用户画像分析

    电商平台用户画像分析 1.项目背景 1.1 分析目的 通过分析用户的行为特征,深挖用户的潜在价值. 1.2 产品简述 由于数据脱敏无法具体了解产品的种类,通过数据只能基本判断该产品的消耗量和复购率并不 ...

  6. 打印机老是需要用户干预_打印机需要用户干预怎么解决,打印机提示需要用户干预...

    在使用打印机的时候经常会碰到各种各样的问题导致打印机无法打印,例如近日就有win7系统用户反映说他使用打印机打印的时候,点击打印没有响应,然后点击状态提示"需要用户干预",这样就没 ...

  7. MC公司购物网站用户行为分析

    MC公司购物网站用户行为分析 项目背景 MC公司原是传统零售行业,随着电子商务发展,为了拓展公司业务,推出网购业务.为了平台创造出更多的利润,并且能够合理的投放广告,使用网站18个月后数据进行分析,根 ...

  8. 软件开发之计划阶段: ”声控打鼓”游戏的”用户/场景”分析

    "用户/场景"分析(a.k.a user scenarios)对于软件开发的计划阶段是十分重要的.只有明确了软件的用户群,以及软件所应用的场合,才能真正了解到所要开发的软件是否有价 ...

  9. 为什么要做用户行为分析,怎么做好用户行为分析?

    作者简介:谢荣生,数极客 创始人 & CEO,前国美金融产品总监.淘宝网高级产品经理. 笔者在中国互联网行业从业16年,经历了多个互联网发展阶段,也先后负责过产品.运营.营销等工作,发现最近几 ...

  10. 中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

    易观:受全球经济增速下行的消极影响,2022年国内外游戏市场规模普遍下滑.但中国游戏公司凭借处于全球领先水平的研发.发行和运营的能力与经验,继续加大海外市场布局,推动高质量发展迈上新台阶. 风险提示: ...

最新文章

  1. 【实用】SAP修改记录表开发
  2. 解析“60k”大佬的19道C#面试题(下)
  3. openjdk 使用_如何在OpenJDK中使用ECC
  4. maven添加jar包依赖
  5. 搭上信息化火箭,文档管理也要跟上潮流
  6. 美来临公司商业模式分析,公司是不昨的
  7. Spring Data 起步
  8. 老版资源嗅探浏览器 - 遨游浏览器稀有绿色版
  9. easyar android 开发,EasyAR 使用Unity如何导出android项目
  10. Android如何监听蓝牙耳机的按键事件
  11. Android 怎样默认打开便携式WIFI热点 M
  12. 我学会了学计算机,我学会了电脑打字
  13. 百度大脑FaceID人脸识别模型量化技术,确保算法精度无损加速一倍
  14. saiku 展示优化第二步(要诀和技巧)
  15. php项目素材,PHP素材资源解析平台源码V8.0(thinkPHP框架内核)
  16. 专访丨兼容国内外市场的代码分析软件,鉴释科技帮助企业减少bug发生率
  17. 实用的电脑绘图软件——亿图图示
  18. DIV布局之道一:DIV块的水平并排、垂直并排
  19. win10内置Ubuntu安装图形界面
  20. vscode提示:“An SSH installation couldn‘t be found”

热门文章

  1. fabric 1.3.1 ,全手动部署到5台机器上.支持 kafka 模式的共识机制和 couchdb 存储,以及 fabric ca , fabric explorer的使用
  2. 刨根系列 之 Unity3D UGUI 背后的工作原理
  3. html 粘贴 word文档,Word2019文档中粘贴文本的两种方式
  4. oracle添加redo,添加redolog组成员
  5. 2021江苏考试院高考成绩查询入口,江苏省教育考试院2021年江苏高考成绩查询时间及系统入口...
  6. laydate使用官方使用方法
  7. 常用相机投影及畸变模型(针孔|广角|鱼眼)
  8. burst什么意思_burst是什么意思_burst的用法
  9. 【黑灰产犯罪研究】恶意点击
  10. 宾州州立计算机科学世界排名,美国宾州州立大学排名和各专业排名