聚类

机器学习实战09:K均值聚类

帅比萌擦擦* 提交于 2019-12-28 23:18:48
聚类 聚类是一种无监督的学习,它将相似的对象归到同一个簇中。它有点像全自动分类。聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好。K-均值( K-means)聚类的算法之所以称之为K-均值是因为它可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。 簇识别 在介绍K-均值算法之前,先讨论一下簇识别( cluster identification)。簇识别给出聚类结果的含义。假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么。聚类与分类的最大不同在于,分类的目标事先已知,而聚类则不一样。因为其产生的结果与分类相同,而只是类别没有预先定义,聚类有时也被称为无监督分类( unsupervised classification)。聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。相似这一概念取决于所选择的相似度计算方法。 K-均值聚类 优点:容易实现。 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。 适用数据类型:数值型数据。 K-均值是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其质心( centroid),即簇中所有点的中心来描述。 K-均值算法的工作流程是这样的。首先,随机确定k个初始点作为质心。然后将数据集中的每个点分配到一个簇中,具体来讲,为每个点找距其最近的质心

K-Means

我是研究僧i 提交于 2019-12-28 16:13:20
本篇随笔是数据科学家学习第八周的内容,主要参考资料为: K-Means: https://www.jianshu.com/p/caef1926adf7 深入理解K-Means聚类算法: https://blog.csdn.net/taoyanqi8932/article/details/53727841 极客时间数据分析 - 聚类学习 用scikit-learn学习K-Means聚类 https://www.cnblogs.com/pinard/p/6169370.html 聚类   聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集成为一个“簇”。通过这样的划分,每个簇可能对应于一些潜在的概念(也就是类别),如“浅色瓜” “深色瓜”,“有籽瓜” “无籽瓜”,甚至“本地瓜” “外地瓜”等;需说明的是,这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇对应的概念语义由使用者来把握和命名。   簇内的样本相关性越大,簇间相关性越小,则聚类效果越好。 K-Means的原理和公式   对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。   对于距离大小的计算,有:   给定样本集D,K-Means算法针对聚类所得簇划分C最小化平方误差。 最小化上面的公式并不容易

Python 数据分析与挖掘概述

非 Y 不嫁゛ 提交于 2019-12-28 03:12:44
Python 数据分析与挖掘概述 一、数据分析与挖掘介绍 从人类历史的角度出发,我们回顾整个计算机的发展历程可以看到,从第一台电子计算机(ENIAC)于1946年2月诞生到今天,也不过是短短的六十载,但就是在这短短的几十年过程中,计算机技术得到了飞速的发展,极大地促进了社会生产力的提高,提升了生产制造水平。可以说计算机技术是近代以来发展最为迅速的技术之一。 尤其是近年来,随着半导体技术,通讯技术的不断发展,人类收集数据和存储数据的能力都得到了极大的提高。无论是在科学研究还是社会生活的各个领域中都产生积累了大量的数据,对这些数据进行分析以挖掘出蕴含在这些数据中的有用信息,已成为我们各个领域的共同需求,对改善人类的生活,促进社会的发展有着极大的作用。 数据分析与挖掘是指利用数学和计算机的手段,对收集来的数据进行适当的处理和开发,以求最大化地开发数据的功能,发挥数据的作用。具体来说,数据挖掘是从海量的数据中挖掘出隐含的、先前未知、对决策有潜在价值的关系、模式、趋势,并利用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具、和过程。 留心观察就会觉察到,大数据分析在我们生活中的应用案例屡见不鲜。例如许多电商网站会根据用户的历史浏览足迹、购买记录等数据,挖掘出用户的喜好等信息,然后基于用户的兴趣偏好,把用户感兴趣的物品或者视频、资讯等推荐给用户,给用户带来沉浸式的体验

半监督学习简介与综述 —— For 2020

