3D聚类
1 3D聚类和普通的二维聚类实质一样,只不过维数太高了,用三维图来表示了.
下面将官网的改成只生成一个图了
- #!/usr/bin/python
- # -*- coding:utf-8 -*-
- print(__doc__)
- # Code source: Gaël Varoquaux
- # Modified for documentation by Jaques Grobler
- # License: BSD 3 clause
- import numpy as np
- import matplotlib.pyplot as plt
- # Though the following import is not directly being used, it is required
- # for 3D projection to work
- from mpl_toolkits.mplot3d import Axes3D
- from sklearn.cluster import KMeans
- from sklearn import datasets
- np.random.seed(5)
- iris = datasets.load_iris()
- X = iris.data
- y = iris.target
- estimators = [('k_means_iris_8', KMeans(n_clusters=8)),
- ('k_means_iris_3', KMeans(n_clusters=3)),
- ('k_means_iris_bad_init', KMeans(n_clusters=3, n_init=1,
- init='random'))]
- fignum = 1
- titles = ['8 clusters', '3 clusters', '3 clusters, bad initialization']
- # for name, est in estimators:
- name = 'k_means_iris_8'
- est = KMeans(n_clusters=8)
- print(est)
- picture = plt.figure(fignum, figsize=(4, 3))
- ax = Axes3D(picture, rect=[0, 0, .95, 1], elev=48, azim=134)
- est.fit(X)
- labels = est.labels_
- ax.scatter(X[:, 3], X[:, 0], X[:, 2],
- c=labels.astype(np.float), edgecolor='k')
- ax.w_xaxis.set_ticklabels([])
- ax.w_yaxis.set_ticklabels([])
- ax.w_zaxis.set_ticklabels([])
- ax.set_xlabel('Petal width')
- ax.set_ylabel('Sepal length')
- ax.set_zlabel('Petal length')
- ax.set_title(titles[fignum - 1])
- ax.dist = 12
- # Plot the ground truth
- picture = plt.figure(fignum, figsize=(4, 3))
- ax = Axes3D(picture, rect=[0, 0, .95, 1], elev=48, azim=134)
- for name, label in [('Setosa', 0),
- ('Versicolour', 1),
- ('Virginica', 2)]:
- ax.text3D(X[y == label, 3].mean(),
- X[y == label, 0].mean(),
- X[y == label, 2].mean() + 2, name,
- horizontalalignment='center',
- bbox=dict(alpha=.2, edgecolor='w', facecolor='w'))
- # Reorder the labels to have colors matching the cluster results
- y = np.choose(y, [1, 2, 0]).astype(np.float)
- ax.scatter(X[:, 3], X[:, 0], X[:, 2], c=y, edgecolor='k')
- ax.w_xaxis.set_ticklabels([])
- ax.w_yaxis.set_ticklabels([])
- ax.w_zaxis.set_ticklabels([])
- ax.set_xlabel('Petal width')
- ax.set_ylabel('Sepal length')
- ax.set_zlabel('Petal length')
- ax.set_title('Ground Truth')
- ax.dist = 12
- plt.show()
官网链接:https://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_iris.html#sphx-glr-auto-examples-cluster-plot-cluster-iris-py
参考:https://mp.weixin.qq.com/s?__biz=MzAxNTc0Mjg0Mg==&mid=2653290530&idx=1&sn=7008fc46129106703a05fdfef1ddd4e6&chksm=802dc237b75a4b2173af42e9703c8591e3a4a37e50b2825f5a00cdba1099b49297f2300169e6&mpshare=1&scene=1&srcid=10178eaFgbBY6JZo05vM66s1&sharer_sharetime=1571301323063&sharer_shareid=a49b9557eabaed0d06d2de311dd63b54&pass_ticket=9rhsUGDoFYNdc2RJMbTG%2BMUeXE%2BY%2Bb9d2F3ZAMul8kAKgV7h8aQNp4StajH8jKTj#rd
3D聚类的更多相关文章
- 机器学习笔记----Fuzzy c-means(FCM)模糊聚类详解及matlab实现
前言:这几天一直都在研究模糊聚类.感觉网上的文档都没有一个详细而具体的讲解,正好今天有时间,就来聊一聊模糊聚类. 一:模糊数学 我们大家都知道计算机其实只认识两个数字0,1.我们平时写程序其实也是这样 ...
- 基于密度聚类的DBSCAN和kmeans算法比较
根据各行业特性,人们提出了多种聚类算法,简单分为:基于层次.划分.密度.图论.网格和模型的几大类. 其中,基于密度的聚类算法以DBSCAN最具有代表性. 场景 一 假设有如下图的一组数据, 生成数据 ...
- 使用k-means对3D网格模型进行分割
使用k-means对3D网格模型进行分割 由于一些原因,最近在做网格分割的相关工作.网格分割的方法有很多,如Easy mesh cutting.K-means.谱分割.基于SDF的分割等.根据对分割要 ...
- 基于谱聚类的三维网格分割算法(Spectral Clustering)
谱聚类(Spectral Clustering)是一种广泛使用的数据聚类算法,[Liu et al. 2004]基于谱聚类算法首次提出了一种三维网格分割方法.该方法首先构建一个相似矩阵用于记录网格上相 ...
- ML: 聚类算法R包-模糊聚类
1965年美国加州大学柏克莱分校的扎德教授第一次提出了'集合'的概念.经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面.为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析.用模 ...
- Efficient Online Segmentation for Sparse 3D Laser Scans-- 在线的稀疏点云分割
在基于激光的自动驾驶或者移动机器人的应用中,在移动场景中提取单个对象的能力是十分重要的.因为这样的系统需要在动态的感知环境中感知到周围发生变化或者移动的对象,在感知系统中,将图像或者点云数据预处理成单 ...
- [译]与TensorFlow的第一次接触(三)之聚类
转自 [译]与TensorFlow的第一次接触(三)之聚类 2016.08.09 16:58* 字数 4316 阅读 7916评论 5喜欢 18 前一章节中介绍的线性回归是一种监督学习算法,我们使用数 ...
- 3D 特征点概述(1)
很久没有更新相关内容了,很多朋友过来私信我,但由于时间问题,不能一一为大家解答,本人也不是无所不知的大神,还请各位谅解. 本文主要总结PCL中3D特征点的相关内容,该部分内容在PCL库中都是已经集成的 ...
- segMatch:基于3D点云分割的回环检测
该论文的地址是:https://arxiv.org/pdf/1609.07720.pdf segmatch是一个提供车辆的回环检测的技术,使用提取和匹配分割的三维激光点云技术.分割的例子可以在下面的图 ...
随机推荐
- thinkphp 静态缓存设置
'HTML_CACHE_RULES'=> array('ActionName' => array('静态规则', '静态缓存有效期', '附加规则'),'ModuleName(小写)' = ...
- puppet自动化搭建lnmp架构
puppet自动化安装lnmp架构 3nginx的搭建 mkdir -p /etc/puppet/modules/nginx/{manifests,files} vim /etc/puppet/mod ...
- SSL交互简述及nginx双向认证配置
一.证书生成. 1.SSL Server生成私钥/公钥对.server.key(加密)/server.pub(解密):2.server.pub生成请求文件server.csr,包含server的一些信 ...
- 清北学堂北京大学吴耀轩神仙讲课day5摘要
今天讲图论 图是啥?(白纸上的符号?) 对于一个拥有n个顶点的无向连通图,它的边数一定多于n-1条.若从中选择n-1条边,使得无向图仍然连通,则由n个顶点及这 n-1条边(弧)组成的图被称为原无向图的 ...
- RPC框架pigeon源码分析
Pigeon是一个分布式服务通信框架(RPC),是美团点评最基础的底层框架之一.已开源,链接:https://github.com/dianping/pigeon 从接下来三个方面来分析pigeon的 ...
- redis高可用(一)主从复制
主从复制 读写分离 https://blog.csdn.net/u014691098/article/details/82391608
- Send Email
private string SendEmail(string mailTo, string body, ref int sendresult) { string errorEmailAddress ...
- 【BZOJ3931】[CQOI2015]网络吞吐量
Description 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的地,路由器需要选择 ...
- vue-cli 构建的 Vue 项目用 localhost 加 端口 能访问,但是切换到 ip 加 端口 就不能访问
问题出在 webpack 的配置 在 config 文件夹下, 找到 index.js 目录, 找到如下代码 host: 'localhost', // can be overwritten by p ...
- hive里面union all的用法记录
UNION用于联合多个select语句的结果集,合并为一个独立的结果集,结果集去重. UNION ALL也是用于联合多个select语句的结果集.但是不能消除重复行.现在hive只支持UNION AL ...