Programming Exercise 7:K-means Clustering and Principal Component Analysis 第一部分

本文介绍了Coursera上Stanford University的Machine Learning课程编程练习7的内容,涉及K-means聚类算法的实现和PCA的训练。通过代码实现K-means算法,包括初始化中心、样本分类和计算新中心等步骤,并应用到图像压缩中,展示如何用K-means对图像进行颜色量化,从而减少存储空间。
摘要由CSDN通过智能技术生成

        大家好,我是Mac Jiang,今天和大家分享Coursera-Stanford University-Machine Learning-Programming Exercise 7:K-means Clustering and Principal Principal Component Analysis的第一部分的编码。第一部分讲的是K-means Clustering,即K均值算法的实现过程,虽然我写的代码是正确的,但不一定是最好的,如果有更好的实现方法,请留言指正。当然,欢迎大家转载我的博客,不过在转载之前请标明出处,谢谢。第二部分的地址为:http://blog.csdn.net/a1015553840/article/details/50879343


        好的,我们开始讲解第一部分K-means Clustering的具体实现过程。

       这部分的主要有两大块内容:

       (1)主要是训练PCA算法,并在OpenGL上绘制出K均值算法的具体计算过程,绘制出每次分类情况和中心变换情况。

          

       (2)利用K均值算法对一幅图像进行压缩,此图像为128*128,每个像素由RGB三种颜色标识,而每种颜色用1BYTE(8bit)表示,范围为0-255。如果不采取压缩,那么图像所占存储空间大小为128*128*3BYTE=128*128*24bits = 393,216bits。我们要进行的是利用K均值算法聚类出最常用的16中颜色,这16中颜色只要用4bit标识,加上这十六种颜色与RGB的映射关系共128*128*4 + 16*24 = 65,920bit。可以看到,压缩后存储只占压缩前存储量的1/6左右。

       


数据集:ex7data2.mat---用于训练K均值算法的训练样本

              bird_small.png---用于做压缩测试的图像

   函数:displayData.m---把训练样本X的数据可视化

              drawLine.m---画出2D降为1D的直线  plotDataPoints.m---k均值算法的点,当属于不同中心时用不同颜色画出

              plotProgresskMeans.m---做出k均值算法的中心    runMeans.m---运行k均值算法

              ex7.m---K均值算法的主控制函数,控制算法的进行过程

              kMeansInitCentroid.m---初始化k均值算法的中心,需要完善代码!

              findClosestCentroids.m---将每个样本归为离他最近的中心的那一类,需要完善代码!

              computeCentroids.m---将上面求得的类,计算每一类的新的中心,需要完善代码!

              这部分作业共三个文件需要完善代码


K均值算法的计算为:

        初始化中心;(kMeansInitCentroids.m实现)

        Repeat{

                    from 1 to m:计算每个样本离各类中心的距离,将每个样本分别归类(findClosestCentroids.m实现)

                    from 1 to K:z在归类后,计算各类的中心(compureCentroids.m实现)

         }

这我们需要完成的任务就是编写初始化,样本分类,求新分类中心三个操作


1.ex7的控制过程

%% Machine Learning Online Class
%  Exercise 7 | Principle Component Analysis and K-Means Clustering
%
%  Instructions
%  ------------
%
%  This file contains code that helps you get started on the
%  exercise. You will need to complete the following functions:
%
%     pca.m
%     projectData.m
%     recoverData.m
%     computeCentroids.m
%     findClosestCentroids.m
%     kMeansInitCentroids.m
%
%  For this exercise, you will n
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值