零基础实战机器学习
黄佳
新加坡埃森哲公司资深顾问,《零基础学机器学习》作者
新⼈⾸单¥59.9
702 人已学习
课程目录
已更新 7 讲 / 共 23 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|开发者为什么要从实战出发学机器学习?
免费
准备篇 (4讲)
01|打好基础:到底什么是机器学习?
02|工具准备:安装并使用Jupyter Notebook
03|实战5步(上):怎么定义问题和预处理数据?
04| 实战5步(下):怎么建立估计10万+软文点击率的模型?
业务场景闯关篇 (2讲)
05 | 数据探索:怎样从数据中找到用户的RFM值?
06 | 聚类分析:如何用RFM给电商用户做价值分组画像?
零基础实战机器学习
15
15
1.0x
00:00/00:00
登录|注册

06 | 聚类分析:如何用RFM给电商用户做价值分组画像?

你好,我是黄佳。欢迎来到零基础实战机器学习。
在上一讲中,我们从一份互联网电商“易速鲜花”的历史订单数据集中,求出了每一个用户的 R、F、M 值。你可能会问,从这些值中,我们又能看出什么有价值的信息呢?
别着急,在这一讲中,我们继续往前走,看看如何从这些枯燥且不容易观察的数据中,得到更为清晰的用户分组画像。通过这节课,我希望你能理解聚类算法的原理和最优化过程,这可以帮你建立起针对问题选择算法的直觉。

怎么给用户分组比较合适?

这是我们在上节课中得出的用户层级表,表中有每位用户的 R、F、M 值。
这里,我们希望看看 R 值、F 值和 M 值的分布情况,以便为用户分组作出指导。代码是接着上一讲的基础上继续构建,我就不全部贴上来了,完整的代码和数据集请你从这里下载。
df_user['R值'].plot(kind='hist', bins=20, title = '新进度分布直方图') #R值直方图
df_user.query('F值 < 800')['F值'].plot(kind='hist', bins=50, title = '消费频率分布直方图') #F值直方图
df_user.query('M值 < 20000')['M值'].plot(kind='hist', bins=50, title = '消费金额分布直方图') #M值直方图
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《零基础实战机器学习》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59.9
立即订阅
登录 后留言

精选留言(2)

  • 在路上
    佳哥好,今天是教师节,祝你节日快乐。我看了下kmeans的API,fit函数支持多维数组,应该可以把RFM三个维度的值同时传给fit进行拟合,而不是把RFM三个维度的值降维到一个值进行拟合,通过predict函数就可能直接得到聚类后的层级,从predict函数的名称可以得知,它不仅能计算训练集的聚类层级,也能预测新数据的聚类层级。
    我从事游戏行业,策划会根据玩家充值金额来定义大中小R,充值区间的定义全凭经验,如果用今天教的k-means方法就非常合适。我最近在学习大数据,想统计HDSF上文件大小的分布情况,也可以用k-means算法。
    最后说一下我发现这节课的文本和表格的部分数据有出入。文本:上次购物距今是0天到91天,表格:是94天。文本:0层级的用户平均新近度是295天,表格:是298天。文本:R值最高的用户组(2层级)平均新近度仅有31天,表格:是32天。

    作者回复: 谢谢精辟的分享,皆是宝贵的经验之谈,对我亦有启发!三人行,必有我师!大家也是我的老师,我这儿也祝愿大家工作生活愉快。

    对,文本部分,我这儿需要按照表格中跑出来的值进行调整一下,把二者对应上。谢谢你的细心!!

    2021-09-10
  • 吴悦
    多维数据输入时怎么做 无量纲化好呀

    作者回复: 同学们的问题总是会引导我剧透后面的内容。。。

    在sklearn中,同学所说的无量纲化英文被称为特征的缩放(Scaler),把大的数值压缩到小的范围,或者改变数值的分布状态等。具体的方法和工具很多,包括标准化,归一化,居中,规范化等等不同的手段(这些手段的名词也容易混淆):

    1)StandardScaler工具,标准化缩放,是对数据特征分布的转换,目标是使其符合正态分布(均值为0,方差为1)。对于某些模型,如果数据特征不符合正态分布的话,就影响机器学习效率。

    2)MinMaxScaler工具,是把特征的值压缩到给定的最小值和最大值之间,通常在0和1之间,有负值的话就是-1到1,因此也叫归一化。归一化不会改变数据的分布状态。在sklearn中,通过MinMaxScaler进行标准化缩放。某些模型,比如神经网络,就非常喜欢归一化之后的特征数据。

    3)RobustScaler工具,基于百分位数的缩放,能消除这个过程消除了数据中的离群值的影响,但转换后的特征值的结果范围比之前的更大,所以RobustScaler之后,通常还结合归一化缩放器一起使用,再把数据压缩一下。

    4)Normalizer工具,规范化缩放,则是将样本缩放为具有单位范数的过程,这可能仅适用于某些各个维度都是One-Hot编码的数据集,应用场景较少。

    不同数据集适用不同工具。

    这些我们以后要讲。

    2021-09-10
收起评论
2
返回
顶部