python实现k均值算法示例(k均值聚类算法)


Posted in Python onMarch 16, 2014

简单实现平面的点K均值分析,使用欧几里得距离,并用pylab展示。

import pylab as pl
#calc Euclid squire
def calc_e_squire(a, b):
    return (a[0]- b[0]) ** 2 + (a[1] - b[1]) **2
#init the 20 point
a = [2,4,3,6,7,8,2,3,5,6,12,10,15,16,11,10,19,17,16,13]
b = [5,6,1,4,2,4,3,1,7,9,16,11,19,12,15,14,11,14,11,19]
#define two k_value
k1 = [6,3]
k2 = [6,1]
#defint tow cluster
sse_k1 = []
sse_k2 = []
while True:
    sse_k1 = []
    sse_k2 = []
    for i in range(20):
        e_squire1 = calc_e_squire(k1, [a[i], b[i]])
        e_squire2 = calc_e_squire(k2, [a[i], b[i]])
        if (e_squire1 <= e_squire2):
            sse_k1.append(i)
        else:
            sse_k2.append(i)
    #change k_value
    k1_x = sum([a[i] for i in sse_k1]) / len(sse_k1)
    k1_y = sum([b[i] for i in sse_k1]) / len(sse_k1)
    k2_x = sum([a[i] for i in sse_k2]) / len(sse_k2)
    k2_y = sum([b[i] for i in sse_k2]) / len(sse_k2)
    if k1 != [k1_x, k1_y] or k2 != [k2_x, k2_y]:
        k1 = [k1_x, k1_y]
        k2 = [k2_x, k2_y]
    else:
        break
kv1_x = [a[i] for i in sse_k1]
kv1_y = [b[i] for i in sse_k1]
kv2_x = [a[i] for i in sse_k2]
kv2_y = [b[i] for i in sse_k2]
pl.plot(kv1_x, kv1_y, 'o')
pl.plot(kv2_x, kv2_y, 'or')
pl.xlim(1, 20)
pl.ylim(1, 20)
pl.show()
Python 相关文章推荐
Python中删除文件的程序代码
Mar 13 Python
跟老齐学Python之有点简约的元组
Sep 24 Python
Python编码爬坑指南(必看)
Jun 10 Python
CentOS6.5设置Django开发环境
Oct 13 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
python 执行shell命令并将结果保存的实例
May 11 Python
pybind11在Windows下的使用教程
Jul 04 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
pycharm的python_stubs问题
Apr 08 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 Python
深入理解Pytorch微调torchvision模型
Nov 11 Python
python实现保存网页到本地示例
Mar 16 #Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 #Python
Python使用代理抓取网站图片(多线程)
Mar 14 #Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 #Python
Python subprocess模块学习总结
Mar 13 #Python
用Python和MD5实现网站挂马检测程序
Mar 13 #Python
python操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 #Python
You might like
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
javascript globalStorage类代码
2009/06/04 Javascript
js表格分页实现代码
2009/09/18 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
详解javascript函数的参数
2015/11/10 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python如何调用JS文件中的函数
2019/08/16 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python 如何设置守护进程
2020/10/29 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
老师自我鉴定范文
2013/12/25 职场文书
会务接待方案
2014/02/27 职场文书
婚礼主持词开场白
2014/03/13 职场文书
高中学校对照检查材料
2014/08/31 职场文书
殡葬服务心得体会
2014/09/11 职场文书
处级干部考察材料
2014/12/24 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
升职自荐书
2019/05/09 职场文书
python 模块重载的五种方法
2021/04/24 Python
手写实现JS中的new
2021/11/07 Javascript