【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 13—Clustering 聚类
Lecture 13 聚类 Clustering
13.1 无监督学习简介 Unsupervised Learning Introduction
现在开始学习第一个无监督学习算法:聚类。我们的数据没有附带任何标签,拿到的数据就是这样的:
例子:
(注:这里有考题,问哪些可以使用聚类算法)
13.2 K-means算法 K-Means Algorithm
K-Means 是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚类成不同的组。
迭代过程为:
1)选择K个随机的点,称为聚类中心(cluster centroids);
2)对于数据集中的每个数据,按照距离K个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类。
3)计算每一个组的平均值,将该组所关联的中心点移动到平均值的位置。
4)重复步骤 2-3 直至中心点不再变化。
下面是一个聚类示例:
初始化随机的中心点,计算距离后分类,然后移动中心点
迭代很多次之后,得到最终聚类结果:
在没有非常明显组群的情况下,也可以使用K-means。例如下图中,使用K-means 确定要生产的 T-恤衫的三种尺寸:
13.3 优化目标 Optimization Objective
K-means最小化问题,是要最小化所有数据点与其所关联的聚类中心点之间的距离之和,因此 K-means的代价函数(又称畸变函数 Distortion function)为:
目标是使其最小
由于算法第一个循环用于减小 c(i) 引起的代价,而第二个循环则是用于减小 μi 引起的代价。会在每一次迭代都减小代价,不然便说明存在错误。
13.4 随机初始化 Random Initialization
随机初始化的聚类中心点的方法:
a) 选择K < m,即聚类中心点的个数要小于所有训练集实例的数量
b) 随机选择K个训练实例,然后令K个聚类中心分别与这K个训练实例相等
K-means的一个问题在于,如果初始化不好,有可能会停留在一个局部最小值处。通常需要运行多次 K-means算法,每一次都重新随机初始化,最后比较多次运行 K-means的结果,选择代价函数最小的结果。这种方法在K较小的时候(2-10)可行,如果K较大可能不会有明显地改善。
13.5 选择聚类数 Choosing the Number of Clusters
没有最好的选择聚类数的方法,通常是需要根据不同的问题人工选择。需要思考运用 K-means算法的动机,然后选择能最好服务于该目的的聚类数。
这里存在一个“肘部法则”:改变聚类数K,运行聚类算法,然后计算成本函数(畸变函数)J。 有可能会得到一条类似于肘部的曲线:
上图在 3 的时候达到一个肘点。在此之后,畸变值就下降的非常慢,那么我们就选K = 3。
但是大部分情况下图像会像右图一样没有肘点。就需要人工选择。 例如,根据客户需求选择 T-恤的尺寸数:
附,参考黄海广笔记:
【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 13—Clustering 聚类的更多相关文章
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 15—Anomaly Detection异常检测
Lecture 15 Anomaly Detection 异常检测 15.1 异常检测问题的动机 Problem Motivation 异常检测(Anomaly detection)问题是机器学习算法 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统
Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 14—Dimensionality Reduction 降维
Lecture 14 Dimensionality Reduction 降维 14.1 降维的动机一:数据压缩 Data Compression 现在讨论第二种无监督学习问题:降维. 降维的一个作用是 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机
Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 11—Machine Learning System Design 机器学习系统设计
Lecture 11—Machine Learning System Design 11.1 垃圾邮件分类 本章中用一个实际例子: 垃圾邮件Spam的分类 来描述机器学习系统设计方法.首先来看两封邮件 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 10—Advice for applying machine learning 机器学习应用建议
Lecture 10—Advice for applying machine learning 10.1 如何调试一个机器学习算法? 有多种方案: 1.获得更多训练数据:2.尝试更少特征:3.尝试更多 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 1_Introduction and Basic Concepts 介绍和基本概念
目录 1.1 欢迎1.2 机器学习是什么 1.2.1 机器学习定义 1.2.2 机器学习算法 - Supervised learning 监督学习 - Unsupervised learning 无 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别
Lecture 18—Photo OCR 应用实例:图片文字识别 18.1 问题描述和流程图 Problem Description and Pipeline 图像文字识别需要如下步骤: 1.文字侦测 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 17—Large Scale Machine Learning 大规模机器学习
Lecture17 Large Scale Machine Learning大规模机器学习 17.1 大型数据集的学习 Learning With Large Datasets 如果有一个低方差的模型 ...
随机推荐
- PHP设置脚本最大执行时间的三种方法
php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,如果脚本需要跑很长时间,例如要大量发送电子邮件,或者分析统计大量数据,服 ...
- bzoj4806 炮
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4806 这种题应该想状压的. 于是发现压不下,结合每一行每一列最多放两个炮想到记一下放炮的列就 ...
- apache编译参数详解
常用编译参数: ./configure //配置源代码树–prefix=/usr/local/apache //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录.–e ...
- 初识php,开发环境的配置
PHP开发环境配置和第一个PHP程序(phpStudy+PhpStorm) 第一步 下载phpStudy 首先,到phpStudy官网上下载最新的phpStudy版本. 第二步 安装phpStudy ...
- 请求MWS报错401:Access Denied
跑MWS接口,报错: Caught Exception: Access denied Response Status Code: Error Code: AccessDenied Error Type ...
- redis 命令集
进入客户端 /usr/local/bin/redis-cli 选择数据库 select index (0-15) 退出 quit
- 解决jenkins产生的日志过大以及一些衍生问题
jenkins使用一段时间后,会导致出现比较大的日志问题,经常占满硬盘空间(因为我们使用的硬盘大小20G,无额外存储要求).在硬盘空间占满之后,会导致一些基本的命令都无法使用,譬如tab都 ...
- C/C++程序内存情况
一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一 ...
- Go - 指针简介 与 ++/--运算符以及控制语句
指针 Go 语言中,对于指针有一些特殊约束: 1. 不在支持 “->” 符号,所有的指针使用“.” 来操作指针对象的成员变量 2. 指针的默认值为 “nil” ++ 与 -- 作为语句而非表达式 ...
- 使用wifi网卡笔记5---AP模式
使用WIFI网卡的AP功能 1.下载源码 hostapd: http://w1.fi/hostapd/ 2.编译.安装(hostapd依赖于libnl库,需要编译.安装此库) tar xzf host ...