机器学习聚类算法实现.doc

上传人:夺命阿水 文档编号:13143 上传时间:2022-06-27 格式:DOC 页数:8 大小:609.21KB
返回 下载 相关 举报
机器学习聚类算法实现.doc_第1页
第1页 / 共8页
机器学习聚类算法实现.doc_第2页
第2页 / 共8页
机器学习聚类算法实现.doc_第3页
第3页 / 共8页
机器学习聚类算法实现.doc_第4页
第4页 / 共8页
机器学习聚类算法实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《机器学习聚类算法实现.doc》由会员分享,可在线阅读,更多相关《机器学习聚类算法实现.doc(8页珍藏版)》请在课桌文档上搜索。

1、word人工智能与机器学习实验报告实验五 聚类算法实现一、实验目的1、了解常用聚类算法与其优缺点2、掌握k-means聚类算法对数据进展聚类分析的根本原理和划分方法3、利用k-means聚类算法对数据集进展聚类分析实验类型:验证性计划课间:4学时二、实验容1、利用python的sklearn库函数对给定的数据集进展聚类分析2、分析k-means算法的实现流程3、根据算法描述编程实现,调试运行4、对所给数据集进展验证,得到分析结果三、实验步骤1、k-means算法原理2、k-means算法流程3、k-means算法实现4、对数据集进展分析四、实验结果分析1. 利用python的sklearn库函

2、数对给定的数据集进展聚类分析:其中数据集选取iris鸢尾花数据集import numpy as npfrom sklearn.datasets import load_irisiris = load_iris()def dist(x,y):def K_means(data=iris.data,k=3,ping=0,maxiter=100): n, m = data.shape centers = data:k,: while ping maxiter: dis = np.zeros(n,k+1) for i in range(n): for j in range(k): disi,j = di

3、st(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): break centers = centers_new ping += 1 return disif _name_ = _main_: res = K_means() print(res)1、首先求出样本之间的余弦相似度

4、:2、设置k类别数为3,最大迭代次数为100K_means(data=iris.data,k=3,ping=0,maxiter=100):3、设置样本个数、属性个数并初始化类中心centers = data:k,:4、求各样本至各类中心的距离for i 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(da

5、taindex,:,axis=0)实验结果:2.使用自己的数据集进展聚类分析并进展可视化:# -*- coding: utf-8 -*- import numpy as npimport pandas as pd from sklearn.cluster 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

6、-8)X = dfheight,weight.valuesclf = KMeans(n_clusters=2) y_pred = clf.fit_predict(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.le

7、gend(Position) plt.show() 本数据集使用男性女性身高体重数据集,k值为2,就是讲数据聚合为2类,看身高体重分布结果。从此次实验看出,聚类数据集必须可以分类才能使用此算法,否如此就会产生如下结果:此数据集为UCI香水数据,无法进展聚类分析五、实验心得通过这次实验,使用K-means算法对数据集进展聚类分析,了解了算法的过程,首先选择K个点作为初始质心,之后进展重复并将每个点指派到最近的质心,形成K个簇后重新计算每个簇的质心直到簇不发生变化或达到最大迭代次数为止,首先我们要直到有多少种分类,选择K个初始质心,其中K是指定的参数,即所期望的簇的个数。这样做的前提是我们已经知道数据集中包含多少个簇,但很多情况下,我们并不知道数据的分布情况,实际上聚类就是我们发现数据分布的一种手段,之后质心的选取也非常重要,选择适当的初始质心是根本kmeans算法的关键,一般是随机的选取初始质心,通过这次实验,实现了调用sklearn进展数据集的聚类算法,对以后工作学习都有所帮助。六、须知事项1、距离函数的选择2、评价函数的计算3、噪声数据的处理4、数据集仍然可以选取分类算法所用数据集手写体数字,雉尾花。或者自带的其他聚类数据集8 / 8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号