聚类算法是一类非监督学习算法,在有监督学习中,学习的目标是要在两类样本中找出他们的分界,训练数据是给定标签的,要么属于正类要么属于负类。而非监督学习,它的目的是在一个没有标签的数据集中找出这个数据集的结构把它自动聚成两类或者多类。
本讲主要介绍了最常用了一种聚类算法--K-means聚类算法。如果将数据集分成两类,即k=2,K-means算法过程如下:
1、首先任意选取两个不同的样本作为两类样本的中心

2、K-means算法有两部,第一步cluster assignment step,遍历所有样本点,计算出每个样本点离两个中心的距离(这个距离不一定是欧几里得距离,根据不同需要选取)来判断样本点属于哪一个类别(比如某个样本点离红色的中心比离蓝色的中心近,那么就将这个样本点归类到红色这类中,反之亦然),每个样本归类之后就得到如下:

3、K-means的第二部是move centroid step,这一步是根据前一步的分类结果,计算出他们的新的类的中心(计算方法可以是对所有样本的每一维取平均,得到每类的中心),计算出新的中心结果如下:

4、然后根据新计算出来的两个中心将每个样本点再归类,不断迭代以上两步,直到所有样本点不再改变(即收敛)

K-Means正式定义如下,输入要求有一个整数k和m个样本点,然后按照上面讲到的过程一步一步迭代,直到收敛:

Andrew还讲到了一个例子,给不可分的数据集分类,就是一个T-shirt分类的例子,如下图:

比如现在有这样一系列身高和体重的数据,在生产T-shirt的时候会将T-shirt分成L,M和S三个号,利用K-Means就可以将这三类分出来,这里取k=3。

看了上面,你对K-Means应该有一个直观的概念了,接下去来讲一下关于K-Means的理论,在前面的监督学习中,首先都是建立一个假设,然后用已有的带有标签的数据集来最小化这个cost function,那么,在K-Means中,估值函数可以帮助我们debug,如果估值函数没有预想中的不断减小最后收敛到一个极值,那么算法肯定是写的有问题了。看看我们写的K-means算法有没有正常工作,他的估值函数如下:

解决算法陷入局部最优问题的方案当然是选取不同的初始值,多次运行kmeans算法,选取最小的cost function J作为最终的结果,这样就能取得一个很好的聚类结果。

一般运行K-means算法时,k(分类数)是人为指定的,但是人根本不知道样本数据中真实的类别是多少,比如上面这个例子中,反映在图上,很明显可以看出它可以聚类成三类,如果把k指定成两类或者其他,那么聚类效果会大打折扣。要区分k最常用的方法是elbow method,它的工作原理如下:

随着k增大,J会不断变小,k=m时候,j就变成了0。通常选取的k是拐点最明显的那个值。如果学习曲线如上图右边那个曲线,那就说明数据没有很好的区分性,因此可以将数据分成你所需要的任意类。

