




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、人工智能与机器学习实 验 报 告年级_ xxxx班_专业_xxxxx_ _学号_6315070301XX_姓名_gllh_日期_2018-5-12 _实验五 聚类算法实现一、实验目的1、了解常用聚类算法及其优缺点2、掌握k-means聚类算法对数据进行聚类分析的基本原理和划分方法3、利用k-means聚类算法对已知数据集进行聚类分析实验类型:验证性计划课间:4学时二、实验内容1、利用python的sklearn库函数对给定的数据集进行聚类分析2、分析k-means算法的实现流程3、根据算法描述编程实现,调试运行4、对所给数据集进行验证,得到分析结果三、实验步骤1、k-means算法原理2、k-
2、means算法流程3、k-means算法实现4、对已知数据集进行分析四、实验结果分析1. 利用python的sklearn库函数对给定的数据集进行聚类分析:其中数据集选取iris鸢尾花数据集import numpy as npfrom sklearn.datasets import load_irisiris = load_iris()def dist(x,y): return sum(x*y)/(sum(x*2)*sum(y*2)*0.5def K_means(data=iris.data,k=3,ping=0,maxiter=100): n, m = data.shape centers
3、= data:k,: while ping < maxiter: dis = np.zeros(n,k+1) for i in range(n): for j in range(k): disi,j = dist(datai,:,centersj,:) disi,k = disi,:k.argmax() centers_new = np.zeros(k,m) for i in range(k): index = dis:,k=i centers_newi,: = np.mean(dataindex,:,axis=0) if np.all(centers=centers_new): bre
4、ak centers = centers_new ping += 1 return disif _name_ = '_main_': res = K_means() print(res)(1)、首先求出样本之间的余弦相似度:sum(x*y)/(sum(x*2)*sum(y*2)*0.5(2)、设置k类别数为3,最大迭代次数为100K_means(data=iris.data,k=3,ping=0,maxiter=100):(3)、设置样本个数、属性个数并初始化类中心n, m = data.shapecenters = data:k,: (4)、求各样本至各类中心的距离for i
5、 in range(n): for j in range(k): disi,j = dist(datai,:,centersj,:) disi,k = disi,:k.argmax()(5)、求新类中心:各类样本均值作为新类中心for i in range(k): index = dis:,k=i centers_newi,: = np.mean(dataindex,:,axis=0)实验结果:2. 使用自己的数据集进行聚类分析并进行可视化:# -*- coding: utf-8 -*- import numpy as npimport pandas as pd from sklearn.cl
6、uster import Birch from sklearn.cluster import KMeans from matplotlib import pyplot as pltfrom matplotlib.font_manager import FontPropertiesdf = pd.read_csv("fa.csv",encoding = "utf-8")X = df'height','weight'.valuesclf = KMeans(n_clusters=2) y_pred = clf.fit_predi
7、ct(X) print(clf) print(y_pred) x = n0 for n in X print (x) y = n1 for n in X print (y) plt.scatter(x, y, c=y_pred, marker='o') plt.title("K-means Boy/Girl-height-weight Data") plt.xlabel("Height/cm") plt.ylabel("Weight/kg") plt.legend("Position") plt.s
8、how() 本数据集使用男性女性身高体重数据集,k值为2,就是讲数据聚合为2类,看身高体重分布结果。从此次实验看出,聚类数据集必须可以分类才能使用此算法,否则就会产生如下结果:此数据集为UCI香水数据,无法进行聚类分析五、实验心得通过这次实验,使用K-means算法对数据集进行聚类分析,了解了算法的过程,首先选择K个点作为初始质心,之后进行重复并将每个点指派到最近的质心,形成K个簇后重新计算每个簇的质心直到簇不发生变化或达到最大迭代次数为止,首先我们要直到有多少种分类,选择K个初始质心,其中K是指定的参数,即所期望的簇的个数。这样做的前提是我们已经知道数据集中包含多少个簇,但很多情况下,我们并不知道数据的分布情况,实际上聚类就是我们发现数据分布的一种手段,之后质心的选取也非常重要,选择适当的初始质心是基本kmeans算法的关键,一般是随
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设计制作合同协议书
- 树木养护合同协议书
- 打钻孔合同协议书
- 保姆合同终止协议书
- 转让服装合同协议书
- 理发入股合同协议书
- 公房拆除合同协议书
- 图书出版合同协议书
- 工具租用合同协议书
- 种树合同协议书挖洞
- (三模)合肥市2025届高三年级5月教学质量检测英语试卷(含答案)
- 中国网络广告行业十四五发展分析及投资前景与战略规划研究报告2025-2028版
- 2024-2025学年福建省泉州市晋江市安海中学等五校七年级(下)期中数学试卷
- 2025-2030中国建筑智能化工程行业市场发展分析及发展趋势前景研究报告
- 《工程建设标准强制性条文电力工程部分2023年版》
- HACCP计划年度评审报告
- 黑布林英语A Test for Jess获奖课件
- 石方爆破及安全施工工艺流程图
- 常见食物的性味归经附表
- NB_T 10393-2020《海上风电场工程施工安全技术规范》_(高清最新)
- 市场部经理年终总结PPT模板
评论
0/150
提交评论