编码实现k均值算法,设置三组不同的k值、三组不同的初始中心点,在西瓜数据集4.0上进行实验比较,并讨论什么样的初始中心有利于取得好结果。

一、已经给定部分代码,补充完整的代码,需要补充代码的地方已经用红色字体标注,包括:
(1)#补充随机初始化中心点的代码
(2)补充计算数据点到中心点的距离,并判断该数据点所属中心点的代码;
(3)#补充k均值代码;
二、将补充完整的代码提交,并提交实验结果;(也可以自己重写这部分的代码提交)

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import scipy.iodef loaddata():data = np.loadtxt('watermelon_4.txt',delimiter=',')return dataX = loaddata()
plt.scatter(X[:, 0], X[:, 1], s=20)
#随机初始化中心点
def kMeansInitCentroids(X, k):#从X的数据中随机取k个作为中心点
# 补充随机初始化中心点的代码
index = np.random.randint(0,len(X)-1,k)
return X[index]
#计算数据点到中心点的距离,并判断该数据点属于哪个中心点
def findClosestCentroids(X, centroids):#idx中数据表明对应X的数据是属于哪一个中心点的idx = np.zeros(len(X)).reshape( X.shape[0],-1)for i in range(len(X)):#补充计算数据点到中心点的距离,并判断该数据点所属中心点的代码
minDistance = float('inf');index =0for k in range (len(centroids)):distance = np.sum(np.power(X[i] - centroids[k],2))if (distance<minDistance):minDistance = distance index = kidx[i] = indexreturn idx
#重新计算中心点位置
def computeCentroids(X, idx):k = set(np.ravel(idx).tolist()) #找到所有聚类中心索引k = list(k)
centroids = np.ndarray((len(k),X.shape[1]))
for i in range(len(k)):
#选择数据X中类别为k[i]的数据data = X[np.where(idx==k[i])[0]]#重新计算聚类中心centroids[i] = np.sum(data,axis=0)/len(data)
return centroidsdef k_means(X, k, max_iters):initial_centroids = kMeansInitCentroids(X,k)
#补充k均值代码
for i in range(max_iters):if i ==0:centroids = initial_centroidsidx = findClosestCentroids(X,centroids)centroids=computeCentroids(X,idx)return idx,centroids
idx,centroids = k_means(X, 3, 8)
print(idx)
print(centroids)cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])
plt.scatter(X[:, 0], X[:, 1], c=np.ravel(idx), cmap=cm_dark, s=20)
plt.scatter(centroids[:, 0], centroids[:, 1], c=np.arange(len(centroids)), cmap=cm_dark, marker='*', s=500)
plt.show()

机器学习与数据挖掘 编程实现k均值算法相关推荐

  1. 机器学习《西瓜书》9.4解答——k-means算法:编程实现k均值算法,设置三组不同的k值、三组不同初始中心点,在西瓜数据集4.0上进行实验比较,并讨论什么样的初始中心有助于得到好结果。

    1.运行结果:(注:图中方块标注的点为随机选取的初始样本点) k=2时: 本次选取的2个初始向量为[[0.243, 0.267], [0.719, 0.103]] 共进行61轮 共耗时0.10s k= ...

  2. k均值算法python实现(吴恩达机器学习作业)

    k均值算法python实现(吴恩达机器学习作业) 题目要求 数据集 读取mat文件 K-means 实现 结果 问题 题目要求 采用K均值算法对样本进行聚类. 编写K均值算法源代码,对ex7data2 ...

  3. 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结

    文章目录 一.总结K均值算法步骤 二.如何合理选择K值? 三.K均值算法的优缺点是什么? 四.如何对K均值算法进行调优? 五.EM算法解决什么问题? 六.EM算法流程是什么? 六.EM算法能保证收敛嘛 ...

  4. 数据挖掘--“聚类”详解、K-means、K-平均值算法、K均值算法

    一. 什么是聚类 二. 聚类步骤 三. 聚类算法有哪些 1 层次聚类算法 2 划分聚类算法 3 基于密度的聚类算法 4 基于网格的聚类算法 5 基于模型的聚类算法 一. 什么是聚类? 物以类聚,人以群 ...

  5. 机器学习第七章之K近邻算法

    K近邻算法(了解) 7.1 K近邻算法 7.1.1 K近邻算法的原理介绍 7.1.2 K近邻算法的计算步骤及代码实现 7.2 数据预处理之数据归一化 7.2.1 min-max标准化 7.2.2 Z- ...

  6. k均值算法原理详细讲解以及matlab代码实现

    有研究生物电信号处理和机器学习的欢迎加我qq429500506共同交流学习进步. 最近更新文章的频率太低了,主要原因是不想为了发文章而发文章,想潜心研究,写好文章,顺便想说一句开源万岁,最近一个月虽然 ...

  7. k-modes算法mysql_第十一章 K-Means(K均值)算法模型实现(中)

    python2 代码实现: from numpy import * import numpy def loadDataSet(fileName): #general function to parse ...

  8. k均值算法 二分k均值算法_如何获得K均值算法面试问题

    k均值算法 二分k均值算法 数据科学访谈 (Data Science Interviews) KMeans is one of the most common and important cluste ...

  9. k均值算法 二分k均值算法_使用K均值对加勒比珊瑚礁进行分类

    k均值算法 二分k均值算法 Have you ever seen a Caribbean reef? Well if you haven't, prepare yourself. 您见过加勒比礁吗? ...

  10. python图片压缩算法_使用K均值算法进行图片压缩

    K均值算法 上一期介绍了机器学习中的监督式学习,并用了离散回归与神经网络模型算法来解决手写数字的识别问题.今天我们介绍一种机器学习中的非监督式学习算法--K均值算法. 所谓非监督式学习,是一种与监督式 ...

最新文章

  1. 碰碰车司机教你Linux下使用nmon分析系统性能
  2. Eclipse Code Review(代码审查)工具介绍
  3. 阿里云 centos ssh key 客户端 无密码登录 ssh 登录
  4. MYSQL快速导入大量数据
  5. 小汤学编程之JavaEE学习day09——Mybatis
  6. 工具 转_好用的语音转文字工具,总有一款适合你!
  7. 5款Mac必备的Safari扩展
  8. mysql慢查询优化
  9. TIBCO Jaspersoft 使用教程+JasperReport 生成PDF记录
  10. 2022-09-29 C++并发编程(二十八)
  11. linux中.sh文件是什么?怎么执行?
  12. 随身wifi挑选要注意哪些问题才能避免上当
  13. 外业调查工具助手,照片采集、精准定位、导航、地图查看
  14. iOS印象笔记添加到Siri捷径,怎么实现的?
  15. linux的网络管理,Linux之网络管理
  16. 新手做电商直播带货怎么和快递合作谈价格
  17. 03前端第三章Javascript
  18. 白月黑羽教python之selenium:课后练习作业二
  19. Java接口与类之间继承,多态的练习,文字游戏,
  20. python编程:从入门到实践(第二版) 练习8-3

热门文章

  1. java根据地址解析省市区信息
  2. 3d打印英语文献_3D打印模型在腹腔镜肝胆微创手术术前培训中的应用
  3. Java代理模式实现与原理详解(二)
  4. Java selenium 设置代理
  5. excel计算机课程表,Excel居然能做这么漂亮的课程表!(内赠Excel模板)
  6. 【钢结构·技术】国内经典的钢结构建筑BIM应用
  7. STM32H7定时器输入捕获实现电容触摸按键
  8. 计算机软件考试初级什么好考,初级程序员好考吗
  9. java游戏繁体字名字_游戏繁体字名字
  10. STM32单片机远程升级