python numpy 对西瓜数据小样进行 k-means 聚类
西瓜数据集,样本数 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 聚类相关推荐
- OpenCV的k - means聚类 -对图片进行颜色量化
OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...
- OpenCV官方文档 理解k - means聚类
理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...
- python numpy矩阵的数据类型转换
在python中,numpy矩阵的数据类型转换需要调用astype(),直接修改dtype是无效的.调用astype返回数据类型修改后的矩阵,但是源数据的类型不会变,需要再对源数据的赋值进行操作才可以 ...
- k means聚类算法_K-Means 聚类算法 20210108
说到聚类,应先理解聚类和分类的区别 聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来. K-Means 聚类算法有很多种 ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,在其中用股票范例讲述Python爬虫.数据分析和机器学习的技术,大家看了我的书,不仅能很快用比较热门的案例学好P ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)(转载)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- 机器学习算法与Python实践之(六)二分k均值聚类
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- k means聚类算法_一文读懂K-means聚类算法
1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...
最新文章
- QoS policy-map class-map
- 如何将本地jar包上传到maven私服中
- 大剑无锋之TCP和UDP区别【面试推荐】
- 安卓通过js与网页的H5页面进行交换
- 注册制后st还有投资价值吗?
- Velocity 语法学习
- python三级联动菜单_2分钟制作智能式联动下拉菜单,轻松搞定重复内容,录入不出错...
- [转载] Java异常处理习题
- fedora15下GNOME3使用笔记
- 宏基电脑安装系统提示acpi错误_电脑常见问题怎么排除 电脑常见问题排除技巧【详解】...
- grub2启动出错(Error11:Unrecognized device string)
- 上传Android library到JitPack
- ios弱网测试_iOS模拟弱网测试
- 吉他的起源与发展史_吉他的由来与发展简史
- OpenLayers学习笔记中级篇(四、地图图标操作)
- 基于小程序制作一个猜拳小游戏
- 黑马主播单场带货千万,抖音直播市场还有哪些新机遇?
- 神经网络模型计算量分析
- 安卓手机连接不上电脑的解决方法 adb devices 找不到设备
- 会声会影2023专业旗舰版新功能介绍
热门文章
- thinkphp表单验证
- 基于OAuth2.0微信网页第三方授权原理
- 腾讯视频客服在哪找 如何联系腾讯视频人工客服2019
- 互联网快讯:小米公益平台正式上线;极米优质投影产品获好评;三星公布三款新型车用芯片
- 开学季学生宿舍竟然限电,学校管理因噎废食?
- linux磁盘分区方法 重新分区方法 新建分区方法
- php中foreach 循环null,php中foreach循环问题
- Elasticsearch 搜索的高级功能学习
- 如何建造一个虚拟帝国?感官世界与人机交互需完美配合
- c语言编译通过无法运行程序,请教:这是一个模拟寒食薛定锷方程的程序,编译通过后但无法运行...