我与影子孤独终老i 提交于 2019-12-28 01:29:30
半监督学习提出的背景 数据是机器学习的基础。巧妇难为无米之炊,再牛x的机器学习算法,脱离了数据就是空中楼阁。 根据使用的数据样本是否具有标签,可大致将传统的机器学习方法分为 监督学习方法和无监督学习方法 。 其中,无监督学习方法使用的训练样本没有标签;监督学习方法使用的训练样本带有明确的标签。 监督学习: 训练样本集不仅包含样本,还包含这些样本对应的标签,即样本和样本标签成对出现。监督学习的目标是从训练样本中学习一个从样本到标签的有效映射,使其能够预测未知样本的标签。监督学习是机器学习中最成熟的学习方法,代表性的算法包括神经网络、支持向量机(SVM)等。 无监督学习: 只能利用训练样本的数据分布或样本间的关系将样本划分到不同的聚类簇或给出样本对应的低维结构。因此,无监督学习常被用于对样本进行 聚类或降维 ,典型的算法包括尺均值聚类和主成分分析等。 在许多实际问题中,有标签样本和无标签样本往往同时存在,且无标签样本较多,而有标签样本则相对较少。 虽然充足的有标签样本能够有效提升学习性能,但是获取样本标签往往是非常困难的,因为标记样本可能需要专家知识、特殊的设备以及大量的时间。相比于有标签样本,大量的无标签样本广泛存在且非常容易收集。但是,监督学习算法无法利用无标签样本,在有标签样本较少时,难以取得较强的泛化性能。虽然无监督学习算法能够使用无标签样本,但准确性较差。

KMeans (K均值)算法讲解及实现

