计算机科学与工程学院.doc

计算机科学与工程学院.doc

ID:51325366

大小:182.00 KB

页数:7页

时间:2020-03-21

计算机科学与工程学院.doc_第1页
计算机科学与工程学院.doc_第2页
计算机科学与工程学院.doc_第3页
计算机科学与工程学院.doc_第4页
计算机科学与工程学院.doc_第5页
资源描述:

《计算机科学与工程学院.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、人工智能大作业计算机科学与工程学院人工智能(ArtificialIntelligence)大作业专业:姓名:学号:班级:完成日期:2011年6月5日人工智能大作业目录1.问题描述32.设计要求33.需求分析34.详细设计45.测试及运行结果56.程序源码及注释57.课程设计心得体会7人工智能大作业1.问题描述题目3:K-means算法分析Iris数据集难度:&&&&&(满分:90分)内容:k-means聚类算法算法6.4k-means算法是根据聚类中的均值进行聚类划分的聚类算法。输入:聚类个数k,以及包含n个数据对象的数据。输出:满足方差最小标准的k个聚类。处理流

2、程:Step1.从n个数据对象任意选择k个对象作为初始聚类中心;Step2.循环Step3到Step4直到每个聚类不再发生变化为止;Step3.根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分;Step4.重新计算每个(有变化)聚类的均值(中心对象)k-means算法的工作过程说明如下:首先从n个数据对象任意选择k个对象作为初始聚类中心,而对于所剩下的其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类。然后,再计算每个所获新聚类的聚类中心(该聚类中所有对

3、象的均值),不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数,具体定义如下:(1)其中E为数据库中所有对象的均方差之和,p为代表对象的空间中的一个点,mi为聚类Ci的均值(p和mi均是多维的)。公式(1)所示的聚类标准,旨在使所获得的k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。2.设计要求输入:聚类个数k,以及包含n个数据对象的数据。输出:满足方差最小标准的k个聚类。3.需求分析k-means算法接受输入量k;然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中

4、的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。k-means算法的工作过程说明如下:首先从n个数据对象任意选择k个对象作为初始聚类中心,而对于所剩下的其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类。然后,再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值),不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数,具体定义如下:(1)其中E为数据库中所有对象的均方差之和,p为代表对象的空间中的一个点,mi为聚类Ci的均值(p和m

5、i均是多维的)。公式(1)所示的聚类标准,旨在使所获得的k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。7人工智能大作业4.详细设计4.1K-means算法流程Step1.从n个数据对象任意选择k个对象作为初始聚类中心;Step2.循环Step3到Step4直到每个聚类不再发生变化为止;Step3.根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分;Step4.重新计算每个(有变化)聚类的均值(中心对象)4.2K-means算法流程图图1K-means算法流程图4.3K-means算法

6、变量及函数说明intN;//数据个数intK;//集合个数int*CenterIndex;//初始化质心数组的索引double*Center;//质心集合double*CenterCopy;//质心集合副本double*AllData;//数据集合double**Cluster;//簇的集合int*Top;//集合中元素的个数,也会用作栈处理voidInitData();//初始化聚类的各种数据voidInitCenter();//初始化质心集合voidCopyCenter();//拷贝到质心副本7人工智能大作业voidUpdateCluster();//初始化K

7、个簇集合voidUpdateCluster();//重新计算簇集合intGetIndex(AllData[i],Center);//得到与当前数据最小的质心索引VoidAddToCluster(tindex,AllData[i]);//加入到相应的集合中boolIsEqual(double*center1,double*center2)//判断2数组元素是否相等voidPrint()//打印聚合结果voidfree()//释放申请的空间5.测试及运行结果图1:实验截图1图2:实验截图26.程序源码及注释7人工智能大作业#include#includ

8、e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。