机器学习 吴恩达 第八周 笔记

这篇博客详细介绍了机器学习中的K均值聚类算法,包括其工作原理、可能存在的问题及解决策略。同时,文章探讨了维度约简的重要性,特别是主成分分析(PCA),解释了PCA的目标、步骤和应用场景,并提供了降维与重构的数据处理方法。
摘要由CSDN通过智能技术生成

K均值聚类---K-mean

对无监督学习对象进行分类的常用方法之一。

因为比较简单,所以就简单说下

 

一开始先输入K(就是cluster的个数)还有training set。 

 

从training set中随机选取K的点作为初始的cluster centroid。

然后for loop:

① min(每个training set的点到cluster centroid的距离),因为是根据这个点到cluster centroid的距离来判断,这个点是否属于这个cluster centroid。E.g c(5) = 4 代表 第五个样本点是属于第四个cluster centroid。

② 等到所有点都找到了自己的cluster centroid后,再找出每个cluster新的中心点,具体就是将属于同一个cluster的所有点加起来,再取平均值,得到的就是新的cluster centroid的坐标。E.g c(76) = 4, c(24) = 4,c(5) = 4,就是将这三个的横纵坐标加起来然后除以3得出新点坐标。

在将所有新的cluster centroid算出来后,如果新点跟旧点相比,差距不大,则可以结束,否则就继续循环①②(带着新点循环)。

如图,K-mean的目的是让costFunction J达到最小,就是training set中每个点到其cluster centroid的距离的和最小。

然而,随机初始化centroid可能会带来不好的影响,看图

 如上图,如果运气差的话,初始点的位置不好,会出现以上现象。明显的3个cluster可能最后结果只有2个cluster。

解决方法:多次循环K-mean,然后去J的最小值时的K

 

循环算K-mean后,会有这么两种结果第一种称为Elbow method,就是斜率问题。如图选择K=3,因为斜率在这里骤变。

然后对于图二,很难选

这里post上一题目。K=5时>K=3

有时候,对于K-mean要根据需求了来选择K,如下图,不同衣服size

Dimensionality Reduction---维度约简

两个motivation : 1. Data compression 数据压缩,可以提高运算速度和减少存储空间。

                               2. Data Visualization 更直观的视图

Data Compression

从2D->1D

在这个例子里,2D坐标系中所有点可以由一条大概的直线贯穿,点到直线上的映射(注意,这里是点到直线的距离,并不是点的纵坐标到直线的距离) 如下图那一条线就是点的映射,那么整个2D数据就可以由原来的(x,y)--->z用z来表达

3D->2D同理,只不过用(z1,z2)来代替原本的(x,y,z) 

 

 Data Visualization

 

 

 上面三图所表达的东西可以最终由GDP和人均GDP或类似的东西来表达。从原本的好多D降到了2D

Principal Component Analysis Problem Formulation(PCA)

PCA的目的就是降维,具体怎么做呢,就是找到一个向量(就是那条线),使得所有training 点映射在这向量上面的projection error最小。啥是projection error,就是下图,点到直线的距离(是距离,不是纵坐标距离)

 

 这就是上面所说的距离。左图是linear regression,其目的是预测y和原本真实的y的差距,所以用的是纵坐标上的距离。

而右图则是PCA,求得是降维过程中的最佳向量。

那咋用呢

第一步:处理数据,feature scaling啊 mean normalization啊什么的保证取值范围在一个合理的范围内,不然容易因为某一个的取值范围过大或过小而影响了最终结果(参考那个房子面积和房间数)

 第二步:计算协方差矩阵 和特征向量

 这个协方差(covariance matrix)符号和求和符号很像,然后这里用sigma表示协方差矩阵

接下来就是算特征向量

svd()唤作single value decomposition奇异值分解。这里U,S,V我们只取U来玩。

具体原理,咱不知道,咱也不敢问。

看到上面的U没有,我们取前K个(这里的K就是降维后的维数),作为K个向量μ,(啥意思呢,就是如果2D->1D, 就只用一条向量能表达嘛,这个μ就等于那条直线,同理 3D->2D,μ1,μ2)。。然后z就是我们降维后用来代替原本维度东东。z = Ureduce * X,这个Ureduce就是取了前K个后的U。

Reconstruction

有降维肯定就有还原啦。

 

这是第一种方法,projection error 的平均值误差 / 那个总变量得到的结果小于某个数,这里是小于0.01,换句话说,99%的变量都被保留了 

第二种方法就简单的多, 咱取U,S,V中的S,这是一个对角线有元素,其他为0的矩阵,然后按照公式,要多少k取多少k然后除总数,搞定

最后补充: 

  

PCA只是用来降维,不能用来解决over'fit 

 

PCA不应该是作为首先考虑的手段,应该用别的方法算过后不行才用。

这里只放两段代码

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值