在上一篇文章,我们初步探讨了这份淘宝用户数据所体现的用户行为特点,具体说到一次淘宝行为是怎么开始的,怎么结束的,当中又涉及多少种,累计多少次小的动作。

本文将继续研究用户的行为特点,通过kmeans聚类将这些行为分为不同的类别,并归纳出各群特征。
依然将用户-商品-时间段-点击数-加购数-收藏数-购买数记为一次淘宝行为,统计周期过长过短都不能概括一次淘宝过程,我这里考虑建模代价与结果反馈选了1个月,具体请视实际情况和业务人员意见为定。

数据准备(用户-商品-时间段-点击数-加购数-收藏数-购买数的聚合计算)——聚类分析——结果展示——特征归纳,下面按这个顺序来。

  1. 数据准备
    通过sqldf(聚合计算)+reshape2(一维表转二维表),原12256906x6的数据集变为5291166x4再变为4686904x6。
    以第15行说明所得数据集的含义,这个月内,用户4913对商品12265214主页看了8次,收藏了1次,但没有加入购物车也没有下单购买。

  2. 聚类分析
    参与聚类的特征指标为一次淘宝行为中四种行为click、collect、cart和buy的占比,因为之前写过一篇关于聚类的文章,类别选择的原理就跳过,直接看结果,类别数为4、5都可以。

  3. 结果展示
    选取类别数为5。分类效果和每个类别的数量如图,阴影重合面积较少,意味着分类效果不错,其中第3类用户占了89.1%。

  4. 特征归纳
    各个类别在四种行为click、collect、cart和buy上区分度很明显。
    C1:特别喜欢将逛过的商品收藏起来
    C2:加入购物车和购买的比例的比例都是最高
    C3:只是单纯看看
    C4:看和加入购物车的比例较高,但下单的比例很低
    C5:相比C3,不仅看,也会收藏、加购、下单

dd<-read.csv('tianchi_mobile_recommend_train_user.csv')library(sqldf)
library(gsubfn);library(proto);library(RSQLite)#过程聚合计算
aa<-sqldf('select user_id,item_id,behavior_type,count(1) from ddgroup by user_id,item_id,behavior_type')
#数据格式转换
library(reshape2)
bb<-dcast(aa, user_id+item_id ~ behavior_type)
bb[is.na(bb)] <- 0  #匹配不到的值记为0
colnames(bb)[c(3:6)]<-c("click","collect","cart","buy")#聚类分析
library(factoextra);library(ggplot2)
samp<-bb[sample(c(1:nrow(bb)),50000,replace=F),]
fviz_nbclust(samp[,c(3:6)], kmeans, method = "wss")#大数据集溢出,抽样
result <- kmeans(bb[,c(3:6)],4)
type <- result$cluster
table(type)  # 查看类别分布
centervec <- as.data.frame(result$center)  #各类中心
#绝对数效果一般,换成比例,效果很好
samp2<-samp[,c(3:6)]/rowSums(samp[,c(3:6)])
result <- kmeans(samp2,5)
type <- result$cluster
table(type)
#原数据聚类
newbb<-bb[,c(3:6)]/rowSums(bb[,c(3:6)])
result <- kmeans(newbb,5)
type <- result$cluster
table(type)#可视化1:聚类效果(抽样数据集)
fviz_cluster(result,samp2)#可视化2:各维度上的表现(原数据)
library(fmsb)
max <- apply(result$centers, 2, max)
min <- apply(result$centers, 2, min)
data.radar <- data.frame(rbind(max, min, result$centers))
radarchart(data.radar, pty = 32, plty = 1, plwd = 2, vlcex = 0.7)
L <- 1.2
for(i in 1:5){text(2, L, labels = paste("--class", i), col = i)L <- L - 0.2
}

