Machine Learning - Coursera 吴恩达机器学习教程 Week8 学习笔记(Unsupervised Learning)

这篇博客主要介绍了吴恩达在Coursera上的机器学习课程第八周的内容,重点是无监督学习中的K-Means聚类算法和降维方法PCA。K-Means的优化目标是找到最小化样本到所属中心点平均距离的中心点,随机初始化可能导致局部最优解,需要多次尝试。选择K值可以手动或通过Elbow方法。PCA则用于数据压缩和可视化,通过对协方差矩阵进行奇异值分解来找到主要成分。作业包括实现K-Means和PCA的相关函数。
摘要由CSDN通过智能技术生成

无监督学习

本周课程开始进入无监督学习。

一个重要应用是聚类问题
在这里插入图片描述

K-Means算法

随机找K个中心点(红×和蓝×),将样本标记为最近的中心点:
在这里插入图片描述
计算每个类别里样本的平均值(mean),作为新的中心点:
在这里插入图片描述
循环执行上面两个步骤,直到中心点不再变化,得到聚类结果:
在这里插入图片描述
算法伪代码如下:
在这里插入图片描述
注意:有可能出现某个类别中没有点的情况,这时通常就删掉这个中心点,就变成了k-1个类别。(如果还是需要k个类别,可以再重新随机出一个中心点)

K-means优化目标

这里的J也被称为Distortion函数。

目标就是找出一组中心点μ,对样本标记后得到c,使得J(c, μ) = 样本点到相应标记点的总距离平均值最小:
在这里插入图片描述

随机初始化

随机从样本点里找K个点,作为初始中心点:
在这里插入图片描述
随机选点的不同,K-means的结果也可能不同。右上是全局最优,右下两个都是局部最优:
在这里插入图片描述
为了保证效果,需要执行多次K-means,尝试多次随机选点,选出代价函数最低的。一般是50-1000次。

当k较小时,比如k=2-10时,执行多次K-means有明显效果。但当k较大时,比如k=100,多次执行可能效果也不会提高太多:
在这里插入图片描述

怎么选K

手动选择

一般是靠数据可视化,或者看数据特点,人工选择的。

比如下面的样本,选择K=4或K=2都是可以的:
在这里插入图片描述
在这里插入图片描述

自动选择

左图,Elbow方法:随着K的变化,找到代价函数下降速率的拐点(像肘一样)。

但实际上,有可能出现右图的形状,很难区分哪个是拐点。

所以Elbow方法仅是值得一试,不要抱太大期望。
在这里插入图片描述

降维(dimensionality reduction)

数据压缩

能减少空间占用,也能加速机器学习算法。

当你有成百上千个特征时,需要去下重,即缩减高度相关的。

如下cm和inch的特征(由于有四舍五入的误差,二者并没有完美拟合在一条直线上)。
在这里插入图片描述
另一个例子,将飞行员的“技巧”和“兴趣”,缩减为“态度”:
在这里插入图片描述
三维降成二维的例子:
在这里插入图片描述

数据可视化

因为人类只能看到三维以内的图像,所以为了可视化数据,需要将特征降维到2个以内。

PCA(Principal Component Analysis)主成分分析方法

降维映射后,距离最短的。
在这里插入图片描述
从n维降到k维:找k个向量,使数据映射到k个向量上时,映射距离最小。
在这里插入图片描述

数据预处理

使用PCA算法前,要做特征缩放、归一化等处理:
在这里插入图片描述

PCA算法流程

名词解释:
eigenvectors 特征向量
eigenvalues 特征值

  1. 计算协方差矩阵sigma
  2. 使用sigma作为输入,调用函数svd(sigma)计算出eigenvectors(特征向量),[U, S, V]
  3. 得到的U是n * n矩阵,取前k列,得到Ureduce ,n * k 矩阵
  4. 得到新的特征:z = Ureduce’ * x

在这里插入图片描述
在这里插入图片描述

从降维还原数据

在这里插入图片描述

在这里插入图片描述

如何选择PCA算法中的k(主成分个数)

Total variation:就是数据离0的距离。

保留足够高的差异度,一般设为99%。
在这里插入图片描述
左图,从1开始遍历k,找到第一个符合差异度保留99%以上的k。右图,可以根据[U, S, V] = svd(Sigma)中的S快速计算差异保留度:
在这里插入图片描述
在这里插入图片描述

PCA如何加速机器学习算法

将样本的维度从n缩减到k。

注意:只在训练集上运行PCA,找到x->z的映射方法。以后这个映射方法可以再应用到交叉验证集和测试集。
在这里插入图片描述

PCA的运用

正确运用:1. 数据压缩 2. 可视化
在这里插入图片描述
错误运用:缩减特征来避免过拟合
在这里插入图片描述
不要上来就用PCA,首先要想不用PCA怎么样?

当内存或硬盘空间不足、算法运行速度过慢时,再考虑加入PCA。
在这里插入图片描述

作业

findClosestCentroids.m

function idx = findClosestCentroids(X, centroids)
%FINDCLOSESTCENTROIDS computes the centroid memberships for every example
%   idx = FINDCLOSESTCENTROIDS (X, centroids) returns the closest centroids
%   in idx for a dataset X where each row is a single example. idx = m x 1 
%   vector of centroid assignments (i.e. each entry in range [1..K])
%

% Set K
K = size(centroids, 1);

% You need to return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值