一、写在前面

马上就要到七夕了, 本来我是准备写RFM分析方法在互联网产品中是如何帮助我们进行用户分群的,  但可能比较无聊, 就借这个节日分享一下这个方法怎么在生活中的应用。

大家可以将这个方法学会了以后再运用的各自的行业中, 无论你是互联网, 还是零售, 还是电商, 只要涉及到用户分群, 都可以用这个方法, 这个方法当时我朋友用一顿烤肉收买我, 我都没有告诉她

二、分析思路

因为从男生的视角来说, 决定一个男生该不该嫁主要可以把这个男生划分成靠谱细心程度和令你感动以及喜欢的程度, 如果这个男生靠谱程度高, 感动程度高, 令你心动喜欢的程度高, 那肯定非嫁不可了

但就是这种男生非常少, 大多数可能就是这几个特质只符合几个, 比如可能没那么靠谱细心但你很喜欢(颜值很高?), 又或者只是靠谱细心但还没有心动的感觉, 这时候就要去分析到底你的男朋友是属于在哪一个层次, 也就决定了你要不要嫁。

首先我们需要知道这里的 RFM 中的 R, F,M 分别值得是什么。

R 就是男生做的让你感觉到靠谱细心的事情的日期距离现在的天数, 比如他在8.20 那一天凌晨1点给你买了一个冰可乐距离现在是4天, R 就是4。

F就是男生在一段时间内做的让你感觉到靠谱细心的事情的频次, 比如一个月做了五次 和 一次 是肯定不一样的, F 就是frequency 频次.

M 就是做的这些事情每一件事情中让你感动喜欢的程度, 比如同样做靠谱细心的事情, 但是你感动的程度不一样, 给你拧开瓶盖肯定是没有深夜帮你买冰可乐来的感动吧

如下图所示

根据这个模型的框架, 我们就可以对你的男朋友进行嫁的的程度进行划分, 如下图所示

三、分析过程

  1. 首先我们会计算不同的男生的 R, F, M 这三个指标, 得到每一个男生的这三个数据。

  2. 然后利用kmeans 的计算方法, 把R,F, M 放进模型中进行聚类, 模型就会根据每个人的特征, 把他们分到对应的群体中去。

3. 当知道你们的男朋友属于哪一个群体中去了的时候, 比如属于非常值得嫁的那一个群体, 或者属于不太值得嫁的那一个群体, 我们可以做下一步的分析, 非常值得嫁的这一部分群体, 他们都有什么样的特点。

比如 都是生长在背景良好的家庭里, 受过良好的教育,  颜值一般等特点, 而不值得嫁的那一部分群体可能就是生长在一般的家庭, 喜欢去玩, 换女朋友速度很快等等

四、分析结果和分析

将R, F, M 三个特征 利用kmeans 聚类的方法就可以把男生聚成八个类别,

以下是对应的不同的类别的解读

当我们通过聚类的方法将每一种类别的用户进行很好的分层了以后, 属于叫做建模分层的过程,  那么我们需要对每一个不同类型的用户进行特点的刻画。

一般我们会分析他们的年龄, 好友的个数, 地域, 家庭背景, 学历, 教育背景等静态属性的数据, 去帮我们完整的去刻画一个人。

当我们做完对男生的特点分析的时候, 就会对每一个群体有一个清晰的认识, oh 原来好男人值得嫁的男人有这些XXX的特点

在现实生活中, 假如你的男朋友已经是适合嫁的人, 你就要预防因为一些很小的矛盾, 矛盾没有及时沟通, 从而矛盾无限放大,  变成不值得嫁的人。

同时你也要做好培养, 男生是一个成长的过程, 可能你的男朋友现在是相对值得嫁的类型, 可能当你们好好经营感情的时候比如打卡情侣应该做的100件事情等等, 遇到事情多沟通 有同理心, 多为对方着想, 慢慢的 你的男朋友可能就会变成比较值得嫁的类型, 然后再变成非常值得嫁的类型, 如下图所示。

附录RFM实现的代码

数据集的格式如图所示: pay_data
user    r_c        f_c        m_c
7688  0.000000  0.008763  7.275781e-04
20037  0.566667  0.000250  7.450600e-05
30010  0.066667  0.002253  3.689527e-04
41232  1.000000  0.000000  2.108058e-06
53165  1.000000  0.000000  1.916416e-07放进模型数据集的名字:pay_RFMr_c      f_c       m_c
0.000000  0.008763  7.275781e-04
0.566667  0.000250  7.450600e-05
0.066667  0.002253  3.689527e-04
1.000000  0.000000  2.108058e-06
1.000000  0.000000  1.916416e-07
# 从pay_data 中抽取 r_c, f_c, m_c 三个特征的数据
pay_RFM = pay_data[['r_c','f_c','m_c']]# 开始聚类
# 选出K,利用拐点
from sklearn.cluster import KMeans
em=[]
ks=range(1,10)
for k in ks:kc=KMeans(n_clusters=k, random_state=1)kc.fit(pay_RFM)em.append(kc.inertia_)
plt.plot(ks,em)# 进行聚类
model_k = KMeans(n_clusters=8,random_state=1)
model_k.fit(pay_RFM)
cluster_labels = model_k.labels_  # 每个类别的进行计算类别的个数, 每个类别的均值, 最小, 最大值
rfm_kmeans = pay_RFM.assign(class1=cluster_labels)
num_agg = {'r_c':['mean', 'count','min','max'], 'f_c':['mean', 'count','min','max'],'m_c':['mean','sum','count','min','max']}
rfm_kmeans.groupby('class1').agg(num_agg).round(2)# 将聚类的结果写入到文档中, 为了得到每一个user 对应的类别pay_data.assign(class1=cluster_labels).to_csv('d:/My Documents/Desktop/result.csv',header=True, sep=',')# finish