淘宝用户行为分析(四):行为聚类相关推荐

  1. 阿里天池:淘宝用户行为分析项目

    数据来源:阿里天池 - 淘宝用户商品行为数据 (在这里仅选用表名为 "tianchi_mobile_recommend_train_user" 中的数据,用作淘宝用户行为分析) 项 ...

  2. Python项目实战 —— 04. 淘宝用户行为分析

    Python项目实战 Python项目实战--目录 Python项目实战 -- 04. 淘宝用户行为分析 一.背景 二.解题思路 三.数据分析 3.1 数据清洗 3.2 数据分析 3.2.1 用户整体 ...

  3. Python数据分析案例—淘宝用户行为分析

    赛题与数据 一.项目背景 本数据报告以淘宝app平台为数据集,通过行业的指标对淘宝用户行为进行分析,从而探索淘宝用户的行为模式,具体指标包括:日PV和日UV分析,付费率分析,复购行为分析,漏斗流失分析 ...

  4. MySQL—淘宝用户行为分析

    文章目录 一.项目背景 二.结论先行 2.1用户行为漏斗转化分析 2.2时间维度分析用户行为 2.3商品维度分析用户行为 2.4RFM模型用户价值分析 三.数据分析 3.1数据来源 3.2数据说明 3 ...

  5. 淘宝用户行为分析MySQL

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 淘宝用户行为分析MySQL 一.数据清洗 二.总体情况 1.UV.PV.人均浏览次数 2.复购率.跳失率 三.用户行为分析 1.行为转 ...

  6. 淘宝用户行为分析项目

    淘宝用户行为分析项目 说明:项目通过jupter notebook.使用pandas,numpy,matplotlib,seaborn等第三方库对数据进行不同维度上的分析. 一.项目背景 本数据报告以 ...

  7. MySQL数据项目分析实战——淘宝用户行为分析

    MySQL数据项目分析实战--淘宝用户行为分析 一.项目背景 二.项目目标 2.1分析目的 2.2分析维度 三.数据的收集与整理 3.1数据来源 3.2数据说明 3.3理解数据 3.4导入数据 四.数 ...

  8. 数据分析实战之淘宝用户行为分析(3) -- 用户行为路径分析

    数据分析实战之淘宝用户行为分析(3) -- 用户行为路径分析 淘宝行为分析Tableau可视化展示 数据分析实战之淘宝用户行为分析(5) - 数据分析报告 数据分析实战之淘宝用户行为分析(4) - 用 ...

  9. 淘宝用户行为分析(一):点击—加购—收藏—购买

    前面研究的都是用户下单后的行为,是基于已经生成的订单数据,接下来几篇文章将把重点放在下单之前的用户行为分析. 数据来源于 Season 1 of Ali Mobile Recommendation A ...

  10. 数据分析案例之淘宝用户行为分析完整报告

    一.项目背景 UserBehavior为淘宝用户行为的数据集,数据集包括了2017年11月25日至2017年12月3日之间,有大约82万随机用户的用户行为(行为包括点击pv,购买buy,加购物车cha ...

最新文章

  1. Bex5开发技巧之MYSQL Incorrect string value
  2. 韩顺平老师 Mysql优化 笔记
  3. 飞鸽传书2007的java学习感想
  4. 使用Maven导出war包
  5. 大数据高地,这样炼成!
  6. python龙卷风框架_WEB框架之Tornado
  7. android根据轮播图片颜色改变背景颜色
  8. 计算机及数码产品营销课后题,职业教育课程改革创新系列教材:计算机及数码产品营销...
  9. 双硬盘分别装windows和linux,双硬盘分别安装windows和Ubuntu20双系统
  10. 代理服务器搭建socks5环境的方法
  11. java 实现html压缩
  12. switch-case案例*
  13. tomcat开启远程调试功能
  14. 最近 Flutter 争气了! Flutter 也可以做这么炫酷的动画
  15. py: pip3老,导致安装 flask avatar 依赖的 pillow 安装不上
  16. 程序员接私单接出优越感:十个月赚了60多万,加工资年入百万
  17. golang监控服务器性能,go 性能监控神器
  18. c语言cdio案例,基于CDIO-OBE工程教育模式的C语言程序设计课程教学改革研究
  19. 自动驾驶之轨迹规划6——Apollo EM Motion Planner
  20. 程序猿谈项目管理之好文集锦

热门文章

  1. Python Conda报错:Collecting package metadata (current_repodata.json): failed
  2. 使用Javascript动态添加和删除元素
  3. c++如何实现以任意数为底的对数(底数合法)log()
  4. word 中巧妙添加分隔线
  5. tableau中快速实现环比增长率计算
  6. JAVA关于实现科大讯飞语音合成功能
  7. LapSRN 超分辨率
  8. java ffmpeg m3u8合片_FFmpeg MP4视频切片成TS m3u8播放系列
  9. ArcMap 小知识(16):栅格计算器 raster calculator
  10. javaSwing的JTextField自动补全