python实现kmean算法_K-means聚类算法的Python实现,Kmeans
这是I/O
以下是代码:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
def findDistance(x, y):
return np.sqrt(np.sum(np.power(x-y, 2)))
def findPoints(data, k):
m, n = np.shape(data)
points = np.mat(np.zeros((k, n)))
for i in range(n):
min = np.min(data[:, i])
I = float(np.max(data[:, i]) - min)
points[:, i] = min + I * np.random.rand(k, 1)
return points
def kMeans(data, k):
m, n = np.shape(data)
cluster = np.mat(np.zeros((m, 2)))
points = findPoints(data, k)
flag = True
while flag:
flag = False
for i in range(m):
minDistance = np.inf
minIndex = -1
for j in range(k):
distance = findDistance(points[j, :], data[i, :])
if distance < minDistance:
minDistance = distance
minIndex = j
if cluster[i, 0] != minIndex:
flag = True
cluster[i, :] = minIndex, minDistance**2
for p in range(k):
pts = data[np.nonzero(cluster[:, 0].A == p)[0]]
points[p, :] = np.mean(pts, axis=0)
return points, cluster
if __name__ == '__main__':
data = pd.read_csv("E:\\result.csv")
data = pd.DataFrame({'x': data['value'], 'y': data['price']})
data = data.to_numpy()
k = 2
a, b = kMeans(data, k)
fig = plt.figure(figsize=(10, 10), dpi=100)
ax = fig.add_subplot(111)
ax.set_xlabel("$value$")
ax.set_xticks(range(0, 250000, 25000))
ax.set_ylabel("$price$")
ax.set_yticks(range(0, 85000, 5000))
ax.set_title('K-means')
for i in range(k):
pts = data[np.nonzero(b[:, 0].A == i)[0], :]
ax.scatter(np.matrix(data[:, 0]).A[0], np.matrix(data[:, 1]).A[0], marker='o', s=90, color='b', alpha=0.2)
ax.scatter(a[:, 0].flatten().A[0], a[:, 1].flatten().A[0], marker='*', s=900, color='r', alpha=0.9)
plt.show()
END
python实现kmean算法_K-means聚类算法的Python实现,Kmeans相关推荐
- k均值聚类算法考试例题_k means聚类算法实例
所谓聚类问题,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高.其中每个子集叫做一个簇. ...
- k中心点聚类算法伪代码_聚类算法之——K-Means、Canopy、Mini Batch K-Means
K-Means||算法 K-Means||算法是为了解决K-Means++算法缺点而产生的一种算法: 主要思路是改变每次遍历时候的取样规则,并非按照K-Means++算法每次遍历只获取一个样本,而是每 ...
- 聚类算法之层次聚类算法和应用举例
聚类算法之层次聚类算法和应用举例 1.假设有N个待聚类的样本,对于层次聚类来说,步骤: 1.(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度: 2.寻找各个类之间最近 ...
- ML之Clustering之普聚类算法:普聚类算法的相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略
ML之Clustering之普聚类算法:普聚类算法的相关论文.主要思路.关键步骤.代码实现等相关配图之详细攻略 目录 普聚类算法的相关论文 普聚类算法的主要思路 普聚类算法的关键步骤 普聚类算法的代码 ...
- 化学分子 降维算法umap、聚类算法hdbscan和kmeans
参考: https://github.com/iwatobipen/chemo_info/blob/master/chemicalspace2/HDBSCAN_Chemoinfo.ipynb http ...
- python 聚类算法包_Python聚类算法之DBSACN实例分析 python怎么用sklearn包进行聚类
python 怎么可视化聚类的结果 science 发表的聚类算法的python代码 测试数据长什...说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或None值引起的. 解决办法是把 ...
- k means聚类算法_一文读懂K-means聚类算法
1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...
- k means聚类算法_K-Means 聚类算法 20210108
说到聚类,应先理解聚类和分类的区别 聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来. K-Means 聚类算法有很多种 ...
- python图像分割_基于K均值聚类算法的Python图像分割
1个K均值算法 实际上,K-means算法是一种非常简单的算法,与算法思想或特定实现无关. 通过以一定方式测量样本之间的相似度,并迭代更新聚类中心,它属于无监督分类. 当聚类中心不再移动或移动差异小于 ...
- 【聚类算法】常见聚类算法总结
转自:https://blog.csdn.net/u010062386/article/details/82499777 感谢博主 1.常见算法 1.原型聚类 "原型"是指样本空间 ...
最新文章
- MFC libraries are required for this project. Install them from the Visual Studio installer (Individu
- .yaml 文件格式简介
- linux centos7.6.1810安装nfs命令整理
- .NET Core HttpClient源码探究
- rest 验证demo_如何实现REST资源的输入验证
- 2020年中国OTT大屏服务行业研究报告
- sqlserver修改端口号方法
- Android提高显示布局文件的性能,使用include标签重用layouts
- 车牌OCR识别SDK
- 制图折断线_CAD制图规范及技巧总结大全
- PayPal个人高级账户收款有限制和限额吗?
- 如何解决:error: failed to push some refs to
- 第17次Scrum会议(10/29)【欢迎来怼】
- 如何编写Python爬虫
- Echarts 页面多图自适应的解决办法
- 百度违规屏蔽关键词判定标准查询工具
- pytorch用法笔记--不定期更新
- 【游戏建模】Zbrush建模详细教程——维京人
- 电脑硬盘坏了怎么恢复数据?硬盘损坏的原因又是什么?(图文讲解)
- 人教版选修计算机英语,人教版高中英语选修计算机英语NetworksandtheInternet.ppt
热门文章
- php广告任务网源码_THINKPHP仿我爱广告任务网|任务网站源码下载基于PHP+MYSQL的在线广告打码任务网站源码...
- python设置全局变量失败_Python全局变量与global关键字常见错误解决方案
- java线程太多卡顿_性能优化之卡顿延迟
- php抓取aspx_哪些因素会影响蜘蛛抓取页面?
- java中volatile关键字---学习笔记
- Okhttp同步请求源码分析
- director.js实现前端路由
- 第十二章_请求和响应的装饰
- 五、性能监视(2)Windows性能日志
- 【学生信息管理系统】——优化篇(一)