质心

机器学习入门笔记聚类算法

梦想与她 提交于 2020-01-20 01:22:56
sklearn # 聚类前 X = np . random . rand ( 100 , 2 ) plt . scatter ( X [ : , 0 ] , X [ : , 1 ] , marker = 'o' ) plt . show ( ) # 聚类后 kmeans = KMeans ( n_clusters = 2 ) . fit ( X ) label_pred = kmeans . labels_ plt . scatter ( X [ : , 0 ] , X [ : , 1 ] , c = label_pred ) plt . show ( ) k均值聚类 # -*- coding: UTF-8 -*- import matplotlib . pyplot as plt import numpy as np def distEclud ( vecA , vecB ) : ''' 欧氏距离计算函数 :param vecA: :param vecB: :return: float ''' dist = 0.0 # ========= show me your code ================== # here dist = np . sqrt ( np . sum ( vecA - vecB ) ** 2 ) # ========= show me your

聚类算法(二)

北城以北 提交于 2020-01-19 20:31:45
7.算法优化 k-means算法小结 优点: 1.原理简单(靠近中心点),实现容易 2.聚类效果中上(依赖k的选择) 3.空间复杂度o(N), 时间复杂度o(I K N) 缺点: 1.对离群点,噪声敏感 2.很难发现大小差别很大的簇及进行增量计算 3.结果不一定是全局最优,只能保证局部最优(这个与K的个数和初值的选取有关) Canopy算法小结 优点: 1.K-means对噪声抗干扰弱,通过Canopy对比,将较小的NumPoing的Cluster直接去掉有利于抗干扰。 2.Canopy选择出来的k更精准 3.只是针对每个Canopy的内做K-means聚类,减少相似计算的数量 缺点: 算法中T1、T2的确定问题,依然可能落入局部最优解 K-means++ kmeans++目的,让选择的质心尽可能的分散 二分k-means 1.所有点作为一个簇 2.将该簇1分为2 3.选择能最大限度降低聚类代价函数(也就是误差平方和)的簇划分为两个簇 4.重复进行,知道簇的数目等于用给定的数目k为止 隐含的一个原则: 因为聚类的误差平方和能够衡量聚类性能,则该值越小表示数据点越接近质心,聚类效果越好。所以需要对误差平方和最大的簇再进行一次划分,因为误差平方和越大, 表示该簇聚类效果越不好,越有可能是多个簇被当成了一个簇,所以我们首先需要对这个簇进行划分。 二分K均值算法可以加速k

如何优化Kmeans?

廉价感情. 提交于 2020-01-11 04:21:50
想要知道如何优化Kmeans,首先得知道: 什么是Kmeans? Kmeans的优点; Kmeans的缺陷; 知道了以上这些知识点,我们才能针对性优化Kmeans。 Kmeans是一种非监督的聚类算法,首先选取K值,并随机初始化K个质心,计算每个样本与质心的相似度,将样本划分到距离其最近的一个质心的堆簇,然后计算每个堆簇的新的质心,迭代上述过程,直到质心没有新的变动。如果数据集很大,Kmeans的收敛速度会很慢。 Kmeans的算法流程 • 初始化常数K,随机选取初始点为质心 • 重复计算以下过程,直到质心不再改变 o 计算样本与每个质心之间的相似度,将样本归类到最相似的类中 o 重新计算质心 • 输出最终的质心以及每个类 Kmeans的优点: 非常简单,易于实现。 Kmeans的缺陷: K值需要预先选定,K值的选择对于最后的聚类效果影响非常大。需要一定的先验知识。 Kmeans对于质心的初始点位置敏感,不同的初始化位置会导致不同的聚类结果。 对离群点(异常点)敏感。 针对以上三个缺陷,提出如下三个优化方法: 针对K值选择,使用先验知识选取K的备选。 针对初始化质心,二分K-均值。具体:首先将数据集划分为一个群簇(整体),然后将其一分为二,最大限度降低聚类代价函数(误差平方和函数),形成两个群簇。迭代这个过程,直到群簇数量等于K值。 对数据集的异常样本做处理。 更多学习资料

UWB定位算法

