zoukankan      html  css  js  c++  java
  • 聚类

    聚类:就是将一个对象的集合分成几个簇,每个簇之间的对象不相似,但是簇内对象相似。可以认为是“物以类聚”。

    从这个简单的描述中,可以看出聚类的关键是如何度量对象间的相似性。较为常见的用于度量对象的相似度的方法有距离、密度等。

    1.分层次聚类法

    思路:寻找距离最近的两个样本进行结合。

    (1)有N个样本集Zn{Z1,Z2......ZN}

     (2)聚成K类(事先定好K)

    [1] k=1, Ci={Zi}, i=1,2,...,N 

    [2] if k=K then END 

    [3] 找到Ci与Cj之间的距离d(Ci, Cj)最小的一对

    [4] Ci和Cj合成一个类Ci, 并计算新的Ci的中心

    [5] 去除Cj, k=k-1. goto [2]

    2.最简单的聚类

    相似性尺度(距离)阈值,不需要事先给定K。
    有N个样本,Zs={Z1, Z2, ..., ZN}
    给定一个阈值T。
    任取一个样本,例如Z1,把Z1作为第一个类的中心,Z1=Z1
    然后依次取Zi(i=2,3,...,N),计算Z1与Zi的距离D1i
    若D1i≤T,则判定 Zi属于 Z1为中心的那个类;
    若D1i>T,则把 Zi作为新的类中心 Z2。
    然后对剩下的样本 Zi分别计算与 Z1,Z2的距离D1i,D2i
    若其中较小者≤T,则判定 Zi属于较小的那一类
    否则,就把 Zi作为新的一个类的中心 Z3
    如此,继续...,直至对全体样本做完处理。

    3.最大距离样本

    思路:取尽可能离得远的样本做中心。
    有N个样本,Zs={Z1, Z2, ..., ZN}
    [1] 任取一个样本,例如Z1,把Z1作为第一个类的中心,Z1=Z1
    [2] 从集合Zs中找出到Z1距离最大的样本作为Z2
    [3] 对Zs中剩余样本Zi,分别计算到Z1,Z2的距离。令其中较小的那个为 Dzi
    [4] 计算 max{Dzi}若其值大于某一计算值或给定阈值,则取此Zi为新的类中心
    [5] 重复同样的处理,直到再也找不到符合条件的新的类中心。
    [6] 把剩余样本分配到离它最近的那个中心所属的类

    k-Means:

    k-Means算法的核心思想是把n个数据对象划分为k个类(这k各类事先未知),使得划分后每个类中的数据点到该类中心的距离最小。即使J最小。

    k-means算法流程:

    1. 输入:分类个数k,包含n个数据对象的数据集  
    2. 输出:k个聚类  
    3. (1)从n个数据对象中任意选取k个对象作为初始的聚类中心;  
    4. (2)分别计算每个对象到各个聚类中心的距离,把对象分配到距离最近的聚类中;  
    5. (3)所有对象分配完成后,重新计算k个聚类的中心;  (取各类别的均值)
    6. (4)与前一次计算得到的k个聚类中心比较(检测是否收敛),如果聚类中心发生变化(未收敛),转(2),否则聚类结束。  

    从菜鸟走向大神,这是道路。
  • 相关阅读:
    点击按钮icon input同步获取焦点
    修改vue项目中 elementUI input样式
    vue $route 和$router的区别
    vue 路由 vue-router 模式 hash history
    vue 路由跳转
    git 合并某个提交 git cherry-pick
    请求传参 有特殊符号
    前端 组件库 ,js等
    ajax请求成功,返回了数据,但是跳到了error情况
    微信-公众号-网页授权开发
  • 原文地址:https://www.cnblogs.com/GuoJiaSheng/p/3842687.html
Copyright © 2011-2022 走看看