kmeans 具体应用基站分配和Python代码
KMeans聚类算法,简短易懂的python代码 - 知乎
代码是抄的知乎
import numpy as np
import random
import matplotlib.pyplot as plt def distance(point1, point2): # 计算距离(欧几里得距离)return np.sqrt(np.sum((point1 - point2) ** 2))def k_means(data, k, max_iter=10000):centers = {} # 初始聚类中心# 初始化,随机选k个样本作为初始聚类中心。 random.sample(): 随机不重复抽取k个值n_data = data.shape[0] # 样本个数for idx, i in enumerate(random.sample(range(n_data), k)):# idx取值范围[0, k-1],代表第几个聚类中心; data[i]为随机选取的样本作为聚类中心centers[idx] = data[i] # 开始迭代for i in range(max_iter): # 迭代次数print("开始第{}次迭代".format(i+1))clusters = {} # 聚类结果,聚类中心的索引idx -> [样本集合]for j in range(k): # 初始化为空列表clusters[j] = []for sample in data: # 遍历每个样本distances = [] # 计算该样本到每个聚类中心的距离 (只会有k个元素)for c in centers: # 遍历每个聚类中心# 添加该样本点到聚类中心的距离distances.append(distance(sample, centers[c])) idx = np.argmin(distances) # 最小距离的索引clusters[idx].append(sample) # 将该样本添加到第idx个聚类中心pre_centers = centers.copy() # 记录之前的聚类中心点for c in clusters.keys():# 重新计算中心点(计算该聚类中心的所有样本的均值)centers[c] = np.mean(clusters[c], axis=0)is_convergent = Truefor c in centers:if distance(pre_centers[c], centers[c]) > 1e-8: # 中心点是否变化is_convergent = Falsebreakif is_convergent == True: # 如果新旧聚类中心不变,则迭代停止breakreturn centers, clustersdef predict(p_data, centers): # 预测新样本点所在的类# 计算p_data 到每个聚类中心的距离,然后返回距离最小所在的聚类。distances = [distance(p_data, centers[c]) for c in centers] return np.argmin(distances)x=np.random.randint(0,high=10,size=(200,2))
centers,clusters = k_means(x,3)
print (centers)for center in centers:plt.scatter(centers[center][0],centers[center][1],marker='*',s=150)colors = ['r','b','y','m','c','g']print(clusters)
for c in clusters:for p in clusters[c]:plt.scatter(p[0],p[1],c=colors[c])plt.show()
kmeans 具体应用基站分配和Python代码相关推荐
- KMeans算法实现步骤介绍及Python代码
文章目录 一.KMeans算法的步骤 二.KMeans实现过程中需要注意的地方 1.初始聚类中心的确定 2. 常用的距离度量 3. 聚类效果的衡量 SSE 4.迭代结束条件 5.空簇的处理 三.结果展 ...
- 聚类 python 代码_不足 20 行 Python 代码,高效实现 k-means 均值聚类算法
下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法-1.jpg (143.81 KB, ...
- k-means算法详解及python代码
K-means算法原理 K-means聚类属于原型聚类(基于原型的聚类,prototype-based clustering).原型聚类算法假设聚类结构能够通过一组原型进行刻画,在现实聚类任务中极为常 ...
- kmeans算法详解和python代码实现
kmeans算法详解和python代码实现 kmeans算法 无监督学习和监督学习 监督学习: 是通过已知类别的样本分类器的参数,来达到所要求性能的过程 简单来说,就是让计算机去学习我们已经创建好了的 ...
- 科研初体验之Linux服务器的入门使用,关于分配了Linux账号之后怎么用,以及怎么利用Linux服务器来跑我们的python代码
前情提要 如果有人看了我之前发的乱七八糟的博客的话,应该就能了解到,我之前是计算机专业大三的学生,好不容易get到了保研的名额,前段时间就一直在操练LeetCode,到处报夏令营啊,预推免什么的,最后 ...
- 【机器学习】一文读懂层次聚类(Python代码)
本篇和大家介绍下层次聚类,先通过一个简单的例子介绍它的基本理论,然后再用一个实战案例Python代码实现聚类效果. 首先要说,聚类属于机器学习的无监督学习,而且也分很多种方法,比如大家熟知的有K-me ...
- 一文读懂层次聚类(Python代码)
本篇想和大家介绍下层次聚类,先通过一个简单的例子介绍它的基本理论,然后再用一个实战案例Python代码实现聚类效果. 首先要说,聚类属于机器学习的无监督学习,而且也分很多种方法,比如大家熟知的有K-m ...
- knn算法python代码_K-最近邻分类算法(KNN)及python实现
一.引入 问题:确定绿色圆是属于红色三角形.还是蓝色正方形? KNN的思想: 从上图中我们可以看到,图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆 ...
- python必备基础代码-机器学习算法基础(使用Python代码)
介绍 谷歌的自动驾驶汽车和机器人受到了很多媒体的关注,但该公司真正的未来是在机器学习领域,这种技术能使计算机变得更聪明,更个性化.-Eric Schmidt(Google董事长) 我们可能生活在人类历 ...
最新文章
- 【Python】有道翻译的爬虫实现(前篇)
- oracle部署部分整理
- docker配置国内镜像源
- ORACLE普通表转换成分区表
- 九江学院计算机主任黄冬久,陈春生副校长到实验中间调研引导工作
- Python入门100题 | 第070题
- prometheus接入mysqld_exporter
- 从NBear到ADO.NET Entity Framework让我迷惑了
- 一行代码让你的python运行速度提高100倍
- Jupyter中打印所有结果的解决办法
- java字符串排序_对字符串排序持一种宽容的心态
- vue中v-html指令的使用之Vue知识点归纳(三)
- werkzeug serving.run_simple
- 动手学深度学习Pytorch Task03
- web项目搜索框智能提示
- SOA渐行渐近-怎样给IT系统一个新视角?
- php中简单ubb案例,PHP中开发自己的UBB代码
- 改变你思维模式的书单
- 香港 三星 android6.0,【极光ROM】-【三星NOTE20高通全系列(国行/港版/台版/韩版/美版) N98XX】-【V6.0 Android-R-UC1】...
- instant-ngp