丶灬走出姿态 提交于 2020-01-10 20:28:15
超宽带技术是采用极窄的脉冲信号实现无线通信,被称为脉冲无线电,其信号相对带宽不小于 0.2,绝对带宽不小于 500 MHz。根据经典雷达成像理论,距离分辨率 δ x 与信号宽度 T m 有如下关系:δ x =vT m /2,其中 v 是信号在传播介质中的传播速度。由此宽带特性可知,超宽带定位技术有极高的测距精度。其采用的脉冲宽度为纳秒或亚纳秒级,理论上可以获得厘米甚至毫米级的测距精度。由于 UWB 系统发射的是持续时间极短且占空比很低的窄脉冲,因此其多径信号在时间上可分离。此外,UWB 采用跳时扩频信号,系统具有较宽阔的频带,根据香农公式,信道容量 C 一定的情况下,高带宽可以降低信噪比。因此,UWB 具有很强的抗干扰性。 1、三边定位算法 三边测量法适合三个参考节点对一个未知节点实行定位,其通过未知节点与参考节点的距离公式列出三个数学关系式,进而求解需要定位的节点坐标。未知节点的位置计算原理如图2所示。设三个参考节点的坐标分别为 A(x 1 , y 1 )、B(x 2 , y 2 )、C(x 3 , y 3 ),未知节点 D 的坐标为 (x, y),该节点到 A、B、C 的距离分别为 r 1 、r 2 、r 3 ,由此可得式(1): 2、质心算法 质心算法是依靠节点互相通信找出与距离定位节点较近的参考节点,将这些参考节点构成的多边形区域的质心作为定位节点的位置估计,如图 3 所示

聚类分析 Python 自定义K-means函数(学习笔记)

余生长醉 提交于 2020-01-04 00:39:44
from numpy import * import matplotlib . pyplot as plt from math import sqrt #距离度量函数(欧氏距离) def eucDistance ( vec1 , vec2 ) : return sqrt ( sum ( power ( vec2 - vec1 , 2 ) ) ) #初始聚类中心选择 def initCentroids ( dataSet , k ) : numSamples , dim = dataSet . shape centroids = zeros ( ( k , dim ) ) for i in range ( k ) : index = int ( random . uniform ( 0 , numSamples ) ) centroids [ i , : ] = dataSet [ index , : ] return centroids #K-means聚类算法 #创建K个质心,再将每个数据点分配到最近的质心,然后重新计算质心 def kmeanss ( dataSet , k ) : numSamples = dataSet . shape [ 0 ] clusterAssement = mat ( zeros ( ( numSamples , 2 ) ) )

聚类算法之K-Means,K-Means++,elkan K-Means和MiniBatch K-Means算法流程

核能气质少年 提交于 2020-01-04 00:14:28
聚类问题是机器学习中无监督学习的典型代表,在数据分析、模式识别的很多实际问题中得到了应用。我们知道,分类问题是机器学习中最常见的一类问题,它的目标是确定一个物体所属的类别。分类问题和聚类问题一个最重要的区别在于分类问题有标签,学习过程实际就是程序不断学习各个标签特点的过程,而聚类问题是一种无监督学习问题,我们事先并不知道这些事物一共多少个类,每个事物的所属类别,我们需要让程序基于一定的规则,自动地将事物分为我们需要的类。 我们在进行聚类分析的时候,需要确定 无监督学习算法需要决定的三个问题: 1.分成几类? 2.样本之间的距离度量方式? 3.聚类策略? 下面,我们来看一些常用的聚类算法: 一、K-Means K-Means聚类又叫K均值聚类,是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。 K-Means算法过程: 1.输入数据 D = { x 1 , x 2 , x 3 , . . . , x m } D=

6. 聚类算法之K-Means

对着背影说爱祢 提交于 2020-01-01 16:10:19
有监督学习&无监督学习: 决策树,随机森林,PCA和逻辑回归,他们虽然有着不同的功能,但却都属于“有监督学习”的一部分,即是说,模型在训练的时候,即需要特征矩阵X,也需要真实标签y。 机器学习当中,还有相当一部分算法属于“无监督学习”,无监督的算法在训练的时候只需要特征矩阵X,不需要标签。而聚类算法,就是无监督学习的代表算法。 K-Means的定义: 作为聚类算法的典型代表,KMeans可以说是最简单的聚类算法没有之一,那它是怎么完成聚类的呢? 答: KMeans算法将一组N个样本的特征矩阵X划分为K个无交集的簇,直观上来看是簇是一组一组聚集在一起的数据,在一个簇中的数据就认为是同一类。簇就是聚类的结果表现。 簇中所有数据的均值通常被称为这个簇的“质心”(centroids)。 在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。同理可推广至高维空间。 簇的个数K是一个超参数,需要我们人为输入来确定。KMeans的核心任务就是根据我们设定好的K,找出K个最优的质心,并将离这些质心最近的数据分别分配到这些质心代表的簇中去。 K-Means的过程: 1 随机抽取K个样本作为最初的质心 2 开始循环: 2.1 将每个样本点分配到离他们最近的质心,生成K个簇 2.2 对于每个簇,计算所有被分到该簇的样本点的平均值作为新的质心

