{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "聚类算法非常多，更新也非常快，这是因为聚类不存在客观标准，给定数据集，总能从某个角度找到以往算法未覆盖的某种标准从而设计出新算法，相对其他机器学习算法而言，聚类的知识还不够系统化。\n",
    "\n",
    "通过聚类得到的类或簇，本质是样本的子集，如果一个聚类方法假定一个样本只属于一个类，那么该方法称为 **硬聚类**（hard clustering），如果一个样本可以属于多个类，则称为 **软聚类**（soft clustering）。\n",
    "\n",
    "周志华老师的《机器学习》将聚类算法分为三大类：**原型聚类**（prototype-based clustering）、**密度聚类**（density-based clustering）和**层次聚类**（hierarchical clustering）。\n",
    "\n",
    "* 原型聚类假设聚类结构能通过一组原型刻画，它首先对原型进行初始化，然后对原型进行迭代更新求解，其代表算法有 **k 均值算法**（k-means），**学习向量量化算法**（learning vector quantization，简称 LVQ），**高斯混合聚类算法**（mixture-of-Gaussian）。\n",
    "* 密度聚类假设聚类结构能通过样本分布的紧密程度来确定，通常情况下，密度聚类算法从样本密度的角度来考察样本之间的**可连接性**，并基于可连接样本不断扩展聚类簇以获得最终的聚类结果，代表算法为 **DBSCAN**（Density-Based Spatial Clustering of Applications with Noise）。\n",
    "* 层次聚类试图在不同层次对数据集进行划分，从而形成树形的聚类结构，数据集的划分可采用**自底向上**的聚合策略，比如 **AGNES算法**（AGglomerative NESting），也可以采用**自顶向下**的分拆策略，比如 **DIANA算法**（DIvisive ANAlysis）。AGNES 和 DIANA 都不能对已合并或已分拆的聚类簇进行回溯调整，**BIRCH**、**ROCK** 等算法对此进行了改进。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
