【机器学习|学习笔记】聚类(Clustering)vs 降维(Dimensionality Reduction)对比详解?
【机器学习|学习笔记】聚类(Clustering)vs 降维(Dimensionality Reduction)对比详解?
文章目录
欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup
大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “
学术会议小灵通
”或参考学术信息专栏:https://blog.csdn.net/2401_89898861/article/details/148877490
🧠 一、什么是聚类(Clustering)?
✅ 定义:
- 聚类是一种无监督学习(Unsupervised Learning)方法,它的目标是:将数据划分为多个相似的子集(簇),使得同一簇内的数据相似度高,不同簇之间差异大。
📌 聚类应用场景:
- 客户分群(Marketing Segmentation)
- 图像分割
- 社交网络分析
- 异常检测(如信用卡欺诈)
🧪 Python 示例:使用 K-Means 聚类
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成示例数据
X, y = make_blobs(n_samples=300, centers=3, random_state=42)
# 应用 KMeans 聚类
kmeans = KMeans(n_clusters=3, random_state=42)
y_pred = kmeans.fit_predict(X)
# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred, cmap='viridis', s=50)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],
color='red', marker='x', label='Centroids')
plt.title("KMeans Clustering")
plt.legend()
plt.show()
🧠 二、什么是降维(Dimensionality Reduction)?
✅ 定义:
- 降维是将高维数据压缩到低维空间的一种方法,同时尽可能保留原数据的重要特征结构。
📌 降维的目的:
- 可视化(如将 100 维压缩到 2D)
- 加快算法效率
- 降低噪声影响
- 避免“维度灾难”
常见的降维方法:
方法 | 类型 | 特点 |
---|---|---|
PCA(主成分分析) | 线性降维 | 最大化数据方差方向 |
t-SNE | 非线性降维 | 保留局部邻居结构,适合可视化 |
UMAP | 非线性降维 | 比 t-SNE 更快,更结构化 |
LDA | 有监督降维 | 聚焦于类别区分 |
🧪 Python 示例:使用 PCA 可视化高维数据
from sklearn.decomposition import PCA
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
# 加载高维数据
digits = load_digits()
X = digits.data # 64维
y = digits.target # 标签
# 将64维降到2维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 可视化
plt.figure(figsize=(8, 6))
scatter = plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='tab10', s=15)
plt.legend(*scatter.legend_elements(), title="Digits")
plt.title("PCA Visualization of Digits Dataset")
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.grid(True)
plt.show()
🔄 三、聚类 vs 降维:关系与区别
维度 | 聚类(Clustering) | 降维(Dimensionality Reduction) |
---|---|---|
类型 | 无监督学习 | 通常也是无监督(部分有监督) |
目标 | 找到数据中的群组结构 | 压缩数据维度,保持主要特征信息 |
输出 | 每个样本的簇标签 | 每个样本的低维表示 |
应用场景 | 数据分群、异常检测 | 可视化、加速训练、特征选择 |
相互关系 | 降维可用于聚类前的数据预处理 | 聚类结果可在降维后空间中更好地展示 |
✅ 总结一句话:
- 聚类是将样本划分成相似组的过程,降维是把高维样本压缩到低维空间的技术,它们常常联合使用:先降维再聚类,或降维可视化聚类结果。