聚类主要是一种无监督学习。用来发现未标注数据的隐藏结构,主要是用来给数据分组。聚类算法一般有硬聚类(k-means,k-means++)和软聚类FCM(fuzzy c-means)。聚类眼下广泛应用于文档,音乐,电影的分组,以及基于用户的行为对用户分组等。聚类一般有例如以下分类,基于层级(hierarchical)的聚类,基于密度(density-based)的聚类还有基于原型(prototype-based)的聚类。

k-means实现思路:

1. 随机从数据集中选择k个中心点

2. 对于数据集中的每一条数据,比較与k个中心点的距离,然后把当前数据分配给近期的中心点

3. 又一次计算数据集中k个中心点

4. 反复第二步和第三步。仅仅到中心点的位置变化不变或者变化在指定的范围内或者迭代次数满足设定的目标。

比較与中心点的距离一般採用的是欧式距离,k-means可能会选择到最差的结果,须要多跑几次,并且每次跑的结果不一定同样。





k-means++ 实现思路:

1. 初始化一个空的集合M来存储k个中心点

2. 随机的从数据集中选择第一个中心点并存到M中

3. 对数据集中的每一条不在M中的数据,计算对M所产生的最小平方距离

4. 随机的选择下一个中心点。此时中心点的选择会依据一个有权重的概率分布,规则是距离中心点越远的点,选择的概率也越大。计算公式=当前中心点与M最小的距离/第三步产生的数据求和。

5. 反复2.3.4直到k中心点都选择完毕。

6. 使用k-means的方式来处理以后的过程。





另一种称之为软聚类的方法,这个主要是依据概率来推断当前数据属于那一个cluster

如对上图中有三个中心点的样例。对于一个新的样本点,使用k-means或k-means++得出的结果为[k1=0,k2=1,k3=0],使用FCM得到的结果应该是这个样子的[k1=0.1,k2=0.75,k3=0.15]。这个说明这个新的样本点属于k2的概率是最大的。

FCM实现思路:

1. 指定中心点的个数k而且随机的为每一个数据点分配中心点的概率

2. 又一次计算中心点

3. 更新每一个数据点属于中心点的依据

4. 反复2.3直到样本点属于中心点的相关系数不变或者变化在一个可控的范围内或者迭代次数到达了设定的值。

聚类k-means/k-means++/fcm学习笔记的更多相关文章

  1. 【学习笔记】K 短路问题详解

    \(k\) 短路问题简介 所谓"\(k\) 短路"问题,即给定一张 \(n\) 个点,\(m\) 条边的有向图,给定起点 \(s\) 和终点 \(t\),求出所有 \(s\to t ...

  2. 主席树学习笔记(静态区间第k大)

    题目背景 这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输出 ...

  3. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记

    机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...

  4. 机器学习理论与实战(十)K均值聚类和二分K均值聚类

    接下来就要说下无监督机器学习方法,所谓无监督机器学习前面也说过,就是没有标签的情况,对样本数据进行聚类分析.关联性分析等.主要包括K均值聚类(K-means clustering)和关联分析,这两大类 ...

  5. 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例

    k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...

  6. Python_sklearn机器学习库学习笔记(五)k-means(聚类)

    # K的选择:肘部法则 如果问题中没有指定 的值,可以通过肘部法则这一技术来估计聚类数量.肘部法则会把不同 值的成本函数值画出来.随着 值的增大,平均畸变程度会减小:每个类包含的样本数会减少,于是样本 ...

  7. ArcGIS案例学习笔记-聚类点的空间统计特征

    ArcGIS案例学习笔记-聚类点的空间统计特征 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于聚集点,根据分组字段case field,计算空间统计特征 ...

  8. R语言中聚类确定最佳K值之Calinsky criterion

    Calinski-Harabasz准则有时称为方差比准则 (VRC),它可以用来确定聚类的最佳K值.Calinski Harabasz 指数定义为: 其中,K是聚类数,N是样本数,SSB是组与组之间的 ...

  9. [笔记] $f(i)$ 为 $k$ 次多项式,$\sum_{i=0}^nf(i)\cdot q^i$ 的 $O(k\log k)$ 求法

    \(f(i)\) 为 \(k\) 次多项式,\(\sum_{i=0}^nf(i)\cdot q^i\) 的 \(O(k\log k)\) 求法 令 \(S(n)=\sum_{i=0}^{n-1}f(i ...

随机推荐

  1. linux更换阿里云的源的shell脚本

    #!/bin/bash##########################################Function: update source#Usage: bash update_sour ...

  2. thinkphp 日志记录

    日志记录\ThinkPHP\Lib\Think\Core\Log.class.php 1.可以在config.php中进行设置,默认为关闭状态. 'APP_DEBUG' => true 打开\T ...

  3. jdbc数据库中的增删改

    HttpSession session=request.getSession(); session.setAttribute("currentUser",u.username);/ ...

  4. BZOJ 2333 左偏树 (写得我人生都崩溃了...)

    思路: 高一神犇 竟然 问我这道题   我光荣地  看着题解(划掉)  写了一下午 QaQ multiset不能erase(一个值)   这样就把等于这个值 的数都erase掉了  (woc我一开始不 ...

  5. SPOJ GSS1 & GSS3&挂了的GSS5

    线段树然后yy一下,搞一搞. GSS1: 题意:求最大区间和. #include <cstdio> #include <algorithm> using namespace s ...

  6. [转]深入javascript——构造函数和原型对象

    对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模 ...

  7. 各个数据库中,查询前n条记录的方法

    SQL查询前10条的方法为: 1.select top X *  from table_name --查询前X条记录,可以改成需要的数字,比如前10条. 2.select top X *  from  ...

  8. PAC学习理论:机器学习那些事

    参考翻译,有大量删除和修改,如有异议,请拜访原文.一定要看英文原文!!!. 本文转载于:深度译文:机器学习那些事 英文[原题]A Few Useful Things to Know About Mac ...

  9. Visual Studio 推荐插件以及一些设置

    Microsoft Visual Studio 作为微软自家的 IDE 集成 NuGet 包管理器,是的引用一些不同版本组件DLL十分方便. 集成编译环境,强大的 Debug 断点.附加功能 项目模板 ...

  10. Arduino 红外接收

    一.实物图 二.例子代码 注:git clone https://github.com/z3t0/Arduino-IRremote.git 放到Arduino 的libraries目录下面  从遥控器 ...