1. import numpy as np
  2. import xlrd
  3. from sklearn.cluster import KMeans
  4. from sklearn import preprocessing
  5. #胜 平 负 进球 失球 控球率 传球成功率 抢断成功率 射正
  6. # =============================================================================
  7. # data=[[1,1,0,3,1,65.5,77.6,53.8,3,4],[1,0,1,4,3,34.5,57.4,50,2,3],[1,0,1,2,4,41.8,60.5,85.7,2,3],[0,1,1,1,2,58.2,70.8,50,3,1],
  8. # [2,0,0,3,0,34.8,70.3,64.3,4,6],[1,0,1,3,1,68,85.2,50,6,3],[0,1,1,0,2,65.2,79.8,50,2,1],[0,1,1,0,3,32,69.9,66.7,0,1],
  9. # [2,0,0,5,1,54.9,77.2,61.5,7,6],[2,0,0,2,0,70.9,87.6,61.1,7,6],[0,0,2,1,3,29.1,67.5,52.9,2,0],[0,0,2,0,4,45.1,69.8,91.7,1,0],
  10. # [2,0,0,7,0,68,83.7,68.8,5,6],[2,0,0,6,2,61.8,88.2,70.6,5,6],[0,0,2,2,5,32,65.5,50,2,0],[0,0,2,0,8,38.2,79.5,90.9,2,0],
  11. # [2,0,0,6,0,69.5,87.8,81.2,7,6],[2,0,0,8,0,64,84.9,71.4,6,6],[0,0,2,0,10,36,78.3,53.8,0,0],[0,0,2,0,4,30.5,71.5,53.3,0,0],
  12. # [2,0,0,4,2,62.6,81.5,63.6,7,6],[1,0,0,2,1,40,78.7,64.7,3,6],[0,0,1,2,3,30.1,68.8,50,4,0],[0,0,2,1,3,37.4,72.1,80,1,0]]
  13. # =============================================================================
  14. def xlrd_read_data(path):
  15. table = xlrd.open_workbook(path).sheets()[0] #读取第一个表格
  16. row = table.nrows # 行数
  17. col = table.ncols # 列数
  18. datamatrix = np.zeros((row, col))#生成一个nrowsncols列,且元素均为0的初始矩阵
  19. for x in range(col):
  20. cols = np.matrix(table.col_values(x)) # 把list转换为矩阵进行矩阵操作
  21. datamatrix[:, x] = cols # 按列把数据存进矩阵中
  22. return datamatrix
  23. def standardScaler(datamatrix):
  24. #标准化
  25. scaler=preprocessing.StandardScaler().fit(datamatrix)
  26. return (scaler.transform(datamatrix))
  27. def kmeans(data_stand):
  28. estimator = KMeans(n_clusters=3) #聚为三类球队,构造聚类器
  29. estimator.fit(data_stand)#聚类
  30. label_pred = estimator.labels_#获取聚类标签
  31. centroids = estimator.cluster_centers_#获取聚类中心
  32. inertia = estimator.inertia_ #获取聚类准则的总和
  33. dis=estimator.precompute_distances
  34. print(dis,inertia,centroids)
  35. return label_pred
  36. path = r'c:\Users\Liugengxin\Desktop\亚洲杯.xlsx'
  37. data=xlrd_read_data(path)
  38. data_stand=standardScaler(data) #获得标准化数据
  39. label_pred=kmeans(data_stand)
  40. # =============================================================================
  41. # team=[['阿联酋'],['印度'],['泰国'],['巴林'],
  42. # ['约旦'],['澳大利亚'],['叙利亚'],['巴勒斯坦'],
  43. # ['中国'],['韩国'],['吉尔吉斯斯坦'],['菲律宾'],
  44. # ['伊朗'],['伊拉克'],['越南'],['也门'],
  45. # ['沙特'],['卡塔尔'],['朝鲜'],['黎巴嫩'],
  46. # ['日本'],['乌兹别克斯坦'],['土库曼斯坦'],['阿曼']]
  47. # =============================================================================
  48. team=[['阿联酋'],['印度'],['泰国'],['巴林'],
  49. ['约旦'],['澳大利亚'],['叙利亚'],['巴勒斯坦'],
  50. ['中国'],['韩国'],['吉尔吉斯斯坦'],['菲律宾'],
  51. ['伊朗'],['伊拉克'],['越南'],['也门']]
  52. clustering_predict = np.column_stack((team,label_pred))#合并
  53. first = clustering_predict[12][1]#一流
  54. third = clustering_predict[15][1]#三流
  55.  
  56. for i in range(len(team)):
  57. if clustering_predict[i][1]==first:clustering_predict[i][1]='亚洲一流'
  58. elif clustering_predict[i][1]==third:clustering_predict[i][1]='亚洲三流'
  59. else :clustering_predict[i][1]='亚洲二流'

