资源描述:
《实验7.2基于数学模型的k均值聚类算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章数学模型模型是算法的基础,是算法的来源与根本,因此,学习算法与编程语言的过程是离不开数学模型的。本章我们将从贝叶斯判别分析和k-means聚类两个基本问题入手来讨论两种算法的模型及实现。在一些自然科学与社会科学的研究中,研究对象用某种方法已划分为若干类型。得到的一个新样品数据后,要确定该样品属于已知类型中的哪一类,这样的问题属于判别分析。判别分析是一种重要的统计分析方法。这一方法的基本思想是根据已知类别的样本所提供的信息,总结出分类的规律,建立判别公式和判别准则,判别新的样本点所属类型。本部分主要介绍基于数学模型的贝叶斯判别分析方法。对事物进行分组,是人们认识事物的出发点,也是人
2、们认识世界的一种重要方法。因此,分类学已经成为人们认识世界的一门基础学科。聚类分析又称群分析,它是研究(样本或者之别)分组问题的一种多元统计方法。所谓类,通俗地说,就是指相似元素的集合。本部分主要介绍基于数学模型的k-means聚类方法。实验7.2基于数学模型的k均值聚类算法实验目的(1)掌握k均值聚类方法的原理及Matlab命令。(2)熟练掌握matlab软件k均值聚类的方法与步骤。K均值是要根据实际问题先确定分类数k, 在每一类中选择有代表性的样品,这样的样品称为聚点.选择聚点的方法通常有最小最大原则.假设我们提取到原始数据的集合为(x1, x2,…, xn),并且每个xi为d维的
3、向量,K-means聚类的目的就是,在给定分类组数k(k ≤ n)值的条件下,将原始数据分成k类S = {S1, S2, …, Sk},在数值模型上,即对以下表达式求最小值:这里μi 表示分类Si 的平均值。实验内容K均值聚类的步骤:样品之间的距离采用欧氏距离.(1)设第k个初始聚点的集合是:记作于是,将样品分成不相交的k类,得到一个初始分类(2)从出发,计算新的聚点集合计算其中是类中的样品数,得到一个新的集合从开始再进行分类,将样品作新的分类,记得到一个新的分类依次重复计算下去.(3)重复上述步骤m次得,其中是类的重心. 【例题7.2】从12不同地区测得了某树种的平均发芽率与发芽势,
4、数据如下表6.212个地区某树种发芽情况地区1234567891011120.7070.6000.6930.7170.6880.5330.8770.5130.8150.6330.7400.7770.3850.4330.5050.3430.6050.3800.7130.3530.6750.4650.5800.723采用欧氏距离,将这12个地区以树种发芽情况按k均值聚类法聚为2类.解:利用Matlab软件中的命令:kmeans,可以实现k均值聚类y=[.707.6.693.717.688.533.877.513.815.633.74.777;.385.433.505.343.605.38.
5、713.353.675.465.58.723];x=y';%矩阵x的行为个体,列为指标[a,b]=kmeans(x,2) %分为2类,输出:a为聚类的结果,b为聚类重心,每一行表示一个类的重心a=[222212121211]’b=0.77940.65920.62800.4091x1=x(find(a==1),:)%提取第1类里的样品x2x(find(a==2),:)%提取第2类里的样品x1=0.68800.60500.87700.71300.81500.67500.74000.58000.77700.7230x2=0.70700.38500.60000.43300.69300.505
6、00.71700.34300.53300.38000.51300.35300.63300.4650sd1=std(x1),sd2std(x2) %分别计算第1类和第2类的标准差sd1=0.07190.0641sd2=0.08310.0603plot(x(a==1,1),x(a==1,2),'r.',x(a==2,1),x(a==2,2),'b.')%作出聚类的散点图图7.1分类结果的散点图