K-MEANS算法

有些话、适合烂在心里 提交于 2020-01-01 09:50:26
一、聚类思想 所谓聚类算法是指将一堆没有标签的数据自动划分成几类的方法,属于无监督学习方法,这个方法要保证同一类的数据有相似的特征,如下图所示: 根据样本之间的距离或者说是相似性(亲疏性),把越相似、差异越小的样本聚成一类(簇),最后形成多个簇,使同一个簇内部的样本相似度高,不同簇之间差异性高。 二、k-means聚类分析算法 相关概念: K值:要得到的簇的个数 质心:每个簇的均值向量,即向量各维取平均即可 距离量度:常用欧几里得距离和余弦相似度(先标准化) 算法流程: 1、首先确定一个k值,即我们希望将数据集经过聚类得到k个集合。 2、从数据集中随机选择k个数据点作为质心。 3、对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的集合。 4、把所有数据归好集合后,一共有k个集合。然后重新计算每个集合的质心。 5、如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们可以认为聚类已经达到期望的结果,算法终止。 6、如果新质心和原质心距离变化很大,需要迭代3~5步骤。 三、数学原理 K-Means采用的启发式方式很简单,用下面一组图就可以形象的描述: 上图a表达了初始的数据集,假设k=2。在图b中,我们随机选择了两个k类所对应的类别质心,即图中的红色质心和蓝色质心

k均值聚类

倾然丶 夕夏残阳落幕 提交于 2020-01-01 04:48:48
聚类 聚类是一种无监督的学习,它将相似的对象归到同一个簇中。其与分类的区别是分类的目标已知,而聚类所分的类别没有预先定义。 k均值聚类 K-均值是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其质心(centroid),即簇中所有点的中心来描述。 实现过程伪代码如下 创建k个点作为起始质心(经常是随机选择) 当任意一个点的簇分配结果发生改变时 ----对数据集中的每个数据点 --------对每个质心 ------------计算质心与数据点之间的距离 --------将数据点分配到距其最近的簇 ----对每一个簇,计算簇中所有点的均值并将均值作为质心 为了降低误差值,有人提出了二分k均值算法,实现伪代码如下 将所有点看成一个簇 当簇数目小于k时 ----对于每一个簇 --------计算总误差 --------在给定的簇上面进行K-均值聚类(k=2) --------计算将该簇一分为二之后的总误差 ----选择使得误差最小的那个簇进行划分操作 这个算法所含的数学原理很简单,很容易看懂 来源: CSDN 作者: path_0 链接: https://blog.csdn.net/weixin_45772508/article/details/103748974

视觉SLAM学习——视觉里程计VO

我只是一个虾纸丫 提交于 2019-12-31 16:01:15
视觉SLAM学习——视觉里程计VO 本文为个人学习视觉slam之后的一些片面的理解,希望能够对大家有所帮助 文章目录 视觉SLAM学习——视觉里程计VO 特征点法 ORB特征检测 1、FAST特征点提取(设提取n个角点): 2、对FAST角点构建图像金字塔实现尺度不变性 3、对角点采用灰度质心法实现旋转不变性 4、获得角点的BRIEF描述子 特征匹配 相机位姿T估计及3D点P的求取 1、2D到2D过程 1.1、位姿T的获取: 1.2、3D点P的获取 1.3、最后可加入深度滤波器对获得的深度进行滤波 2、3D到2D过程 2.1 直接线性变换DLT: 2.2 非线性优化(Bundle Adjustment) 3、3D到3D过程 3.1 ICP(迭代最近点) 3.2 非线性优化方法 光流法 1、保留特征点,但只计算关键点,不计算描述子 2、LK光流法 3、ICP或对极几何估计相机运动T 4、三角测量获得特征点3D坐标P 直接法 1、保留特征点,但只计算关键点,不计算描述子 2、最小化光度误差求解相机位姿T: 3、三角测量获得特征点3D坐标P 特征点法 ORB特征检测 这里仅仅介绍ORB特征点的提取的算法过程: 1、FAST特征点提取(设提取n个角点): 1.1、选取像素p,获得其亮度为Ip 1.2、设置阈值T(如:Ip的 20%) 1.3、以p为中心选取半径为3的圆上的16个像素点 1