K-means之亚洲杯的更多相关文章

  1. KNN 与 K - Means 算法比较

    KNN K-Means 1.分类算法 聚类算法 2.监督学习 非监督学习 3.数据类型:喂给它的数据集是带label的数据,已经是完全正确的数据 喂给它的数据集是无label的数据,是杂乱无章的,经过 ...

  2. 软件——机器学习与Python,聚类,K——means

    K-means是一种聚类算法: 这里运用k-means进行31个城市的分类 城市的数据保存在city.txt文件中,内容如下: BJ,2959.19,730.79,749.41,513.34,467. ...

  3. 快速查找无序数组中的第K大数?

    1.题目分析: 查找无序数组中的第K大数,直观感觉便是先排好序再找到下标为K-1的元素,时间复杂度O(NlgN).在此,我们想探索是否存在时间复杂度 < O(NlgN),而且近似等于O(N)的高 ...

  4. 网络费用流-最小k路径覆盖

    多校联赛第一场(hdu4862) Jump Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. numpy.ones_like(a, dtype=None, order='K', subok=True)返回和原矩阵一样形状的1矩阵

    Return an array of ones with the same shape and type as a given array. Parameters: a : array_like Th ...

  6. k-means聚类学习

    4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在 ...

  7. 当我们在谈论kmeans(2)

        本稿为初稿,后续可能还会修改:如果转载,请务必保留源地址,非常感谢! 博客园:http://www.cnblogs.com/data-miner/ 其他:建设中- 当我们在谈论kmeans(2 ...

  8. scikit-learn包的学习资料

    http://scikit-learn.org/stable/modules/clustering.html#k-means http://my.oschina.net/u/175377/blog/8 ...

  9. HDU 3584 Cube (三维 树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3584 Cube Problem Description Given an N*N*N cube A,  ...

  10. Torch7学习笔记(二)nn Package

    神经网络Package [目前还属于草稿版,等我整个学习玩以后会重新整理] 模块Module module定义了训练神经网络需要的所有基础方法,并且是可以序列化的抽象类. module有两种状态变量: ...

随机推荐

  1. json_encode 的局限 , 使用自定义的函数 .returnJson.

    $arr = array("liming", "tom", "green"); $arr2 = array( 1 => "l ...

  2. docker info 警告"WARNING: No swap limit support"

    vim/etc/default/grub 找到 GRUB_CMDLINE_LINUX="" 在双引号里面输入cgroup_enable=memory swapaccount=1 然 ...

  3. holer实现外网访问内网数据库

    外网访问本地数据库 本地安装了数据库,只能在局域网内访问,怎样从公网也能访问内网数据库? 本文将介绍使用holer实现的具体步骤. 1. 准备工作 1.1 安装并启动数据库 默认安装的数据库端口是33 ...

  4. mysql 实现 sqlserver的row_number over() 方法

    1.创建表 CREATE TABLE `heyf_t10` ( `empid` int(11) DEFAULT NULL, `deptid` int(11) DEFAULT NULL, `salary ...

  5. 如何保证WebBrowser一直在页面内跳转

    目前在编写一个小工具,用到了WebBrowser,在调试时点击页面内连接自动打开ie跳转,所以百度查找解决办法. private void webBrowser1_NewWindow(object s ...

  6. String与StringBuffer之间的转换

    来源:http://www.oschina.net/code/snippet_2261089_47352 package demo; /* String与StringBuffer之间的转换 * Str ...

  7. 周强 201771010141 《面向对象程序设计(java)》第九周实验总结

    实验部分 1.实验目的与要求 (1) 掌握java异常处理技术: (2) 了解断言的用法: (3) 了解日志的用途: (4) 掌握程序基础调试技巧: 2.实验内容和步骤 实验1:用命令行与IDE两种环 ...

  8. 浅谈java中的祖先类Object

    首先一道题: public class User{ private String name; private int age; public String getName() { return nam ...

  9. hadoop day 7

    1.storm概述 应用于实时的流式计算,结合消息队列和数据库进行使用. Spouts:拓扑的消息源 Bolts:拓扑的处理逻辑单元,每个bolt可以在集群当中多实例的并发执行 tuple:消息元组, ...

  10. git教程:撤销修改

    转载:撤销修改 自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed ve ...