机器学习之sklearn——聚类
生成数据集方法:sklearn.datasets.make_blobs(n_samples,n_featurs,centers)可以生成数据集,n_samples表示个数,n_features表示特征个数,centers表示y的种类数
- make_blobs函数是为聚类产生数据集
- 产生一个数据集和相应的标签
- n_samples:表示数据样本点个数,默认值100
- n_features:表示数据的维度,默认值是2
- centers:产生数据的中心点,默认值3
- cluster_std:数据集的标准差,浮点数或者浮点数序列,默认值1.0
- center_box:中心确定之后的数据边界,默认值(-10.0, 10.0)
- shuffle :洗乱,默认值是True
- 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——聚类的更多相关文章
- 机器学习六--K-means聚类算法
机器学习六--K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别 ...
- sklearn聚类模型:基于密度的DBSCAN;基于混合高斯模型的GMM
1 sklearn聚类方法详解 2 对比不同聚类算法在不同数据集上的表现 3 用scikit-learn学习K-Means聚类 4 用scikit-learn学习DBSCAN聚类 (基于密度的聚类) ...
- Python机器学习库sklearn的安装
Python机器学习库sklearn的安装 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上能够为用户提供各种机器学习算法接口 ...
- 学习sklearn聚类使用
学习利用sklearn的几个聚类方法: 一.几种聚类方法 1.高斯混合聚类(mixture of gaussians) 2.k均值聚类(kmeans) 3.密度聚类,均值漂移(mean shift) ...
- 机器学习总结-sklearn参数解释
本文转自:lytforgood 机器学习总结-sklearn参数解释 实验数据集选取: 1分类数据选取 load_iris 鸢尾花数据集 from sklearn.datasets import lo ...
- 机器学习:K-Means聚类算法
本文来自同步博客. 前面几篇文章介绍了回归或分类的几个算法,它们的共同点是训练数据包含了输出结果,要求算法能够通过训练数据掌握规律,用于预测新输入数据的输出值.因此,回归算法或分类算法被称之为监督学习 ...
- 【Python机器学习实战】聚类算法(1)——K-Means聚类
实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...
- 机器学习实战 | SKLearn最全应用指南
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/41 本文地址:http://www.showmeai.tech/article-det ...
- Stanford机器学习笔记-9. 聚类(Clustering)
9. Clustering Content 9. Clustering 9.1 Supervised Learning and Unsupervised Learning 9.2 K-means al ...
随机推荐
- Java多线程系列--“JUC锁”03之 公平锁(一)
概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...
- HTML5 学习总结(一)——HTML5概要与新增标签
一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸 ...
- 存在即合理,重复轮子orm java版本
1,业务描述前序? 需求来源于,公司的运营部门.本人所在公司(私营,游戏行业公司),从初创业,我就进入公司,一直致力于服务器核心研发. 公司成立块3年了,前后出产了4款游戏,一直在重复的制造公司游戏对 ...
- PyQt4入门学习笔记(四)
在PyQt4中的事件和信号 事件 所有的GUI应用都是事件驱动的.事件主要是来自于应用的使用者,但是像互联网连接,窗口管理器或者计时器也可以产生事件.当我们调用应用的exec_()方法时,应用就进入了 ...
- 今天我们来认识一下JSP的九大内置对象
虽然现在基本上我们都是使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的.像request.response.session这些对象,即便使用 ...
- 使用Autolayout实现UITableView的Cell动态布局和高度动态改变
本文翻译自:stackoverflow 有人在stackoverflow上问了一个问题: 1 如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并 ...
- Springl利用Aspectj的扩展实现Aop
1. Spring为什么要使用Aspectj Spring Aop:Spring自己原生的Aop,只能用一个词来形容:难用. 你需要实现大量的接口,继承大量的类,所以spring aop一度被千夫所指 ...
- 数据仓库开发——Kettle使用示例
Kettle是一个开园ETL工具,做数据仓库用Spoon. 工具:下载Spoon,解压即可用 1.认识常用组件: 表输入 插入\更新 数据同步 文本文件输出 ...
- Json CPP 中文支持与入门示例
在每一个Json Cpp自带*.cpp文件头加上: #include "stdafx.h" 将Json Cpp对自带的头文件的引用修改为单引号方式,例如json_reader.cp ...
- Atitit 软件国际化原理与概论
Atitit 软件国际化原理与概论 语言和文化习俗因地域不同而差别很大.对某一特定的地域的 语言环境称为"locale".它不仅包括语言和货币单位,而且还包括 数字标示格式, 日期 ...