【BXZ_231228】使用Sklearn Kmeans及RFM对淘宝客户进行分类关怀

复制代码
import random
import string
from datetime import datetime

def generate_random_string(length=3):
    characters = string.ascii_uppercase
    return ''.join(random.choice(characters) for _ in range(length))

def generate_timestamped_string(separator='_'):
    timestamp = datetime.now().strftime('%y%m%d') # %H%M%S
    random_part = generate_random_string(length=3)
    return random_part+separator+timestamp

timestamped_string = generate_timestamped_string()
print('【{0}】'.format(timestamped_string))

【Talk is cheap】

复制代码
import warnings
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
plt.rcParams['axes.unicode_minus'] = False # 显示负号
warnings.filterwarnings("ignore")
%matplotlib inline

...
Index(['买家会员名', '买家实际支付积分', '买家实际支付金额', '买家应付货款', '买家应付邮费', '买家支付宝账号',
       '买家支付积分', '买家服务费', '买家留言', '修改后的sku', '修改后的收货地址', '分阶段订单信息', '卖家服务费',
       '发票抬头', '含应开票给个人的个人红包', '天猫卡券抵扣', '定金排名', '宝贝总数量', '宝贝标题 ', '宝贝种类 ',
       '店铺Id', '店铺名称', '异常信息', '总金额', '打款商家金额', '支付单号', '支付详情', '收货人姓名',
       '收货地址', '新零售交易类型', '新零售发货门店id', '新零售发货门店名称', '新零售导购门店id', '新零售导购门店名称',
       '是否上传合同照片', '是否上传小票', '是否代付', '是否手机订单', '是否是O2O交易', '物流公司', '物流单号 ',
       '特权订金订单id', '确认收货时间', '联系手机', '联系电话 ', '订单付款时间', '订单关闭原因', '订单创建时间',
       '订单备注', '订单状态', '运送方式', '返点积分', '退款金额', '数据采集时间'],


...

from sklearn.cluster import KMeans

# 将聚类结果添加到原始数据中
data['Cluster'] = labels


0	13015181676	55.86	1	0
1	13019108165	0.00	2	0
2	13020140119	95.76	2	0
3	13022508850	48.86	1	0
4	13026161372	268.00	1	0


# 计算RFM得分
rfm_table['R'] = rfm_table['Recency'].apply(rfm_score, args=('Recency', quantiles))
rfm_table['F'] = rfm_table['Frequency'].apply(rfm_score, args=('Frequency', quantiles))
rfm_table['M'] = rfm_table['Monetary'].apply(rfm_score, args=('Monetary', quantiles))

# 输出RFM分析结果
print(rfm_table)


top_customers[rfm_table['RFM']>10]


403109394@qq.com	2463	3	1206.0	4	4	4	12
1003673371@qq.com	2406	4	1474.0	4	4	4	12
13524685268	2306	5	804.0	4	4	4	12
794378248@qq.com	2425	3	763.5	4	4	4	12
13467712448	2453	3	670.0	4	4	4	12
...	...	...	...	...	...	...	...
313137525@qq.com	2249	7	2546.0	3	4	4	11
15976850599	2204	3	867.0	3	4	4	11
18580706707	2217	15	4020.0	3	4	4	11
18771060321	2445	2	368.0	4	3	4	11
15997278777	2478	2	1034.4	4	3	4	11
相关推荐
雨晨源码(同名B站)8 小时前
深度学习毕业设计选题推荐:基于卷积神经网络的无人机影像建筑裂缝裂纹检测分类与分割系统(LeNet-5 二分类模型、GCN-Res50分割模型)
深度学习·信息可视化·分类·cnn·毕业设计·无人机·课程设计
JAVA_AI人工智能项目实战20 小时前
轻量级模型训练_RNN文本分类流水线实验代码
人工智能·rnn·分类
fanruitian1 天前
python 机器学习 ML LinearRegression KNN KMeans
python·机器学习·kmeans
吴名氏.1 天前
Java转AI Agent教程(第二周)超时重试与错误分类
java·人工智能·python·分类·ai agent
听风吹等浪起1 天前
第27章:EfficientNet全家桶|钢材表面6类缺陷分类完整Pytorch实现
pytorch·分类·数据挖掘
CS创新实验室2 天前
没有标签的数据,怎么“自动分成几堆“?——K-means 聚类的原理与坑
人工智能·kmeans·聚类
kaixin_啊啊3 天前
【零基础学AI】第 19 章——用分类模型识别类别
人工智能·分类·数据挖掘
a puppy slide 葱4 天前
arXiv _ 2025 _ Gaussian Masked Autoencoders
论文阅读·人工智能·python·分类
Interview Aid1125 天前
McKinsey OA 真题解析:数组优化与机器学习分类
人工智能·机器学习·分类
听风吹等浪起5 天前
第25章:基于ConvNeXt实现肺部CT肺癌四分类:数据集、训练调优、网络结构与Streamlit网页部署
人工智能·分类·数据挖掘