数据分析--客户价值分析RFM(K-means聚类/轮廓系数)

原数据

复制代码
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import metrics

### 数据抽取,读⼊数据
df = pd.read_csv("customers1997.csv") #相对路径读取数据
print(df.info())
print(df.columns)
print(df.describe())
# 特征选择,选择RFM
df = df.drop(labels=['customer_id','country','education','gender','member_card','total_children'],axis=1)

一、 K-means聚类

1. K-means聚类

复制代码
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
kmeans = KMeans(n_clusters=4)   #构造聚类模型,划分为 4 类
kmeans.fit(df)  # 聚类
pre_y = kmeans.predict(df)  # 预测点在哪个聚类中,或者是直接采用 kmeans.labels_ 提取
print(pre_y)  # 输出每个样本的聚类标签

from sklearn import metrics
print("轮廓系数:",metrics.silhouette_score(df, pre_y,metric='euclidean'))
# print("轮廓系数:",metrics.silhouette_score(df, kmeans.labels_,metric='euclidean'))

2. 轮廓系数

轮廓系数取值范围[-1,1]

  • -1的效果最差
  • 1 的效果最好

二、分箱法分类

1. 分类

数据分析--客户价值分析RFM(分箱法/标准化)-CSDN博客

2.轮廓系数

复制代码
from sklearn import metrics
df_rfm = df[['Recency','Frequency', 'Monetary']]
print("轮廓系数:",metrics.silhouette_score(df_rfm, df['Segment'],metric='euclidean'))

Python------Kmeans聚类算法、轮廓系数(算法理论、代码)_python kmeans-CSDN博客

相关推荐
V1ncent Chen24 分钟前
SQL大师之路 13 聚合函数和分组
数据库·sql·mysql·数据分析
海天一色y1 小时前
基于Inception v3的CIFAR-100图像分类实战:从迁移学习到性能优化
分类·数据挖掘·迁移学习
川爻5 小时前
Superstore Sales Dataset数据分析(兼数据分析步骤学习)
学习·数据挖掘·数据分析
龙腾AI白云5 小时前
数字孪生国内外发展现状
数据分析·flask·virtualenv·fastapi
城数派5 小时前
1901-2024年中国1km逐月潜在蒸散发数据集
数据分析
七夜zippoe6 小时前
Elasticsearch全文搜索与数据分析实战指南
大数据·python·elasticsearch·数据分析·全文搜索
hans汉斯6 小时前
基于区块链和语义增强的科研诚信智能管控平台
人工智能·算法·yolo·数据挖掘·区块链·汉斯出版社
jllllyuz7 小时前
鸢尾花数据集K-means聚类分析MATLAB实现
mysql·matlab·kmeans
油泼辣子多加7 小时前
【ML】SVM算法原理
人工智能·算法·机器学习·支持向量机·数据挖掘