8 Unsupervised Learning
8.1 Clustering
8.1.1 Unsupervised Learning: Introduction
集群(聚类)的概念。
什么是无监督学习:对于无标记无关联标记的数据,要求算法分析出数据的结构。
什么是聚类:将未加标签的数据分成有紧密关系的子集或者簇。

做道题:

ABC

8.1.2 K-Means Algorithm
讨论什么是K均值以及K均值的使用。K均值算法是一种迭代的聚类方法。

用图来展示K均值更加直观:
1.因为本例要将数据分为2类,所以要随进选择2个聚类中心(cluster centroid)。绿色的点表示的是未标记的样本。


2.迭代执行簇分配(centroid assignment)和移动聚类中心(Move the cluster centroids):
while 聚类中心不再移动
  簇分配,检查没有标记的点,将点的颜色染成距离它最近的那个聚类中心的颜色。(例子中是将图中的绿点根据距离红叉或者篮叉更近分配到两个不同的聚类中心)。
  移动聚类中心,计算点的各维度的均值,将中心移动到与自己同一颜色的点群的均值位置。(将红叉或者篮叉移动到和它一样颜色的那堆点的均值处)。
end

具体过程从左向右,从上向下:

K均值算法描述:
输入:K个类别;训练集。


运行:簇分配+移动聚类中心。

如果遇到没有分配点的聚类中心,直接移除或者再随机找一个聚类中心,通常移除更加常见。算法见下图:

1.随机初始化K个聚类中心u1,u2,...,uK

2.while 聚类中心不再变化

  簇分配:对于训练集的每个样本x(i),置c(i)=距离x(i)最近的聚类中心编号k。这里就是求mink||x(i)-uk||2的k。

  移动聚类中心:对于每个聚类中心k,置uk=(所有c(i)=k的样本点的均值)。

end

做道题:

答案:

K均值的应对没有很好分开的簇:
市场细分的例子:将T恤分为小中大号。


下一节中讨论如何让K均值表现得更好一些

8.1.3 Optimization Objective
1.K均值的代价函数。保证K均值的正常运行。
2.如何利用K均值的代价函数来帮助K均值来找到更好的簇,避免局部最优解。
一些定义:c(i)、uk和uc(i)

K均值的代价函数也叫失真代价函数(distortion cost function)。

K均值算法的原理是最小化代价函数J的过程:簇分配就是在聚类中心不变时,求使代价函数J最小的c(1)...c(m);移动聚类中心就是在c(1)...c(m)不变的情况下,求使代价函数最小的uk

做道题:

D

回归问题中有可能因为学习率设置过大产生随着迭代次数增加,cost function反倒增大的情况。但聚类是不会产生这样的问题的,因为每一次聚类都保证了使J下降,且无学习率做参数。

下节课帮助K均值找到更好的簇以及同时避免局部最优解。

8.1.4 Random Initialization
如何初始化K均值聚类中心,这会引导我们如何避开局部最优来构建K均值。

随机初始化:
1.K<m。

2.随机选择K个训练样本。

3.使聚类中心等于这些被选的K个样本。

KMeans的运行结果取决于KMeans的初始化。

避免局部最优的方法,提高K均值找到有可能的聚类的几率的方法是多次随机初始化。具体而言就是

1.随机初始化K均值。

2.执行K均值。

3.得到一系列的c,u值。

4.计算代价函数。

将以上4步多次执行,选取代价函数最小的一次作为最终结果。


如果聚类的k选取的比较小,多次随机初始化通常就会有个较好的局部最优解;但是如果k很大,那么多次随机初始化的效果就不太明显。

做道题:

C

8.1.5 Choosing the Number of Clusters
如何选择聚类分类数目K。没有自动选择的好方法:看可视化的图;看聚类分类的输出结果;手动决定(最常用)。
选择聚类的数目是困难的是因为数据中有多少个类通常是模棱两可的。比如下图:相同的数据样本情况


无监督学习中样本没有标签,所以结果没有清晰的答案。

其中的可能有用的一个方法:肘部法则(Elbow Method)。具体就是取不同的类别值K,分别计算不同K下的代价函数J,画图:

左图中出现一个突变点,这个点对应的K值就是可能的较好的分类数目K。在这个K前后,代价函数值有突变。K=3前代价函数值下降速度较快;K=3后代价函数值下降速度慢。像这样K=3的点,就是肘点(elbow)。但实际上也有可能出现像右边的图的情况,这时的肘点就没有左图那么明显。

