西瓜数据集,样本数 30,特征维度 2,聚类选择 3 类,未特殊指定距离计算方法。

import numpy as np
import time'''
data = [[0.697, 0.460], [0.774, 0.376], [0.634, 0.264], [0.608, 0.318], [0.556, 0.215],[0.403, 0.237], [0.481, 0.149], [0.437, 0.211], [0.666, 0.091], [0.243, 0.267],[0.245, 0.057], [0.343, 0.099], [0.639, 0.161], [0.657, 0.198], [0.360, 0.370],[0.593, 0.042], [0.719, 0.103], [0.359, 0.188], [0.339, 0.241], [0.282, 0.257],[0.748, 0.232], [0.714, 0.346], [0.483, 0.312], [0.478, 0.437], [0.525, 0.369],[0.751, 0.489], [0.532, 0.472], [0.473, 0.376], [0.725, 0.445], [0.446, 0.459]]
idxs = [5, 11, 23]
clusters = [[0.63255556, 0.16166667], [0.33455556, 0.21411111], [0.6005, 0.40491667]]
nearest = [2, 2, 0, 2, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 2,2, 2, 2, 2, 2, 2, 2, 2]
'''class KMeans:def __init__(self):returndef kmeans(self, data, k):# input: data and k# output: clusters and nearestnp.random.seed()n, m = len(data), len(data[0])  # n * m# initial clusters and nearestclusters = np.empty((k, m))nearest = np.empty((n))    # n# idxs = np.random.choice(n, k)idxs = [5, 11, 23]clusters = data[idxs]   # k * m# expand data and cluster to avoid for-loopdata_expd = np.repeat(np.expand_dims(data, axis=1), k, axis=1)   # n * k * mwhile True:clusters_expd = np.repeat(np.expand_dims(clusters, axis=0), n, axis=0)   # n * k * m# cal dist between each sample and each clusterdistances = np.sqrt(np.sum(np.power(data_expd - clusters_expd, 2), axis=2))   # n * k# cal cur nearest and cmp the last and the curnew_nearest = np.argmin(distances, axis=1)if (new_nearest == nearest).all():breakelse:# if need update, updata the clusters and the nearestnearest = new_nearestfor i in range(k):clusters[i] = np.mean(data[nearest == i], axis=0)return clusters, nearestdata = [[0.697, 0.460], [0.774, 0.376], [0.634, 0.264], [0.608, 0.318], [0.556, 0.215],[0.403, 0.237], [0.481, 0.149], [0.437, 0.211], [0.666, 0.091], [0.243, 0.267],[0.245, 0.057], [0.343, 0.099], [0.639, 0.161], [0.657, 0.198], [0.360, 0.370],[0.593, 0.042], [0.719, 0.103], [0.359, 0.188], [0.339, 0.241], [0.282, 0.257],[0.748, 0.232], [0.714, 0.346], [0.483, 0.312], [0.478, 0.437], [0.525, 0.369],[0.751, 0.489], [0.532, 0.472], [0.473, 0.376], [0.725, 0.445], [0.446, 0.459]]
data = np.array(data)k = 3
t1 = time.time()
KM = KMeans()
print(KM.kmeans(data, 3))
t2 = time.time()
print(t2 - t1)

python numpy 对西瓜数据小样进行 k-means 聚类相关推荐

  1. OpenCV的k - means聚类 -对图片进行颜色量化

    OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...

  2. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  3. python numpy矩阵的数据类型转换

    在python中,numpy矩阵的数据类型转换需要调用astype(),直接修改dtype是无效的.调用astype返回数据类型修改后的矩阵,但是源数据的类型不会变,需要再对源数据的赋值进行操作才可以 ...

  4. k means聚类算法_K-Means 聚类算法 20210108

    说到聚类,应先理解聚类和分类的区别 聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来. K-Means 聚类算法有很多种 ...

  5. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  6. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,在其中用股票范例讲述Python爬虫.数据分析和机器学习的技术,大家看了我的书,不仅能很快用比较热门的案例学好P ...

  7. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)(转载)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  8. 机器学习算法与Python实践之(六)二分k均值聚类

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  9. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

最新文章

  1. QoS policy-map class-map
  2. 如何将本地jar包上传到maven私服中
  3. 大剑无锋之TCP和UDP区别【面试推荐】
  4. 安卓通过js与网页的H5页面进行交换
  5. 注册制后st还有投资价值吗?
  6. Velocity 语法学习
  7. python三级联动菜单_2分钟制作智能式联动下拉菜单,轻松搞定重复内容,录入不出错...
  8. [转载] Java异常处理习题
  9. fedora15下GNOME3使用笔记
  10. 宏基电脑安装系统提示acpi错误_电脑常见问题怎么排除 电脑常见问题排除技巧【详解】...
  11. grub2启动出错(Error11:Unrecognized device string)
  12. 上传Android library到JitPack
  13. ios弱网测试_iOS模拟弱网测试
  14. 吉他的起源与发展史_吉他的由来与发展简史
  15. OpenLayers学习笔记中级篇(四、地图图标操作)
  16. 基于小程序制作一个猜拳小游戏
  17. 黑马主播单场带货千万,抖音直播市场还有哪些新机遇?
  18. 神经网络模型计算量分析
  19. 安卓手机连接不上电脑的解决方法 adb devices 找不到设备
  20. 会声会影2023专业旗舰版新功能介绍

热门文章

  1. thinkphp表单验证
  2. 基于OAuth2.0微信网页第三方授权原理
  3. 腾讯视频客服在哪找 如何联系腾讯视频人工客服2019
  4. 互联网快讯:小米公益平台正式上线;极米优质投影产品获好评;三星公布三款新型车用芯片
  5. 开学季学生宿舍竟然限电,学校管理因噎废食?
  6. linux磁盘分区方法 重新分区方法 新建分区方法
  7. php中foreach 循环null,php中foreach循环问题
  8. Elasticsearch 搜索的高级功能学习
  9. 如何建造一个虚拟帝国?感官世界与人机交互需完美配合
  10. c语言编译通过无法运行程序,请教:这是一个模拟寒食薛定锷方程的程序,编译通过后但无法运行...