Python KMeans聚类分析
今天用python实现了一下简单的聚类分析,顺便熟悉了numpy数组操作和绘图的一些技巧,在这里做个记录。
from pylab import *
from sklearn.cluster import KMeans## 利用numpy.append()函数实现matlab多维数组合并的效果,axis 参数值为 0 时是 y 轴方向合并,参数值为 1 时是 x 轴方向合并,分别对应matlab [A ; B] 和 [A , B]的效果#创建5个随机的数据集
x1=append(randn(500,1)+5,randn(500,1)+5,axis=1)
x2=append(randn(500,1)+5,randn(500,1)-5,axis=1)
x3=append(randn(500,1)-5,randn(500,1)+5,axis=1)
x4=append(randn(500,1)-5,randn(500,1)-5,axis=1)
x5=append(randn(500,1),randn(500,1),axis=1)# 下面用较笨的方法把5个数据集合并成 (2500,2)大小的数组data
data=append(x1,x2,axis=0)
data=append(data,x3,axis=0)
data=append(data,x4,axis=0)
data=append(data,x5,axis=0)plot(x1[:,0],x1[:,1],'oc',markersize=0.8)
plot(x2[:,0],x2[:,1],'og',markersize=0.8)
plot(x3[:,0],x3[:,1],'ob',markersize=0.8)
plot(x4[:,0],x4[:,1],'om',markersize=0.8)
plot(x5[:,0],x5[:,1],'oy',markersize=0.8)k=KMeans(n_clusters=5,random_state=0).fit(data)
t=k.cluster_centers_ # 获取数据中心点plot(t[:,0],t[:,1],'r*',markersize=16) # 显示这5个中心点,五角星标记~title('KMeans Clustering')
box(False)xticks([]) # 去掉坐标轴的标记
yticks([])show()
结果如下:
2017/01/11更新
今天重新试运行程序的出现报错了,提示导入NUMPY_MKL失败,因为之前用命令pip install -U numpy
手动更新了numpy,最初的是在http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 里下载的numpy-1.11.2+mkl-cp27-cp27m-win_amd64.whl
文件安装的,只要重新安装回去就可以了
2017/1/18
python中还有一个叫plotly
的package,可以通过pip install plotly
或 pip3 install plotly(Python3.X)
,使用这个package可以绘制精美的图像,官网中有很多例子介绍,同时plotly
还支持matlab,R等,但是个人觉得plotly
的绘图语法相比matplotlib
的繁琐,需要照着例程来修改才比较方便,不过如果只是要想数据可视化更好看的话参考官网例程并做修改也无妨,下面是来自官网的一段示例代码:
import plotly.plotly as py
import plotly.graph_objs as go
import plotly
import numpy as np#生成三组高斯分布(Gaussian Distribution)点集x0 = np.random.normal(2, 0.45, 300)
y0 = np.random.normal(2, 0.45, 300)x1 = np.random.normal(6, 0.8, 200)
y1 = np.random.normal(6, 0.8, 200)x2 = np.random.normal(4, 0.3, 200)
y2 = np.random.normal(4, 0.3, 200)#创建图形对象 graph object
trace0 = go.Scatter(x=x0,y=y0,mode='markers',
)
trace1 = go.Scatter(x=x1,y=y1,mode='markers'
)
trace2 = go.Scatter(x=x2,y=y2,mode='markers'
)
trace3 = go.Scatter(x=x1,y=y0,mode='markers'
)
#布局是一个字典,字典关键字keys包括:'shapes', 'showlegend'
layout = {'shapes': [{'type': 'circle','xref': 'x','yref': 'y','x0': min(x0),'y0': min(y0),'x1': max(x0),'y1': max(y0),'opacity': 0.2,'fillcolor': 'blue','line': {'color': 'blue',},},{'type': 'circle','xref': 'x','yref': 'y','x0': min(x1),'y0': min(y1),'x1': max(x1),'y1': max(y1),'opacity': 0.2,'fillcolor': 'orange','line': {'color': 'orange',},},{'type': 'circle','xref': 'x','yref': 'y','x0': min(x2),'y0': min(y2),'x1': max(x2),'y1': max(y2),'opacity': 0.2,'fillcolor': 'green','line': {'color': 'green',},},{'type': 'circle','xref': 'x','yref': 'y','x0': min(x1),'y0': min(y0),'x1': max(x1),'y1': max(y0),'opacity': 0.2,'fillcolor': 'red','line': {'color': 'red',},},],'showlegend': False,
}
data = [trace0, trace1, trace2, trace3]
#图像包括数据部分和布局部分
fig = {'data': data,'layout': layout,
}
#使用离线的方式绘制图像,因为没有注册官方的网站,而且那个网站不容易进去,所以用离线绘制
plotly.offline.plot(fig, filename='clusters')
结果是通过浏览器打开图片的,可以保存到本地,如下图:
总结:plotly
这个库虽然语法比较繁琐,但是对数据显示要求较高的情况下可以充分利用,一般绘图的话使用matplotlib比较方便,特别是ipython模式下先执行from pylab import *
可以获得和MATLAB 类似的工作环境。
Python KMeans聚类分析相关推荐
- python k-means聚类分析_python进行数据分析
1.获取数据 1.1 三种常见的类型 列表(List):Python中最基本的数据结构,列表的数据项通过逗号分隔,可以为不同的数据类型,例如:list1 = ['physics', 'chemistr ...
- python K-means聚类分析聚类数的选择-肘部法则和轮廓系数
如何选择kmeans中的k值--肘部法则–Elbow Method和轮廓系数–Silhouette Coefficient
- Python使用K-means聚类分析
Python使用K-means聚类分析 文章目录 Python使用K-means聚类分析 介绍 1.集群标签作为特征 一.k-均值聚类 二.示例 - 加州住房 2.KMeans 总结 介绍 提示:这里 ...
- 基于Python的Kmeans聚类分析介绍及实践
基于Python的Kmeans聚类分析介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 聚类算法 ...
- [Python与图像处理]利用Python与Kmeans聚类分析图像主色彩
如何使用OpenCV,Python和k-means聚类算法来查找图像中最主要的颜色 该任务可用于分析一张优秀摄影作品的色彩分布,并建立色卡图,将其用于本地调色. K-Means聚类,那么k-mea ...
- Iris鸢尾花数据集可视化、线性回归、决策树分析、KMeans聚类分析
在进行可视化及聚类分析前,我们需要为IDLE安装sklearn库,scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上能够为用户提 ...
- matlab鸢尾花数据线性分析,Iris鸢尾花数据集可视化、线性回归、决策树分析、KMeans聚类分析...
数据集可视化 采用Python的Sklearn机器学习库中自带的数据集--鸢尾花数据集.简单分析数据集之间特征的关系图,根据花瓣长度.花瓣宽度.花萼长度.花萼宽度四个特征进行绘图 Iris plant ...
- python进行聚类分析:鸢尾花(iris)代码
python进行聚类分析:鸢尾花(iris)代码 基本信息 代码实现 基础函数 Kemans MiniBatchKMeans MeanShift AgglomerativeClustering DBS ...
- python 文本聚类分析案例——从若干文本中聚类出一些主题词团
python 文本聚类分析案例 说明 摘要 1.结巴分词 2.去除停用词 3.生成tfidf矩阵 4.K-means聚类 5.获取主题词 / 主题词团 说明 实验要求:对若干条文本进行聚类分析,最终得 ...
最新文章
- js经典校验之注册与登录校验
- 初学__Python——Python数据类型之字典
- 【拔刀吧少年】之sort uniq tr cut eval常用命令
- codeforces——Little Pony and Sort by Shift
- 5月份,我居然发了这么多文章?我果然无聊.
- Redis所需内存 超过可用内存怎么办
- 净利下降7成、新业务“扛大旗” 阿里转型更需耐心
- UVa 1252 (状压DP + 记忆化搜索) Twenty Questions
- 利用XML文件的一个写日志的类!!!!!
- python编写端口扫描器_使用Python编写简单的端口扫描器的实例分享
- BAT、头条的时长战争:百度逆势领跑
- el-table 去掉四周border
- DM数据库安装、踩雷、解决办法
- 用户使用报告_分享最新2020年抖音用户画像报告
- Mac下编写C或C++
- 小米NFC手机复制加密IC门禁卡
- ppt怎么把图片做成翻书效果_ppt怎么做出翻页效果图文教程
- 点集拓扑学(1)——度量空间
- java httpClient使用代理实现互联网公网访问
- 笔记本电脑同时连接内外网
热门文章
- 中国异戊烷市场调研与投资预测报告(2021版)
- 中国微粉化蜡行业市场供需与战略研究报告
- vue手机端项目自适方案
- 最新特效移动文字代码大全
- 【中文技术文档的写作规范_P03】如何书写标点符号和控制文档体系
- Android开发艺术探索完结篇——天道酬勤
- OpenCloner Ripper:集光盘翻录软件+光盘视频转换+光盘解密于一体的全能光盘工具
- 阿里云ECS Ssh登录 密码栏灰色 密钥登录不上,VNC login incorrect解决
- 电热水器洗澡时注意(特别是需要拔插头)
- teamviewer linux远程开机,Ubuntu远程管理(teamviewer)