出现上图右侧的情况时,更好地选择分类数目K的方法其实是看运行K均值的目的是什么。

比如T恤的例子:可以分为{S,M,L},也可以分为{XS,S,M,L,XL},具体看需求和目的。

做道题:

C

练习:

BD

C

CD

B

CD

AB

Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记的更多相关文章

  1. Coursera 机器学习 第5章 Neural Networks: Learning 学习笔记

    5.1节 Cost Function神经网络的代价函数. 上图回顾神经网络中的一些概念: L  神经网络的总层数. sl  第l层的单元数量(不包括偏差单元). 2类分类问题:二元分类和多元分类. 上 ...

  2. Coursera 机器学习 第7章 Support Vector Machines 学习笔记

    7 Support Vector Machines7.1 Large Margin Classification7.1.1 Optimization Objective支持向量机(SVM)代价函数在数 ...

  3. [Machine Learning]学习笔记-Logistic Regression

    [Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为" ...

  4. Machine Learning 学习笔记

    点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...

  5. 【机器学习】决策树(Decision Tree) 学习笔记

    [机器学习]决策树(decision tree) 学习笔记 标签(空格分隔): 机器学习 决策树简介 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个 ...

  6. 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h

    DA就是“Denoising Autoencoders”的缩写.继续给yusugomori做注释,边注释边学习.看了一些DA的材料,基本上都在前面“转载”了.学习中间总有个疑问:DA和RBM到底啥区别 ...

  7. PredNet --- Deep Predictive coding networks for video prediction and unsupervised learning --- 论文笔记

    PredNet --- Deep Predictive coding networks for video prediction and unsupervised learning   ICLR 20 ...

  8. Machine Learning 学习笔记1 - 基本概念以及各分类

    What is machine learning? 并没有广泛认可的定义来准确定义机器学习.以下定义均为译文,若以后有时间,将补充原英文...... 定义1.来自Arthur Samuel(上世纪50 ...

  9. 吴恩达Machine Learning学习笔记(一)

    机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...

随机推荐

  1. 制作百度地图离线JavaScript API加载本地瓦片地图

    全面介绍,请看下列介绍地址,改写目前最新版本的百度V2.0地图,已全面实现离线操作,能到达在线功能的95%以上 http://api.jjszd.com:8081/apituiguang/gistg. ...

  2. SqlServer给一个表增加多个字段语法

    添加字段语法 alter table table_name add column_name +字段类型+ 约束条件 给一个表增加多个字段: use NatureData go alter table ...

  3. iOS App 内部跳转(设置、Wifi、蓝牙...)关键词

    1.iOS 10 以前: 蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID Wi-Fi:prefs:root=WIFI 定位服务:prefs:root=LOCATION_ ...

  4. Java设计模式之单例设计模式 入门实例

    一.基础概念 (1).单例设计模式:保证一个类在内存中的对象唯一性. (2).应用场景:数据都存储在配置文件的对象中,多个程序对同一个配置文件的对象进行操作.一个程序要基于另一个程序操作后的结果进行操 ...

  5. Python实现——二元线性回归(最小二乘法)

    2019/3/30 二元线性回归--矩阵公式法_又名:对于python科学库的糟心尝试_ 二元线性回归严格意义上其实不过是换汤不换药,我对公式进行推导,其实也就是跟以前一样的求偏导并使之为零,并且最终 ...

  6. (STM32F4) Real-time Clock

    老實說Real-time Clok這項功能,我也只有在PC和手機上有見過,其他的應用產品上我也很少見到. 言歸正傳在STM32F4 RTC這項功能在IC內部就有內建,在早期的8051是如果要做RCT是 ...

  7. StyleSheet

    StyleSheet.create()方法 //定义组件 var App = React.createClass({ render:function () { return( <View sty ...

  8. Moving docker images location to different partition

    By default docker will put all the data including images under /var/lib/docker(At least on Debian). ...

  9. 【KMP】【字符串】KMP字符串匹配算法 学习笔记

    一.简介     KMP是由Knuth.Morris和Prat发明的字符串匹配算法,它的时间复杂度是均摊\(O(n+m)\).其实用Hash也可以做到线性,只不过Hash存在极其微小的难以避免的冲突. ...

  10. hdu1711 Number Sequence kmp模板

    题目传送门 学习博客 学习了kmp算法,理解了算法思想,但还没有到能把这个思想用语言来描述出来. #include<bits/stdc++.h> #define clr(a,b) mems ...