人工智能实验报告.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
《 — 人工智能方向实习—》 实 习 报 告 专业: 计算机科学与技术 班级: 12419013 学号: 姓名: 江苏科技大学计算机学院 2016年 3 月 实验一 数据聚类分析 一、实验目的 编程实现数据聚类的算法。 二、实验内容 k-means聚类算法。 三、实验原理方法和手段 k-means算法接受参数k ;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类 中的对象相似度较高. 四、实验条件 Matlab2014b 五、实验步骤 1) 初始化k个聚类中心。 2) 计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。 3) 计算(2)分类后,k个类别的中心(即求聚类平均距离) 4) 继续执行(2)(3)直到k个聚类中心不再变化(或者数据集所属类别不再变化) 六、实验代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % main.m % k-means algorithm % @author matcloud %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all; load fisheriris; X = [meas(:,3) meas(:,4)]; figure; plot(X(:,1),X(:,2),'ko','MarkerSize',4); title('fisheriris dataset','FontSize',18,'Color','red'); [idx,ctrs] = kmeans(X,3); figure; subplot(1,2,1); plot(X(idx==1,1),X(idx==1,2),'ro','MarkerSize',4); hold on; plot(X(idx==2,1),X(idx==2,2),'go','MarkerSize',4); hold on; plot(X(idx==3,1),X(idx==3,2),'bo','MarkerSize',4); hold on; plot(ctrs(:,1),ctrs(:,2),'kx','MarkerSize',12); title('official kmeans','FontSize',16,'Color','red'); [idx,ctrs] = my_kmeans(X,3); subplot(1,2,2); plot(X(idx==1,1),X(idx==1,2),'ro','MarkerSize',4); hold on; plot(X(idx==2,1),X(idx==2,2),'go','MarkerSize',4); hold on; plot(X(idx==3,1),X(idx==3,2),'bo','MarkerSize',4); hold on; plot(ctrs(:,1),ctrs(:,2),'kx','MarkerSize',12); title('custom kmeans','FontSize',16,'Color','red'); function [idx,ctrs] = my_kmeans(m,k) [row col] = size(m); %init k centroids p = randperm(size(m,1)); for i = 1 : k ctrs(i,:) = m(p(i),:); end idx = zeros(row,1);%idex is pointer of group while 1 d = dist2matrix(m,ctrs); [z,g] = min(d,[],2); if(g == idx) break; else idx = g; end %update ctroids for i = 1 : k v = find(g == i); if v ctrs(i,:) = mean(m(v,:),1); end end end end function [idx,ctrs] = my_kmeans(m,k) [row col] = size(m); %init k centroids p = randperm(size(m,1)); for i = 1 : k ctrs(i,:) = m(p(i),:); end idx = zeros(row,1);%idex is pointer of group while 1 d = dist2matrix(m,ctrs); [z,g] = min(d,[],2); if(g == idx) break; else idx = g; end %update ctroids for i = 在本篇人工智能实验报告中,实习生探讨了数据聚类分析,特别是通过编程实现k-means算法。k-means是一种常用的距离驱动的无监督学习方法,主要用于发现数据集中的结构和模式,将数据对象分组到不同的类别中。该算法的核心思想是通过迭代找到最佳的聚类中心,使得同一聚类内的数据对象具有较高的相似性。 实验的目标是编程实现k-means算法,这有助于提升实习生在机器学习领域的实践能力,尤其是对数据处理和模式识别的理解。实验条件为Matlab2014b,这是一个广泛用于科学研究和工程计算的软件平台,提供了丰富的数学函数库,便于进行数据处理和算法实现。 实验步骤如下: 1. 初始化:随机选择k个数据点作为初始聚类中心。 2. 分配类别:计算所有数据点与k个聚类中心的距离,将每个数据点分配到最近的中心所在的类别。 3. 更新中心:根据当前类别中的所有数据点计算新的聚类中心(即类别内数据的均值)。 4. 迭代检查:重复步骤2和3,直到聚类中心或数据点的类别分配不再发生变化,达到算法收敛。 报告中提供了两个k-means的实现:一个使用了Matlab内置的`kmeans`函数,另一个是实习生自定义的`my_kmeans`函数。通过比较两者的运行结果,可以评估自定义实现的准确性和效率。自定义函数的迭代过程包括计算数据点到聚类中心的距离矩阵,寻找距离最近的中心,并根据新分配的类别更新聚类中心,直至收敛。 在实验代码中,使用了`fisheriris`数据集,这是一个经典的多变量分析数据集,包含了鸢尾花的测量特征,如花萼长度和花瓣长度。通过可视化结果,可以看到数据点被分为了3类(红色、绿色和蓝色),并展示了官方k-means和自定义k-means的聚类效果。 通过这个实验,实习生能够深入理解k-means算法的运作机制,并锻炼了编程实现复杂算法的能力。此外,实验还涉及到了数据预处理、距离计算以及可视化技巧,这些都是数据分析和机器学习领域中的重要技能。对于未来的人工智能和数据科学项目,这些实践经验将非常有价值。
剩余20页未读,继续阅读
- 粉丝: 195
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Matlab实现电压骤降的时域数学模型(源码).rar
- MATLAB实现高斯光束到平顶光束的转变 基于GS算法或者直接计算SLM相位分布
- MicrosoftJETSQL参考手册中文chm版最新版本
- Comsol一维光子晶体能带分析计算,以及拓扑设计与分析 不包含zak phase计算 科学实验
- 西安电子科技大学微机原理实验四:中断机制的研究 - 实验指导与解析
- SQLServer2005教程与基础实训pdf版最新版本
- 透反射相位(GH位移)的计算 COMSOL光子晶体超表面模拟
- 车辆检测16-YOLO(v5至v9)、COCO、Darknet数据集合集.rar
- SQLServer2008安装和配置过程图解最新版本
- 一维光子晶体的zak相位计算 (内含comsol文件和matlab程序) 注意:这个是重复别人文章的结果,方法是lunwen中所提到的
- 西安电子科技大学微机原理实验报告模板
- 激光熔覆熔池匙孔温度场与流场模拟仿真 现成模型,UDF包括高斯旋转体热源、VOF梯度计算、反冲压力、表面张力等
- 2000张瓜果图像数据集(17种类别).rar
- 基于西门子1200的智能停车场,停车场车位控制系统 基干西门子1200的博途 仿真 有软件组态HM画面 PLC选型及10分配表 ,根据需要发其中一个版 实现功能: 假设有一停车场共有20个车位 在
- SQLServer2005数据库系统开发完全手册pdf格式最新版本
- 车辆检测19-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord数据集合集.rar