2019独角兽企业重金招聘Python工程师标准>>>

K-means clustering aims to partition the samples into k sets so as to miniize the sum of distances between each pointer to the K center
The algorithm proceeds by iterating two steps: cluster assignment step and center update step, until assignments no longer change.

from __future__ import division
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
%matplotlib inlinedata = load_iris()
X = data.data
y = data.targetclass myKMean:def compute_centers(self, X, predict, n_clusters):centers = []for c in range(n_clusters):centers.append(np.mean(X[np.where(predict == c)], axis=0))return np.array(centers)def compute_cluster(self, X, centers):predict = []for x in X:distances = [ np.sqrt(np.sum((x-c)**2)) for c in centers]predict.append(np.argmin(distances))return np.array(predict)def fit(self, X, n_clusters):predict = np.random.randint(n_clusters, size=X.shape[0])while True:self.centers = self.compute_centers(X, predict, n_clusters)p = self.compute_cluster(X, self.centers)if np.count_nonzero(predict - p) == 0:breakelse:predict = pdef predict(self, X):return self.compute_cluster(X, self.centers)km = myKMean()
km.fit(X, len(np.unique(y)))for i in range(data.target_names.shape[0]):Xi = X[np.where(y == i)]plt.scatter(Xi[:,0], Xi[:,1])plt.scatter(km.centers[:,0], km.centers[:,1], marker='x')

转载于:https://my.oschina.net/airxiechao/blog/862755

2017年2月18日 K-means相关推荐

  1. 神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras 300 用我

    神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras / 300 编辑 删除 ...

  2. 2017年8月18日内蒙乌兰察布火山草原之旅

    2017年8月18日,上午在小汤山检查完胎压走G6京藏高速前往乌兰察布,下午2点在乌兰察布吃完饭后走G208前往乌兰哈达火山公园,下午4点半到达3号火山北炼丹炉,沿步行栈道爬到山顶,山顶是一个大坑.转 ...

  3. 2017年2月18日 星期六 --出埃及记 Exodus 23:8

    2017年2月18日 星期六 --出埃及记 Exodus 23:8 "Do not accept a bribe, for a bribe blinds those who see and ...

  4. 2017年3月18日奇虎360 笔试真题(3个编程题)

    360笔试的编程题有3个,前面2个我都提交并AC了,最后一个刚刚写完准备提交然而笔试刚刚结束,实在有些可惜.后来在赛码网提交了,发现也是AC的. 本文中题目来源:赛码网,代码来源:笔试中写的原代码. ...

  5. 2017年9月18日

    JavaScript基础 注释语法://单行注释 /*注释内容*/多行注释 输出语句:alert(信息)--弹出信息 confirm(信息)可以弹出一个可以与用户交互的对话框 prompt(信息)弹出 ...

  6. 2017年10月18日普及组 文件名排序

    程序: var l,n,i,j,p:longint; a,b,c,s:array[1..1000]of string; w:string; beginreadln(n);for i:=1 to n d ...

  7. 2017年10月18日普及组 面积最大

    程序: var r,i,j,a,b:longint; ti,tj,best,t:real; beginreadln(r);best:=0;for i:=1 to 2*r-1 dofor j:=1 to ...

  8. eNSP使用介绍,VRP基础配置(2017年12月18日 17:43:53)

    pwd:查看所处路径 Idx:索引 drw:d--direc 代表这不是一个文件,是一个子文件夹    没有d的就是个具体的文件.r:可读  w:可以修改 直接dir只能查看所在的目录的文件.看其他的 ...

  9. 活动 | 2017中国AI英雄风云榜颁奖典礼将于12月18日在北京举行

    ▼ 大型年度AI人物评选--2017中国AI英雄风云榜已于12月4日在乌镇张榜,12月18日在北京国贸三期举行颁奖典礼. 榜单评选出年度技术创新人物TOP 10:商业创新人物TOP 10,获取完整榜单 ...

最新文章

  1. 第一周Access课总结
  2. leetcode算法题--可以形成最大正方形的矩形数目
  3. spring中基础核心接口总结
  4. js rsa验签_js rsa sign使用笔记(加密,解密,签名,验签)
  5. boost::mp11::mp_with_index相关用法的测试程序
  6. 同事给我埋了个坑:Insert into select语句把生产服务器炸了
  7. SAP Spartacus 3.3.0 版本服务器端渲染的优化
  8. mmap父子进程间通信
  9. spring mvc学习(1):spring jar包
  10. matlab绘制三维图形
  11. 信息学奥赛一本通(1209:分数求和)
  12. python常用单词有多少_Python常用单词
  13. SVN server安装步骤
  14. 阿里云购买云服务器流程及注意事项(新用户必看图文教程)
  15. 求任意两圆相交的面积(不限程序设计语言版本)
  16. java 银行存取款_使用JAVA编写一个简单的银行存取款程序
  17. 基于MATLAB卡尔曼滤波器实现动态人物的跟踪检测
  18. 如何解决WIN10处于通知模式的问题?
  19. P2P-资金存管系统充值业务流程
  20. 黑夜给了我黑色的眼睛,我却用它研究CV【36kr报道】

热门文章

  1. linux shell bash 内置变量参考
  2. 高效模式编写者的7个习惯
  3. ISE安装和FLASH烧录
  4. linux路由介绍,Linux的路由表详细介绍
  5. 记录零基础GO编程入门笔记之一
  6. 北京大学 李胜 计算机,计算机科学技术系汪国平-李胜团队在虚拟现实领域取得系列进展...
  7. 分享一个让 Ping 的输出更简单易读方法
  8. oracle数据库 pc6,使用logdump 查看ogg的CSN
  9. 五年一贯制专转本c语言真题,江苏省五年一贯制专转本《C语言程序设计》模拟试卷二(晓庄)...
  10. HDU2112(SPFA算法)