Standford机器学习 聚类算法(clustering)和非监督学习(unsupervised Learning)
聚类算法是一类非监督学习算法,在有监督学习中,学习的目标是要在两类样本中找出他们的分界,训练数据是给定标签的,要么属于正类要么属于负类。而非监督学习,它的目的是在一个没有标签的数据集中找出这个数据集的结构把它自动聚成两类或者多类。
本讲主要介绍了最常用了一种聚类算法--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)的更多相关文章
- 如何区分监督学习(supervised learning)和非监督学习(unsupervised learning)
监督学习:简单来说就是给定一定的训练样本(这里一定要注意,样本是既有数据,也有数据对应的结果),利用这个样本进行训练得到一个模型(可以说是一个函数),然后利用这个模型,将所有的输入映射为相应的输出,之 ...
- Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记
8 Unsupervised Learning8.1 Clustering8.1.1 Unsupervised Learning: Introduction集群(聚类)的概念.什么是无监督学习:对于无 ...
- 无监督学习(Unsupervised Learning)
无监督学习(Unsupervised Learning) 聚类无监督学习 特点 只给出了样本, 但是没有提供标签 通过无监督学习算法给出的样本分成几个族(cluster), 分出来的类别不是我们自己规 ...
- 机器学习聚类算法之K-means
一.概念 K-means是一种典型的聚类算法,它是基于距离的,是一种无监督的机器学习算法. K-means需要提前设置聚类数量,我们称之为簇,还要为之设置初始质心. 缺点: 1.循环计算点到质心的距离 ...
- 一种新型聚类算法(Clustering by fast search and find of density peaksd)
最近在学习论文的时候发现了在science上发表的关于新型的基于密度的聚类算法 Kmean算法有很多不足的地方,比如k值的确定,初始结点选择,而且还不能检测费球面类别的数据分布,对于第二个问题,提出了 ...
- 机器学习聚类算法之DBSCAN
一.概念 DBSCAN是一种基于密度的聚类算法,DBSCAN需要两个参数,一个是以P为中心的邻域半径:另一个是以P为中心的邻域内的最低门限点的数量,即密度. 优点: 1.不需要提前设定分类簇数量,分类 ...
- 机器学习作业(七)非监督学习——Matlab实现
题目下载[传送门] 第1题 简述:实现K-means聚类,并应用到图像压缩上. 第1步:实现kMeansInitCentroids函数,初始化聚类中心: function centroids = kM ...
- 机器学习-聚类(clustering)算法:K-means算法
1. 归类: 聚类(clustering):属于非监督学习(unsupervised learning) 无类别标记(class label) 2. 举例: 3. Kmeans算法 3.1 clust ...
- 数学模型:3.非监督学习--聚类分析 和K-means聚类
1. 聚类分析 聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术 ---->> 将观测对象的群体按照相似性和相异性进行不同群 ...
随机推荐
- ubuntu安装nVidia驱动,遇到终端闪砾问题并解决
安装nvidia的官方驱动之后,比起nouvean来说感觉速度快了不少. 安装该驱动很简单,但选择哪个驱动是要注意的.因为今天我试了nvidia的多个驱动后都在ubuntu下用起来并不好. 我现在的环 ...
- ASP.NET中XML转JSON的方法
原文:ASP.NET中XML转JSON的方法 许多应用程序都将数据存储为XML的格式,而且会将数据以JSON的格式发送到客户端以做进一步处理.要实现这一点,它们必须将XML格式转换为JSON格式. X ...
- IE低版本下实现html5的placeholder(表单提示)功能
placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 <inpu ...
- ssis的script task作业失败(调用外部dll)
原文 ssis的script task作业失败 我的ssis作业包里用了一个script task,会查询一个http的页面接口,获取json数据后解析然后做后续处理,其中解析json引用了本地目录下 ...
- Nhibernate分页测试续
Nhibernate分页测试续(附源码) 接着上一篇Nhibernate分页测试,最近一直在接触Nhibernate,接触的越多.了解越深,越是感觉他的强大,很多功能都封装的很好,对数据操作是那么的简 ...
- ASP.NET MVC + EF 利用存储过程读取大数据
ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK 看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, ...
- Function.prototype.toString
语法:fn.toString(indentation) 改方法返回当前函数源代码的字符串,而且还可对此字符串进行操作,比如: function num(){ }; var str = num.toSt ...
- c#多线程随记回顾
C#多线程随记回顾 1.创建多线程方式知道的有三种: ---手动创建Thread.使用线程池.使用task任务 ---手动创建Thread,分两种带参数和不带参数的帮助委托器 eg: //帮助器委托 ...
- SZU:G32 Mass fraction
Judge Info Memory Limit: 32768KB Case Time Limit: 5000MS Time Limit: 5000MS Judger: Float Numbers (1 ...
- iOS基础 - 内存分析
一.内存的重要性 程序是否可用的最根本的制约因素. 十分影响用户体验. 程序的crash有很多情况都是内存的原因. 二.iOS平台内存警告机制 iOS系统不支持虚拟内存,一旦出现内存不足的情况,iOS ...