第一章 聚类分析基础
1.1 什么是聚类分析
聚类分析是一种无监督学习方法,它将数据集中的对象分组,使得同一组内的对象相似度较高,而不同组间的对象相似度较低。
- 无监督学习:不需要标签,自动发现数据中的模式
- 相似度度量:衡量数据点之间的相似程度
- 簇的定义:由相似数据点组成的集合
- 聚类算法分类:划分式、层次式、密度式等
💡 聚类分析广泛应用于客户细分、市场定位、图像分割等领域。
1.2 常用距离度量
距离度量是聚类的基础,常用的距离包括欧氏距离、曼哈顿距离、余弦相似度等。
# 欧氏距离 distance = sqrt(sum((x_i - y_i)^2)) # 曼哈顿距离 distance = sum(|x_i - y_i|) # 余弦相似度 similarity = (x · y) / (||x|| * ||y||)
第二章 K-Means算法
2.1 K-Means原理
K-Means是最常用的聚类算法之一,其目标是将n个对象划分为k个簇,使得每个簇内的对象到簇中心的距离最小。
- 随机初始化k个簇中心
- 计算每个点到各中心的距离
- 将点分配到最近的簇
- 更新簇中心为簇内点的均值
- 迭代直到收敛
2.2 Python实现K-Means
使用scikit-learn实现K-Means聚类:
import pandas as pd
from sklearn.cluster import KMeans
# 创建客户数据
data = {
'Age': [28, 35, 42, 25, 48, 31, 38, 29],
'Income': [55000, 78000, 92000, 42000, 110000, 65000, 82000, 52000],
'SpendingScore': [72, 85, 68, 45, 90, 58, 78, 62]
}
df = pd.DataFrame(data)
# 应用K-Means聚类
kmeans = KMeans(n_clusters=3, random_state=42)
df['Cluster'] = kmeans.fit_predict(df)
print(df)
💻 在线代码编辑器
第三章 确定最佳K值
3.1 肘部法则
肘部法则是确定最佳K值的常用方法,通过绘制不同K值的惯性(簇内平方和)曲线,找到曲线变缓的"肘部"点。
3.2 轮廓系数
轮廓系数是另一种评估聚类质量的指标,取值范围[-1, 1],值越大表示聚类效果越好。
第四章 客户细分实战
4.1 数据预处理
对客户数据进行标准化处理,确保各特征具有相同的尺度。
from sklearn.preprocessing import StandardScaler # 数据标准化 scaler = StandardScaler() scaled_data = scaler.fit_transform(df) # 应用K-Means kmeans = KMeans(n_clusters=4, random_state=42) df['Cluster'] = kmeans.fit_predict(scaled_data)
4.2 结果分析
分析各个客户群体的特征,例如高收入高消费群体、高收入低消费群体、低收入高消费群体、低收入低消费群体。
练习题(共5题)
练习 1:创建客户数据
创建一个包含客户特征的数据集。
练习 2:使用K-Means聚类
使用K-Means算法对客户数据进行聚类。
练习 3:肘部法则
使用肘部法则确定最佳K值。
练习 4:数据标准化
对数据进行标准化后再进行聚类。
练习 5:客户细分分析
对客户数据进行聚类并分析各簇特征。
测试题(共 5 题,满分 100 分)
1. K-Means算法属于哪种学习类型?
2. K-Means算法的目标是什么?
3. 肘部法则用于确定什么?
4. 在聚类前进行数据标准化的目的是什么?
5. 以下哪种距离度量最常用在K-Means中?
作业提交
📝 客户聚类分析作业
请完成以下任务:
- 创建一个包含至少10个客户的数据集
- 使用K-Means算法进行聚类
- 使用肘部法则确定最佳K值
- 分析各客户群体特征
💻 作业代码提交