生成数据集方法:sklearn.datasets.make_blobs(n_samples,n_featurs,centers)可以生成数据集,n_samples表示个数,n_features表示特征个数,centers表示y的种类数

  1. make_blobs函数是为聚类产生数据集
  2. 产生一个数据集和相应的标签
  3. n_samples:表示数据样本点个数,默认值100
  4. n_features:表示数据的维度,默认值是2
  5. centers:产生数据的中心点,默认值3
  6. cluster_std:数据集的标准差,浮点数或者浮点数序列,默认值1.0
  7. center_box:中心确定之后的数据边界,默认值(-10.0, 10.0)
  8. shuffle :洗乱,默认值是True
  9. random_state:官网解释是随机生成器的种子

y3 = np.array([0]*100 + [1]*50 + [2]*20 + [3]*5)可以这样建立array数组

k-means对于方差不相等和数据与坐标轴不平行时效果不理想;对于数据大小不相等不太敏感。

聚类性能的评价指标:(1)有监督时:均一性sklearn.metrics.homogeneity_score,完整性sklearn.metrics.completeness_score,还有二者的加权平均v_measure_score,ARI(Adjusted Rand index(调整兰德指数)(ARI))sklearn.metrics.adjusted_rand_score, AMI sklearn.metrics.adjusted_mutual_info_score

ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。AMI使用与ARI相同的几号,但是用的是信息熵。(具体参见小象机器学习升级版聚类实践ppt)

DBSCAN聚类算法:class sklearn.cluster.DBSCAN(eps=0.5, min_samples=5, metric='euclidean', algorithm='auto', leaf_size=30, p=None, random_state=None)
eps:点之间的间距,大于这个间距的就不算一个簇了。
min_samples:可以算作核心点的高密度区域的最少点个数。
metric:距离公式,可以用默认的欧式距离,还可以自己定义距离函数。
algorithm:发现近邻的方法,是暴力brute,二维空间的距离树kd_tree还是球状树形结构ball_tree。这个参数主要是为了降低计算复杂度的,可以从O(N^2)降到O(n*log(n))。换句话说,无论哪种算法都会达到最后的结果,影响的只是性能。
leaf_size:配合两种_tree算法的。
random_state:不用。

生成的model = DBSCAN(), model.labels_:所有点的分类结果。无论核心点还是边界点,只要是同一个簇的都被赋予同样的label,噪声点为-1.
model.core_sample_indices_:核心点的索引,因为labels_不能区分核心点还是边界点,所以需要用这个索引确定核心点。

所有的数据被分为三类点:
核心点。在半径eps内含有超过min_samples数目的点。
边界点。在半径eps内点的数量小于min_samples,但是落在核心点的邻域内,也就是说该点不是核心点,但是与其他核心点的距离小于eps。
噪音点。既不是核心点也不是边界点的点,该类点的周围数据点非常少。

sklearn.preprocessing 对数据进行预处理(归一化、标准化、正则化)(以后总结)

机器学习之sklearn——聚类的更多相关文章

  1. 机器学习六--K-means聚类算法

    机器学习六--K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别 ...

  2. sklearn聚类模型:基于密度的DBSCAN;基于混合高斯模型的GMM

    1 sklearn聚类方法详解 2 对比不同聚类算法在不同数据集上的表现 3 用scikit-learn学习K-Means聚类 4 用scikit-learn学习DBSCAN聚类 (基于密度的聚类) ...

  3. Python机器学习库sklearn的安装

    Python机器学习库sklearn的安装 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上能够为用户提供各种机器学习算法接口 ...

  4. 学习sklearn聚类使用

    学习利用sklearn的几个聚类方法: 一.几种聚类方法 1.高斯混合聚类(mixture of gaussians) 2.k均值聚类(kmeans) 3.密度聚类,均值漂移(mean shift) ...

  5. 机器学习总结-sklearn参数解释

    本文转自:lytforgood 机器学习总结-sklearn参数解释 实验数据集选取: 1分类数据选取 load_iris 鸢尾花数据集 from sklearn.datasets import lo ...

  6. 机器学习:K-Means聚类算法

    本文来自同步博客. 前面几篇文章介绍了回归或分类的几个算法,它们的共同点是训练数据包含了输出结果,要求算法能够通过训练数据掌握规律,用于预测新输入数据的输出值.因此,回归算法或分类算法被称之为监督学习 ...

  7. 【Python机器学习实战】聚类算法(1)——K-Means聚类

    实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...

  8. 机器学习实战 | SKLearn最全应用指南

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/41 本文地址:http://www.showmeai.tech/article-det ...

  9. Stanford机器学习笔记-9. 聚类(Clustering)

    9. Clustering Content 9. Clustering 9.1 Supervised Learning and Unsupervised Learning 9.2 K-means al ...

随机推荐

  1. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  2. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  3. 一个由Response.Redirect 引起的性能问题的分析

    现象: 某系统通过单点登录(SSO) 技术验证用户登录.用户在SSO 系统上通过验证后,跳转到某系统的主页上面.而跳转的时间很长,约1分钟以上. 分析步骤: 在问题复现时抓取Hang dump 进行分 ...

  4. WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例

    最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...

  5. react-native ListView使用详解

    刚好今天七夕,呆萌的程序猿没有妹纸,刚好发小明天结婚,我还在异地,晚上还要苦逼的赶火车.趁着下午比较闲,更新一下Blog,也算是在百无聊赖之时给众多单身程序猿们的小福利吧,虽然已经好久没更了...囧 ...

  6. Visual Studio for Mac Preview离线下载安装

    Visual Studio for Mac离线下载安装. 环境:OS X EI Caption 10.11.2 .NET Core SDK 1.1 需预先安装 .NET Core 1.1 SDK ma ...

  7. MySQL存储过程(转)

    一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...

  8. FunDA(2)- Streaming Data Operation:流式数据操作

    在上一集的讨论里我们介绍并实现了强类型返回结果行.使用强类型主要的目的是当我们把后端数据库SQL批次操作搬到内存里转变成数据流式按行操作时能更方便.准确.高效地选定数据字段.在上集讨论示范里我们用集合 ...

  9. FunDA(0)- Functional Data Access accessible to all

    大数据.多核CPU驱动了函数式编程模式的兴起.因为函数式编程更适合多线程.复杂.安全的大型软件编程.但是,对许多有应用软件开发经验的编程者来说,函数式编程模式是一种全新的.甚至抽象的概念,可能需要很长 ...

  10. 利用TortoiseSVN获取最新版本的OpenCV源码

    转自: http://blog.csdn.net/vsooda/article/details/7555969 1.下载安装TortoiseSVN:http://tortoisesvn.net/dow ...