机器学习-聚类问题

前言

聚类算法又叫做"无监督分类",目标是通过对无标记训练样本来揭示数据的内在性质及 规律,为进一步的数据分析提供基础。

Kmeans

作为聚类算法的典型代表,Kmeans可以说是最简单的聚类算法,没有之一,那她是怎么完成聚类的呢?

  1. 算法接受参数k
  2. 给定样本集 D = { x 1 , x 2 , . . . , x n } D=\{x_1,x_2,...,x_n\} D={x1,x2,...,xn}
  3. 随机选点k个中心(质心)
  4. 遍历样本集,先取距离最近的质心,从而根据质心分解样本集D簇划分 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck}
  5. 最小化平方误差
  6. 利用簇中均值等方法更新该簇类的中心k个;
  7. 重覆4-6的步骤,直至E不再更新

Kmeans中用的是欧式距离

kmeans的计算过程

  1. 现在有4组数据,每组数据有2个维度,对其进行聚类分为2类,将其可视化一下。
  2. 通过比较,将其进行归类。并使用平均法更新中心位置。
  3. 再次计算每个点与更新后的位置中心的距离,直到上一次的类别标记无变化,即可停止
python 复制代码
import matplotlib.pyplot as plt
from sklearn.cluster import  KMeans
from sklearn.datasets import make_blobs

## 创建数据集
X, _ = make_blobs(n_samples=10000, centers=2, random_state=0)

## kmeans超参数值列表
n_clusters_list = [4, 8, 16]

# 图的框架
fig, axs = plt.subplots(
    1, len(n_clusters_list), figsize=(12, 5)
)
axs = axs.T
for j, n_clusters in enumerate(n_clusters_list):
    ## 创建模型
    algo = KMeans(n_clusters=n_clusters, random_state=random_state, n_init=3)
    algo.fit(X)
    centers = algo.cluster_centers_
    axs[j].scatter(X[:, 0], X[:, 1], s=10, c=algo.labels_)
    ## 画质心
    axs[j].scatter(centers[:, 0], centers[:, 1], c="r", s=20)
    axs[j].set_title(f"{n_clusters} clusters")
for ax in axs.flat:
    ax.label_outer()
    ax.set_xticks([])
    ax.set_yticks([])
plt.show()

聚类算法用于降维

K-Means聚类最重要的应用之一是非结构数据(图像,声音)上的矢量量化(VQ)。非结构化数据往往占用比较多的储存空间,文件本身也会比较大,运算非常缓慢,我们希望能够在保证数据质量的前提下,尽量地缩小非结构化数据的大小,或者简化非结构化数据的结构。

  1. 一组40个样本的数据,分别含有40组不同的信息(x1,x2)。
  2. 将代表所有样本点聚成4类,找出四个质心.这些点和他们所属的质心非常相似,因此他们所承载的信息就约等于他们所在的簇的质心所承载的信息。
  3. 使用每个样本所在的簇的质心来覆盖原有的样本,有点类似四舍五入的感觉,类似于用1来代替0.9和0.8。

这样,40个样本带有的40种取值,就被我们压缩了4组取值,虽然样本量还是40个,但是这40个样本所带的取值其实只有4个,就是分出来的四个簇的质心。查看官方用例

主要参考

机器学习理论(十三)Kmeans聚类

相关推荐
天天进步20154 小时前
Python机器学习入门:用scikit-learn构建你的第一个预测模型
python·机器学习·scikit-learn
手握风云-5 小时前
回溯剪枝的 “减法艺术”:化解超时危机的 “救命稻草”(一)
算法·机器学习·剪枝
辞--忧6 小时前
集成学习:从原理到实战,一文掌握 Bagging、Boosting 与 Stacking
机器学习·集成学习·boosting
小五1276 小时前
机器学习聚类算法
算法·机器学习·聚类
Wah-Aug7 小时前
深入浅出集成学习:从理论到实战,解锁机器学习 “集体智慧”
人工智能·机器学习·集成学习
AI_RSER8 小时前
遥感&机器学习入门实战教程|Sklearn 案例④ :多分类器对比(SVM / RF / kNN / Logistic...)
python·算法·机器学习·支持向量机·分类·sklearn
初学小刘9 小时前
机器学习中的聚类与集成算法:从基础到应用
算法·机器学习·聚类
听风.8259 小时前
机器学习6
人工智能·机器学习·概率论
凳子(刘博浩)9 小时前
机器学习两大核心算法:集成学习与 K-Means 聚类详解
算法·机器学习·集成学习
Gloria_niki10 小时前
机器学习之数据预处理学习总结
人工智能·学习·机器学习·数据分析