╄→гoц情女王★ 提交于 2019-12-27 05:52:21
算法原理 KMeans算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。 K个初始聚类中心点的选取对聚类结果具有较大的影响,因为在该算法第一步中是随机地选取任意k个对象作为初始聚类中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离赋给最近的簇。当考查完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。 算法过程如下: (1)从N个数据文档(样本)随机选取K个数据文档作为质心(聚类中心)。 本文在聚类中心初始化实现过程中采取在样本空间范围内随机生成K个聚类中心。 (2)对每个数据文档测量其到每个质心的距离,并把它归到最近的质心的类。 (3)重新计算已经得到的各个类的质心。 (4)迭代(2)~(3步直至新的质心与原质心相等或小于指定阈值,算法结束。 本文采用所有样本所属的质心都不再变化时,算法收敛。 代码实现 本文在实现过程中采用数据集4k2_far.txt,聚类算法实现过程中默认的类别数量为4。 (1)辅助函数myUtil.py # -*- coding:utf-8 -*- from numpy import * # 数据文件转矩阵 # path: 数据文件路径 # delimiter: 行内字段分隔符

机器学习第八周-K-means聚类

不问归期 提交于 2019-12-26 12:08:23
学习内容:模型原理、收敛过程、代码实现 一、模型原理 聚类的概念 聚类试图将数据集中的样本划分为若干个通常是不想交的子集,每个子集成为簇。通过这样的划分,每个簇可能对应一些潜在的概念(也就是类别),如浅色瓜,深色瓜,有籽瓜,甚至本地瓜,外地瓜;需要说明的事,这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇对应的概念语义由使用者来把握和命名 聚类和分类的区别 聚类是无监督的学习算法,分类是有监督的学习算法。所谓有监督就是有已知标签的训练集(也就是说提前知道训练集里的数据属于哪个类别),机器学习算法在训练集上学习到相应的参数,构建模型,然后应用到测试集上。而聚类算法没有标签,聚类的时候,只是把需要实现的目标相似的东西聚到了一起 性能度量 聚类的目的是把相似的样本聚到一起,而将不相似的样本分开,类似物以类聚,很直观的想法是同一个簇中的相似度要尽可能高,而簇与簇之间的相似度要尽可能的低。性能度量大概可以分为两类:一是外部指标,二是内部指标 外部指标:将聚类结果和某个参考模型进行比较 内部指标:不利用任何参考模型,直接考察聚类结果 不同的簇类型 明显分离的簇、基于中心的簇、基于邻近的簇、基于密度的簇、概念簇 基本聚类分析算法 K均值:基于原型的。划分的距离技术,它试图发现用户指定个数K的簇 凝聚的层次距离:思想是开始时,每个点都作为单点簇,然后,重复合并两个最靠近的簇

PCL—低层次视觉—点云分割(基于凹凸性)

感情迁移 提交于 2019-12-25 01:59:17
1.图像分割的两条思路   场景分割时机器视觉中的重要任务,尤其对家庭机器人而言,优秀的场景分割算法是实现复杂功能的基础。但是大家搞了几十年也还没搞定——不是我说的,是接下来要介绍的这篇论文说的。图像分割的搞法大概有两种:剑宗——自低向上:先将图像聚类成小的像素团再慢慢合并,气宗——自顶向下:用多尺度模板分割图像,再进一步将图像优化分割成不同物体。当然,还有将二者合而为一的方法:training with data set. 这第三种方法也不好,太依赖于已知的物体而失去了灵活性。家庭机器人面对家里越来越多的东西需要一种非训练且效果很好的分割法。 Object Partitioning using Local Convexity 一文的作者从古籍中(也不老,1960s左右吧),找到了一种基于凹凸性的分割方法。实际上基于凹凸的图像理解在之前是被研究过的,但是随着神经网络的出现,渐渐这种从明确物理意义入手的图像"理解"方法就被淹没了。对于二维图像而言,其凹凸性较难描述,但对于三维图像而言,凹凸几乎是与生俱来的性质。 2.LCCP方法    LCCP是Locally Convex Connected Patches的缩写,翻译成中文叫做 ”局部凸连接打包一波带走“~~~算法大致可以分成两个部分:1.基于超体聚类的过分割。2.在超体聚类的基础上再聚类。超体聚类作为一种过分割方法

PCL—低层次视觉—点云分割(超体聚类)

心不动则不痛 提交于 2019-12-25 01:58:13
1.超体聚类——一种来自图像的分割方法   超体(supervoxel)是一种集合,集合的元素是“体”。与体素滤波器中的体类似,其本质是一个个的小方块。与之前提到的所有分割手段不同,超体聚类的目的并不是分割出某种特定物体,其对点云实施过分割(over segmentation),将场景点云化成很多小块,并研究每个小块之间的关系。这种将更小单元合并的分割思路已经出现了有些年份了,在图像分割中,像素聚类形成超像素,以超像素关系来理解图像已经广为研究。本质上这种方法是对局部的一种总结,纹理,材质,颜色类似的部分会被自动的分割成一块,有利于后续识别工作。比如对人的识别,如果能将头发,面部,四肢,躯干分开,则能更好的对各种姿态,性别的人进行识别。   点云和图像不一样,其不存在像素邻接关系。所以,超体聚类之前,必须以八叉树对点云进行划分,获得不同点团之间的邻接关系。与图像相似点云的邻接关系也有很多,如面邻接,线邻接,点邻接。其具体解释如下图:   基于超体聚类的点云分割,使用点邻接(蓝色)作为相邻判据。 2.超体聚类的实现步骤  举个简单的例子来体会下超体聚类,其过程和结晶类似。但不是水结晶成冰,而是盐溶液过饱和状态下的多晶核结晶。所有的晶核(seed)同时开始生长,最终填满整个空间,使物质具有晶体结构。  超体聚类实际上是一种特殊的区域生长算法,和无限制的生长不同

数据挖掘——层次聚类(Hierarchical clustering)学习及python实现

被刻印的时光 ゝ 提交于 2019-12-24 18:49:17
文章目录 一、前言 二、自底向上的层次算法 三、 python实现层次聚类 四、使用Sklearn中的层次聚类 五、使用Scipy库中的层次聚类 (1). linkage(y, method=’single’, metric=’euclidean’) (2).fcluster(Z, t, criterion=’inconsistent’, depth=2, R=None, monocrit=None) 六、层次聚类的优缺点 参考资料: 一、前言   层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。层次聚类算法相比划分聚类算法的优点之一是可以在不同的尺度上(层次)展示数据集的聚类情况。   根据创建聚类树有的两种方式:自下而上合并和自上而下。基于层次的聚类算法可以分为:凝聚的(Agglomerative)或者分裂的(Divisive)。 自下而上法就是一开始每个个体(object)都是一个类,然后根据linkage寻找同类,最后形成一个“类”。 自上而下法就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。   这两种路方法没有孰优孰劣之分

“机器学习实战”刻意练习——聚类问题:K均值聚类

天涯浪子 提交于 2019-12-24 04:13:54
一、概述 聚类 是一种无监督的学习,它将相似的对象归到同一个簇中。 聚类方法几乎可以应用于所有对象,簇内的对象 越相似 ,聚类的效果越好。 K均值(K-means)聚类算法 可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。 在介绍K-均值算法之前,先讨论一下 簇识别(cluster identification) 。 簇识别给出 聚类结果的含义 。 假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么。 聚类与分类的最大不同在于,分类的目标事先已知,而聚类则不一样。 因为其产生的结果与分类相同,而只是 类别没有预先定义 ,聚类有时也被称为 无监督分类(unsupervisedclassification )。 聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。 相似 这一概念取决于所选择的相似度计算方法。到底使用哪种相似度计算方法取决于具体应用。 优缺点 优点:容易实现。 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。 适用数据类型 数值型数据 K-均值聚类的一般流程 (1) 收集数据:使用任意方法。 (2) 准备数据:需要数值型数据来计算距离,也可以将 标称型数据映射为二值型数据 再用于距离计算。 (3) 分析数据:使用任意方法。 (4) 训练算法:不适用于无监督学习,即 无监督学习没有训练过程 。 (5) 测试算法