andrew ng machine learning week8 非监督学习

 

吴恩达机器学习全套笔记博客地址
 

  

 聚类——无监督学习的一种算法

K-means算法 最为广泛使用的聚类算法

选择两个聚类中心

簇分配:根据每个样本更接近哪个聚类中心进行样本的分配

簇中心移动:计算出所有的红点类的均值点,移动原始聚类中心到这个点,蓝点类同理

进行不断地迭代直到收敛 

输入:K个簇类和训练集样本数据

注意:不需要X0项,为n维向量

 算法的描述:

如果最终有个簇中心没有任何点分配给他那么直接移除就可以

K-means常常适用于右侧这种看不出来结构的混乱的数据的聚类的,所以并不是都是左图如此理想的环境

最优化的目标函数


参数们:

每个训练样本被归类的簇号

簇中心编号

x所属的族的族编号

优化目标:每个样本到所属的簇中心的距离的累加和越小越好

随机初始化

K 应该 小于M

随机选择K个训练样本作为初始的簇中心

如何选择K的数目

看聚类产生的结果来手动选择聚类的数目

肘部法则:绘制随着聚类数目增多的cost曲线,选择位于手肘的位置的类数

衣服尺码的选择

第二种非监督算法 维数约减


一个物体用厘米英寸两种变量表示,其实冗余了,可以降维一次

可视化数据

从高纬度降到2/3维从而可以实现可视化

主成分分析法降维

找到一条线把所有的点投射到这条直线上,每个点到投影点的距离非常小,也就是找一个低维度的面,使这些小蓝色断线投影误差(的和最小)

首先一定要进行特征维度的均值归一化

找到一个方向进行投影

在3D上则是找到两个方向确定一个平面

主成分分析的算法实现:

一组训练数据首先进行特征缩放或者均值归一

计算协方差矩阵的特征向量,svd 奇异值分解 或者 eig命令都可以求特征向量

我们需要的是U矩阵,即为我们需要的u1,u2 and so on ,只需要选取前K列值就可以

总结

PCA作为数据压缩的算法,如何从压缩的数据还原到压缩之前的数据呢?

如何选择K最为合适呢?

使用K=1 进行PCA的计算,看是否差异性能够被保留,否则就增大K的值直到选择一个能保留差异性的K值

S是一个N*N的矩阵,对角线以外的元素都是0 

左边这个计算公式可以用右边的S矩阵的公式来更简单地计算出来

也就是1- K个对角线元素/N个对角线元素的和

总结一下计算的方法:

PCA如何在实际操作中提高算法的速度

10000维度的特征向量如何降维

首先得到一组没有y的训练样本

然后得到一组降了维度的z和新的训练集

PCA的应用

压缩

加速学习算法

不合适的应用:避免过拟合

当你发现你的运行空间不够或者效果不够好时才需要考虑用PCA来处理一下

原文地址:https://www.cnblogs.com/twomeng/p/9876316.html