如果 你觉得写的还可以的话, 麻烦点个在看和点赞把

-----------------

有朋友问学Python数据分析要看什么书?

我推荐小蚊子老师团队出品的《谁说菜鸟不会数据分析(Python篇)》

通俗易懂,我就是跟着它从零基础学起的,跟着书上的代码敲一遍。

七夕将至, RFM数据分析法帮你分析男朋友值不值得嫁相关推荐

  1. 七夕到了, RFM数据分析法帮你分析男朋友值不值得嫁

    一.写在前面 七夕到了,借这个节日分享一下RFM这个方法怎么在生活中的应用. 大家可以将这个方法学会了以后再运用的各自的行业中, 无论你是互联网, 还是零售, 还是电商, 只要涉及到用户分群, 都可以 ...

  2. RFM数据分析法帮你的男朋友值不值得嫁

    公众号后台回复"图书",了解更多号主新书内容 作者:Rain0808 来源:DataCharm 一.写在前面 马上就要到七夕了, 本来我是准备写RFM分析方法在互联网产品中是如何帮 ...

  3. 数据分析法之对比分析法

    数据分析中有很多数据分析的方法,通过这些方法我们能够直接分析出数据中隐藏的有价值的信息,从而得到一个准确的结果.而数据分析方法中,对比分析法是一个十分常用的方法,在这篇文章中我们就详细的为大家介绍一下 ...

  4. 【深度学习再突破】让计算机一眼认出“猫”:哈佛提出新高维数据分析法

    [新智元导读]目前,还没有人能够真正理解深度网络在目标分类任务方面的运行方式和原理.主要原因是对深度网络在分类任务中所做的"工作"还没有一个很好的衡量标准,一篇最近发表的关于&qu ...

  5. 七种常见的数据分析法之:可行域分析

    导读 福格模型的触发有效区,我们就将其称之为可行域.那么,可行域分析该怎么用呢? 大数据产业创新服务媒体 官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC ...

  6. 数据分析中的分组分析法(二)

    我们在上面的内容中为大家解释了数据分析中的分组分析方法,我们根据属性指标分组分析法和数量指标分组分析法的定义给大家进行了详细的说明.但是对于数量指标分组分析法没有给大家详细地说明,今天我们给大家好好讲 ...

  7. Excel2007版的常用功能(2):Excel数据分析法

    一..对比分析法: 所谓对比分析法,是指将两个或两个以上的相互联系的数据进行比较,分析他们的差异,如研究对象的规模大小.水平高低.速度快慢.各种关系是否协调,从而揭示这些数据所代表的事物发展变化情况和 ...

  8. 浅谈渠道运营及同期群数据分析法

    尽管不同产品类型存在截然不同的运营手法,但终归是为用户规模服务,谈到用户规模就离不开三大运营指标,即开源.促活.节流.本篇主要分享笔者在渠道运营方面的心得. 客户开源:渠道投放&渠道管理 讲到 ...

  9. 如何分析竞争对手?10 个步骤,巧用数据分析法即可

    分析竞争对手的目的是为了解对手,洞悉对手的市场策略等.我们可以用竞争对手分析的五个层次来说明,能准确地确定竞争对手,这是分析的最低层次,能分析出对手状况则是第二层次,最高层次是通过竞争分析制定策略后能 ...

最新文章

  1. 【Qt】Qt再学习(一):Application Example
  2. android sqlite 怎么写入存储时间
  3. 构建Flex数据服务程序
  4. android-学习1 配置环境
  5. linux 线程与进程 pid,linux下线程所属进程号问题
  6. 南开大学计算机本科论文,南开大学本科毕业论文设计-南开大学教务处主页.DOC...
  7. 2021-09-18牛客SQL32,SQL33,SQL35,SQL36,SQL37,SQL38,SQL40
  8. FFmpeg实战命令(不断更新中...)
  9. server2008实验之七 利用FSRM实现文件服务器精确管理.
  10. OpenCV-图像处理(10、膨胀与腐蚀)
  11. ics计算机系统全称,ICS计算机系统实验--datalab实验
  12. 使用Opencv在基于SSD-MobileNet迁移学习中生成pbtxt文件遇到的问题及解决方案
  13. 计算机公式最小值,excel最小值函数
  14. C++输出谢尔宾斯基三角形
  15. 平板无线网无法连接网络连接服务器,平板电脑可以连接无线网络但上不了网的解决方法...
  16. 中国经济刺激计划将提振大宗商品
  17. uniapp怎么调起摄像头拍视频_uniapp如何实现直播
  18. ideaij 按内容查找文件
  19. MT7688 openwrt 4G调试
  20. Idrac卡偶尔不可用处理办法

热门文章

  1. Spring Boot中的微信支付(小程序)
  2. Introduce·传播学核心期刊推荐之《新闻大学》
  3. MySQL 查询固定时间段的数据
  4. Spring Boot 与ElasticSearch
  5. gpio pad的latch功能
  6. Linux 小数点乘法运算
  7. JS小数点乘法除法问题详解
  8. python 库画小动物大全_python库之turtle(图形绘制) 开启新的快乐源泉
  9. js 伪造referer_JavaScript 伪造 Referer 来路方法
  10. 夫妻生活如何延长保鲜期