K-means之亚洲杯
- import numpy as np
- import xlrd
- from sklearn.cluster import KMeans
- from sklearn import preprocessing
- #胜 平 负 进球 失球 控球率 传球成功率 抢断成功率 射正
- # =============================================================================
- # 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],
- # [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],
- # [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],
- # [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],
- # [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],
- # [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]]
- # =============================================================================
- def xlrd_read_data(path):
- table = xlrd.open_workbook(path).sheets()[0] #读取第一个表格
- row = table.nrows # 行数
- col = table.ncols # 列数
- datamatrix = np.zeros((row, col))#生成一个nrows行ncols列,且元素均为0的初始矩阵
- for x in range(col):
- cols = np.matrix(table.col_values(x)) # 把list转换为矩阵进行矩阵操作
- datamatrix[:, x] = cols # 按列把数据存进矩阵中
- return datamatrix
- def standardScaler(datamatrix):
- #标准化
- scaler=preprocessing.StandardScaler().fit(datamatrix)
- return (scaler.transform(datamatrix))
- def kmeans(data_stand):
- estimator = KMeans(n_clusters=3) #聚为三类球队,构造聚类器
- estimator.fit(data_stand)#聚类
- label_pred = estimator.labels_#获取聚类标签
- centroids = estimator.cluster_centers_#获取聚类中心
- inertia = estimator.inertia_ #获取聚类准则的总和
- dis=estimator.precompute_distances
- print(dis,inertia,centroids)
- return label_pred
- path = r'c:\Users\Liugengxin\Desktop\亚洲杯.xlsx'
- data=xlrd_read_data(path)
- data_stand=standardScaler(data) #获得标准化数据
- label_pred=kmeans(data_stand)
- # =============================================================================
- # team=[['阿联酋'],['印度'],['泰国'],['巴林'],
- # ['约旦'],['澳大利亚'],['叙利亚'],['巴勒斯坦'],
- # ['中国'],['韩国'],['吉尔吉斯斯坦'],['菲律宾'],
- # ['伊朗'],['伊拉克'],['越南'],['也门'],
- # ['沙特'],['卡塔尔'],['朝鲜'],['黎巴嫩'],
- # ['日本'],['乌兹别克斯坦'],['土库曼斯坦'],['阿曼']]
- # =============================================================================
- team=[['阿联酋'],['印度'],['泰国'],['巴林'],
- ['约旦'],['澳大利亚'],['叙利亚'],['巴勒斯坦'],
- ['中国'],['韩国'],['吉尔吉斯斯坦'],['菲律宾'],
- ['伊朗'],['伊拉克'],['越南'],['也门']]
- clustering_predict = np.column_stack((team,label_pred))#合并
- first = clustering_predict[12][1]#一流
- third = clustering_predict[15][1]#三流
- for i in range(len(team)):
- if clustering_predict[i][1]==first:clustering_predict[i][1]='亚洲一流'
- elif clustering_predict[i][1]==third:clustering_predict[i][1]='亚洲三流'
- else :clustering_predict[i][1]='亚洲二流'
K-means之亚洲杯的更多相关文章
- KNN 与 K - Means 算法比较
KNN K-Means 1.分类算法 聚类算法 2.监督学习 非监督学习 3.数据类型:喂给它的数据集是带label的数据,已经是完全正确的数据 喂给它的数据集是无label的数据,是杂乱无章的,经过 ...
- 软件——机器学习与Python,聚类,K——means
K-means是一种聚类算法: 这里运用k-means进行31个城市的分类 城市的数据保存在city.txt文件中,内容如下: BJ,2959.19,730.79,749.41,513.34,467. ...
- 快速查找无序数组中的第K大数?
1.题目分析: 查找无序数组中的第K大数,直观感觉便是先排好序再找到下标为K-1的元素,时间复杂度O(NlgN).在此,我们想探索是否存在时间复杂度 < O(NlgN),而且近似等于O(N)的高 ...
- 网络费用流-最小k路径覆盖
多校联赛第一场(hdu4862) Jump Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- 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 ...
- k-means聚类学习
4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在 ...
- 当我们在谈论kmeans(2)
本稿为初稿,后续可能还会修改:如果转载,请务必保留源地址,非常感谢! 博客园:http://www.cnblogs.com/data-miner/ 其他:建设中- 当我们在谈论kmeans(2 ...
- scikit-learn包的学习资料
http://scikit-learn.org/stable/modules/clustering.html#k-means http://my.oschina.net/u/175377/blog/8 ...
- HDU 3584 Cube (三维 树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3584 Cube Problem Description Given an N*N*N cube A, ...
- Torch7学习笔记(二)nn Package
神经网络Package [目前还属于草稿版,等我整个学习玩以后会重新整理] 模块Module module定义了训练神经网络需要的所有基础方法,并且是可以序列化的抽象类. module有两种状态变量: ...
随机推荐
- webDriver定位元素的方法
在UI层面的自动化测试开发中,元素的定位与操作是基础,也是经常遇到的困难所在.webdriver提供了8种定位: 1. id定位:find_element_by_id("id值") ...
- zabbix添加IIS网站计数器(并发连接数)详解
环境:windows server 2012 前提:IIS上要添加好配置 1,在被监控主机,powershell输入perfmon.msc 2,点击添加按钮 3,在下拉菜单中点击小箭头 ...
- Java学习NO.2
这是我学习Java的第二天 学习内容: 一.运算符 赋值运算符 语法:变量名=表达式 算数运算符 + - * / % ++ -- += -= *= /= %= 其中尤为要注 ...
- Tensorflow描述张量的维度:阶,形状以及维数
张量 TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.张量可以在图中的节点之间流通. 阶 在TensorFl ...
- ejabberd之开题篇
ejabberd是基于Jabber/XMPP协议的即时通讯服务器.采用Erlang/OTP开发.它的特点是,跨平台,容错,集群和模块化. 因为自己本身是基于erlang工作,而且听到有不少的公 ...
- ngix匹配规则
语法规则: location [=|~|~*|^~] /uri/ { … } =:开头表示精确匹配 ^~:开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...
- MFC中关于运行时类信息及动态创建对象的两个宏的意义(转)
http://blog.csdn.net/ligand/article/details/49839507 MFC运行时类信息 用途: 程序在运行时,获取对象类的信息及类的继承关系 实现: 1.定义的类 ...
- H5视频直播扫盲
H5视频直播扫盲 2016-05-25 • 前端杂项 • 14 条评论 • lvming19901227 视频直播这么火,再不学就out了. 为了紧跟潮流,本文将向大家介绍一下视频直播中的基本流程和主 ...
- Qt学习3---子窗口与父窗口
创建子窗口后,主窗口的头文件需要 #include "子窗口头文件" 子窗口和父窗口之间相互切换 子窗口没有办法处理父窗口,子窗口此时就需要一个信号: * 信号必须有signal ...
- 关于html引用php文件在编译器正常运行,web浏览器出问题的一点心得
首先上图 第一张图是预期效果,也就是编译器运行的效果,第二张则是在浏览器打开的效果.那么为甚么会出现这何种问题呢? 原来:编译器能正常运行 是因为是走的cli模式,而浏览器现在走的是web模式,php ...