Standford机器学习 聚类算法(clustering)和非监督学习(unsupervised Learning)的更多相关文章

  1. 如何区分监督学习(supervised learning)和非监督学习(unsupervised learning)

    监督学习:简单来说就是给定一定的训练样本(这里一定要注意,样本是既有数据,也有数据对应的结果),利用这个样本进行训练得到一个模型(可以说是一个函数),然后利用这个模型,将所有的输入映射为相应的输出,之 ...

  2. Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记

    8 Unsupervised Learning8.1 Clustering8.1.1 Unsupervised Learning: Introduction集群(聚类)的概念.什么是无监督学习:对于无 ...

  3. 无监督学习(Unsupervised Learning)

    无监督学习(Unsupervised Learning) 聚类无监督学习 特点 只给出了样本, 但是没有提供标签 通过无监督学习算法给出的样本分成几个族(cluster), 分出来的类别不是我们自己规 ...

  4. 机器学习聚类算法之K-means

    一.概念 K-means是一种典型的聚类算法,它是基于距离的,是一种无监督的机器学习算法. K-means需要提前设置聚类数量,我们称之为簇,还要为之设置初始质心. 缺点: 1.循环计算点到质心的距离 ...

  5. 一种新型聚类算法(Clustering by fast search and find of density peaksd)

    最近在学习论文的时候发现了在science上发表的关于新型的基于密度的聚类算法 Kmean算法有很多不足的地方,比如k值的确定,初始结点选择,而且还不能检测费球面类别的数据分布,对于第二个问题,提出了 ...

  6. 机器学习聚类算法之DBSCAN

    一.概念 DBSCAN是一种基于密度的聚类算法,DBSCAN需要两个参数,一个是以P为中心的邻域半径:另一个是以P为中心的邻域内的最低门限点的数量,即密度. 优点: 1.不需要提前设定分类簇数量,分类 ...

  7. 机器学习作业(七)非监督学习——Matlab实现

    题目下载[传送门] 第1题 简述:实现K-means聚类,并应用到图像压缩上. 第1步:实现kMeansInitCentroids函数,初始化聚类中心: function centroids = kM ...

  8. 机器学习-聚类(clustering)算法:K-means算法

    1. 归类: 聚类(clustering):属于非监督学习(unsupervised learning) 无类别标记(class label) 2. 举例: 3. Kmeans算法 3.1 clust ...

  9. 数学模型:3.非监督学习--聚类分析 和K-means聚类

    1. 聚类分析 聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术 ---->> 将观测对象的群体按照相似性和相异性进行不同群 ...

随机推荐

  1. 日积月累系列之国籍控件(js源码)

    一直苦于没有好的国籍控件可以用,于是抽空写了一个国籍控件,现分享给大家. 主要功能和界面介绍 国籍控件主要支持中文.英文过滤以及键盘上下事件. 源码介绍 国籍控件核心是两个文件,navtionalit ...

  2. [Elasticsearch] 邻近匹配 (一) - 短语匹配以及slop參数

    本文翻译自Elasticsearch官方指南的Proximity Matching一章. 邻近匹配(Proximity Matching) 使用了TF/IDF的标准全文搜索将文档,或者至少文档中的每一 ...

  3. Installshield设置feature为必须选中状态,即必定安装状态

    原文:Installshield设置feature为必须选中状态,即必定安装状态 上一篇: 解决卸载时残留目标文件夹的问题Installation Designer --> Organizati ...

  4. UiAutomator源码分析之获取控件信息

    根据上一篇文章<UiAutomator源码分析之注入事件>开始时提到的计划,这一篇文章我们要分析的是第二点: 如何获取控件信息 我们在测试脚本中初始化一个UiObject的时候通常是像以下 ...

  5. 2. SQL Server数据库状态监控 - 错误日志

    原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...

  6. 疯狂html5演讲(两):HTML5简经常使用的元素和属性(一个):html5保留经常使用的元素

    html5取出一小部分的元素和属性:主要删除的各种元素和属性与文档相关的风格.例<font>.width等待,html5建议规范css样式表来控制html文档样式. 1.基本元素 < ...

  7. Asterisk 未来之路3.0_0003

    原文:Asterisk 未来之路3.0_0003 Asterisk: The Hacker's PBX 如果电信公司忽视了asterisk,那么正在处于危险中.asterisk 良好的扩展性,能够创建 ...

  8. Kinect for Windows V2.0 新功能

    系统要求: win8  or  win8.1 硬件要求: 64位(x64)处理器 i7 2.5-GHz或更快的处理器 内置USB 3.0总线 4 GB RAM DX11图形适配器 外观: 第二代Kin ...

  9. ASP.NET vNext 在 Mac OS

    让 ASP.NET vNext 在 Mac OS 中飞呀飞...   写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homeb ...

  10. QTP知识总结(一)

    QTP知识总结(一) (2010-12-22 16:30:41) 转载▼ 标签: 杂谈 分类: QTP File menu Process guidance management,View > ...