数据分析--客户价值分析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博客

相关推荐
希艾席蒂恩40 分钟前
零成本、高效率:免费可视化工具的魅力所在
大数据·信息可视化·数据挖掘·数据分析·数据可视化
米糕.2 小时前
【Linux】生物信息学常用基本命令
大数据·linux·运维·服务器·数据分析
O zil2 小时前
资料分析题目类型分类
人工智能·分类·数据挖掘
子龙烜2 小时前
数据分析三剑客-Matplotlib
python·数据挖掘·数据分析·matplotlib
sssugarr4 小时前
从0开始学习pyspark--pyspark的数据分析方式[第2节]
python·数据挖掘·数据分析·spark
Wen.py.java7 小时前
Python商务数据分析知识专栏(六)——Python数据分析的应用④Python数据分析实训
人工智能·python·数据分析
半吊子全栈工匠7 小时前
数据分析中10种常见的可视化图例
数据挖掘·数据分析
CS数模10 小时前
2024 年 亚太赛 APMCM (B题)中文赛道国际大学生数学建模挑战赛 |洪水灾害数据分析 | 数学建模完整代码+建模过程全解全析
数学建模·数据挖掘·数据分析
PhyliciaFelicia11 小时前
结合ArcGIS+SWAT模型+Century模型:流域生态系统水-碳-氮耦合过程模拟
arcgis·数据分析
X在敲AI代码12 小时前
零基础入门 Ai 数据挖掘竞赛-速通 Baseline-1
人工智能·数据挖掘