资源简介
python界面GUI实现k-means聚类算法,基于tkinter的界面简单代码开发。k-means算法是自己写的,不是调用的库函数。程序最后可以实现,随机生成样本点,设置聚类中心数,区分颜色显示聚类结果,无限次迭代,退出等。
代码片段和文件信息
import numpy as np
import matplotlib.pyplot as plt
import tkinter
from tkinter import ttk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg NavigationToolbar2TkAgg
‘‘‘欧式距离‘‘‘
def ecludDist(x y):
return np.sqrt(sum(np.square(np.array(x) - np.array(y))))
‘‘‘曼哈顿距离‘‘‘
def manhattanDist(x y):
return np.sum(np.abs(x - y))
‘‘‘夹角余弦‘‘‘
def cos(x y):
return np.dot(x y)/(np.linalg.norm(x) * np.linalg.norm(y))
‘‘‘计算簇的均值点‘‘‘
def clusterMean(dataset):
return sum(np.array(dataset)) / len(dataset)
‘‘‘生成随机均值点‘‘‘
def randCenter(dataset k):
temp = []
while len(temp) < k:
index = np.random.randint(0 len(dataset)-1)
if index not in temp:
temp.append(index)
return np.array([dataset[i] for i in temp])
‘‘‘以数据集的前k个点为均值点‘‘‘
def orderCenter(dataset k):
return np.array([dataset[i] for i in range(k)])
def quit():
“““点击退出按钮时调用这个函数“““
root.quit() # 结束主循环
root.destroy() # 销毁窗口
‘‘‘聚类‘‘‘
def kMeans(dataset dist center k):
global flagfa
#all_kinds用于存放中间计算结果
all_kinds = []
for _ in range(k):
temp = []
all_kinds.append(temp)
#计算每个点到各均值点的距离
for i in dataset:
temp = []
for j in center:
temp.append(dist(i j))
all_kinds[temp.index(min(temp))].append(i)
#打印中间结果
for i in range(k):
print(‘第‘+str(i)+‘组:‘ all_kinds[i] end=‘\n‘)
flag += 1
print(‘************************迭代‘+str(flag)+‘次***************************‘)
#更新均值点
center_ = np.array([clusterMean(i) for i in all_kinds])
if (center_ == center).all():
print(‘结束‘)
#f = plt.figure(figsize=(54)dpi=100)
#a = f.add_subplot(111) # 添加子图:1行1列第1个
for i in range(k):
print(‘第‘+str(i)+‘组均值点:‘ center_[i] end=‘\n‘)
a.scatter([j[0] for j in all_kinds[i]] [j[1] for j in all_kinds[i]] marker=‘*‘)
a.grid()
plt.show()
canvas.draw
相关资源
- python调用opencv实现人脸识别的简单D
- python版flappybird源码
- 简明Python教程.pdf
- Python的入门代码银行管理系统
- Python科学计算 张若愚 第二版-书及全
- Python实现Word批注转成脚注
- 商品管理系统python
- Honeywell树莓派读取扫枪扫码数据
- Tkinter
- Python 数据库编程入门教程
- 基于PCA的故障检测Python代码
- 根据epsg代号进行坐标的批量投影转换
- 基于python的图书管理系统
- Python操作Mysql教程手册高清完整PDF版
- pthon 高斯拟合
- python 黑白棋
- Python 获取USB摄像头图像,并二值化
- Python WxPython开源扫雷游戏PyMine新版1
- 人脸检测+保存图片
- pycrypto-2.6.1-cp36-cp36m-win_amd64.whl
- 用python实现一个百度百科的爬虫工具
- Python 的PIL库,包含freetype
- alpha_shape.zip
- python人脸追踪
- 鱼c小甲鱼零基础学python全套视频和课
- PyQwt-5.2.1-cp37-cp37m-win_amd64.whl
- 房价预测的BP神经网络实现_python代码
- Python3.x+Pyqt5实现主窗体与子窗体相互
- Python实现动物识别产生式系统
- py2exe for 2.764位
评论
共有 条评论