质心

8.机器学习之聚类算法

倾然丶 夕夏残阳落幕 提交于 2020-03-14 01:43:39
分类 是在一群已经知道类别标号的样本中,训练一种分类器,让其能够对某种未知的样本进行分类,分类算法属于一种有监督的学习。分类算法的分类过程就是建立一种分类模型来描述预定的数据集或概念集,通过分析由属性描述的数据库元组来构造模型。分类的目的就是使用分类对新的数据集进行划分,其主要涉及分类规则的准确性、过拟合、矛盾划分的取舍等。 ———————————————— 聚类 是在一群未知类别标号的样本上,用某种算法将他们分成若干类别,这是一种无监督学习。给定一组数据点,我们可以用聚类算法将每个数据点分到特定的组中,理论上属于同一组的数据点应该有相似的属性和/或特征,而属于不同组的数据点应该有非常不同的属性和/或特征。所以在给定的数据集中,我们可以通过聚类算法将其分成一些不同的组。 聚类是一种将数据点按一定规则分群(分组)的机器学习技术。其主要研究数据间逻辑上或物理上的相互关系。聚类分析本身不是一个特定的算法,而是要解决的一般任务。它可以通过各种算法来实现,这些算法在理解群集的构成以及如何有效地找到它们方面存在显着差异。由聚类所组成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此类似,与其他簇中的对象相异。其分析结果不仅可以揭示数据间的内在联系与区别,还可以为进一步的数据分析与知识发现提供重要依据。 监督学习: 当我们根据一组给定的预测因子变量或自变量去预测一个目标变量时

算法笔记- K均值(K-Means)

非 Y 不嫁゛ 提交于 2020-02-28 15:33:14
前言 本系列为机器学习算法的总结和归纳,目的为了清晰阐述算法原理,同时附带上手代码实例,便于理解。 目录    k近邻(KNN)    决策树    线性回归    逻辑斯蒂回归    朴素贝叶斯    支持向量机(SVM)    组合算法(Ensemble Method)    K-Means    机器学习算法总结 本章主要介绍无监督学习中的k-means,以及简单代码实现。 一、算法简介 k-Means算法是一种聚类算法,它是一种无监督学习算法,目的是将相似的对象归到同一个蔟中。蔟内的对象越相似,聚类的效果就越好。聚类和分类最大的不同在于,分类的目标事先已知,而聚类则不一样。其产生的结果和分类相同,而只是类别没有预先定义。 1.1 算法原理 设计的目的: 使各个样本与所在簇的质心的均值的误差平方和达到最小 (这也是评价K-means算法最后聚类效果的评价标准)。 1.2 算法特点 · 优点:容易实现 · 缺点:可能收敛到局部最小值,在大规模数据上收敛较慢 适合数据类型:数值型数据 1.3 聚类过程 1)创建k个点作为k个簇的起始质心(经常随机选择)。 2)分别计算剩下的元素到k个簇中心的相异度(距离),将这些元素分别划归到相异度最低的簇。 3)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均值。 4)将D中全部元素按照新的中心重新聚类。 5

5.1_非监督学习之sckit-learn

大憨熊 提交于 2020-02-26 09:42:19
非监督学习之k-means K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型。算法执行的过程分为4个阶段。 1.首先,随机设K个特征空间内的点作为初始的聚类中心。 2.然后,对于根据每个数据的特征向量,从K个聚类中心中寻找距离最近的一个,并且把该数据标记为这个聚类中心。 3.接着,在所有的数据都被标记过聚类中心之后,根据这些数据新分配的类簇,通过取分配给每个先前质心的所有样本的平均值来创建新的质心重,新对K个聚类中心做计算。 4.最后,计算旧和新质心之间的差异,如果所有的数据点从属的聚类中心与上一次的分配的类簇没有变化,那么迭代就可以停止,否则回到步骤2继续循环。 K均值等于具有小的全对称协方差矩阵的期望最大化算法 sklearn.cluster.KMeans class sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto') """ :param n_clusters:要形成的聚类数以及生成的质心数 :param init

PostGis ST_Centroid计算几何中心

橙三吉。 提交于 2020-02-26 02:47:11
原文地址: https://postgis.net/docs/ST_Centroid.html 概要 geometry ST_Centroid ( 几何 g1 ) ; geography ST_Centroid ( 地理 g1,布尔 use_spheroid = true ) ; 描述 计算几何的几何中心,或等效地将几何的质心计算为 POINT 。对于[ MULTI ] POINT ,将其计算为输入坐标的算术平均值。对于[ MULTI ] LINESTRING ,将其计算为每个线段的加权长度。对于[ MULTI ] POLYGON ,“重量”是根据面积来考虑的。如果提供了空的几何体, GEOMETRYCOLLECTION 则返回一个空 的。如果 NULL 提供, NULL 则返回。如果 提供 CIRCULARSTRING 或 COMPOUNDCURVE ,则首先将它们转换为CurveToLine的线串,然后与 LINESTRING 2.3.0中的新功能:支持 CIRCULARSTRING 和 COMPOUNDCURVE (使用CurveToLine) 可用性:2.4.0引入了对地理的支持。 质心等于最大维的组件几何的集合的质心(因为较低维的几何对质心的贡献为“零”)。 此方法实现了 SQL 1.1 的 OpenGIS简单功能实现规范。 此方法实现SQL / MM规范。SQL-MM

【论文阅读笔记】PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

一个人想着一个人 提交于 2020-02-24 05:09:55
PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space (一)论文地址: (二)核心思想: (三)生成点集的重叠分区: (四)问题陈述: (五)回顾 PointNet: (六)分层点集特征学习: 6.1 Sampling Layer: 6.2 Grouping Layer: 6.3 PointNet Layer: (七)Density Adaptive PointNet Layers: 7.1 MSG: 7.2 MRG: (八)PointNet++ 用于语义分割: (九)实验结果: (一)论文地址: https://arxiv.org/abs/1706.02413 (二)核心思想: PointNet 是深度学习应用于点云识别和分割的先驱,它使用了无序的点云集合输入,采用 MLP 输出每个点的特征,最后通过最大池化层聚合整体特征; 但是这也导致了一个问题——PointNet 无法感知 3D 物体的局部特征,在复杂场景下 PointNet 的感知能力较差; 因此作者在 PointNet 的基础上,引入了一个层级神经网络(Hierarchical Neural Network),递归地将 PointNet 应用于点集的嵌套分区,即及将 PointNet 作为基本模块

地图点聚合优化方案

拈花ヽ惹草 提交于 2020-02-20 17:02:20
http://www.cnblogs.com/LBSer/p/4417127.html 一、为什么需要点聚合 在地图上 查询结果通常以标记点的形式展现,但是如果标记点较多,不仅会大大增加客户端的渲染时间,让客户端变得很卡,而且会让人产生密集恐惧症(图1)。为了解决这一问题,我们需要一种手段能在用户有限的可视区域范围内,利用最小的区域展示出最全面的信息,而又不产生重叠覆盖。 图1 二、已尝试的方案---kmeans 直觉上用聚类算法能较好达成我们目标,因此采用简单的kmeans聚类。根据客户端的请求,我们知道了客户端显示的范围,并到索引引擎里取出在此范围内的数据,并对这些数据进行kmeans聚类,最后将结果返回给客户端。 但是上线之后发现kmeans效果并不如意 , 主要有以下两个缺点 。 a)性能问题 kmeans是计算密集型算法,需要迭代多次才能完成,而且每次迭代过程中都涉及到复杂的距离计算,比较消耗cpu。 我们在上线后遇到load较高的问题。 b)效果问题 kmeans未能彻底解决重叠覆盖问题!可以看到有些聚合后的图标会叠合在一起。 三、优化方案 再次回顾我们的目的: 我们需要一种手段能在用户有限的可视区域范围内,利用最小的区域展示出最全面的信息,而又不产生重叠覆盖。 3.1. 直接网格法 解决地理空间相关问题时,对空间划分网格这种方法往往屡试不爽。 原理

OpenCV目标跟踪之简单质心跟踪

主宰稳场 提交于 2020-02-07 08:07:01
1.质心跟踪算法工作原理 获取到待跟踪目标的边界框 计算质心分配ID 计算新质心与现有对象质心之间的距离(欧几里得距离) 更新现有对象坐标 若出现无关联的新质心,则添加为新对象 N个连续帧,旧对象不能与任何现有对象匹配关联则消掉 2.代码 2.1定义一个质心追踪器 CentroidTracking 类: from scipy . spatial import distance as dist from collections import OrderedDict import numpy as np class CentroidTracking ( ) : def __init__ ( self , maxDisappeared = 50 ) : # 达到最大连续帧数删除 self . maxDisappeared = maxDisappeared # 分配ID self . nextObjectId = 0 # 对象字典 self . objects = OrderedDict ( ) self . disappeared = OrderedDict ( ) # 增加新对象函数 def register ( self , centroid ) : self . objects [ self . nextObjectId ] = centroid self .

《机器学习实战》笔记(十):Ch10 - 利用k-均值聚类算法对未标注数据分组

浪尽此生 提交于 2020-01-31 23:47:21
第10章 K-均值聚类算法([代码][ch10]) K-均值算法的优缺点 K-均值是发现给定数据集的 K 个簇的聚类算法, 之所以称之为 K-均值 是因为它可以发现 K 个不同的簇, 且每个簇的中心采用簇中所含值的均值计算而成. 簇个数 K 是用户指定的, 每一个簇通过其质心(centroid), 即簇中所有点的中心来描述. 聚类与分类算法的最大区别在于, 分类的目标类别已知, 而聚类的目标类别是未知的. 优点:容易实现 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢 使用数据类型 : 数值型数据 K-均值聚类算法 伪代码 创建 k 个点作为起始质心(通常是随机选择) 当任意一个点的簇分配结果发生改变时(不改变时算法结束) 对数据集中的每个数据点 对每个质心 计算质心与数据点之间的距离 将数据点分配到距其最近的簇 对每一个簇, 计算簇中所有点的均值并将均值作为质心 开发流程 收集数据:使用任意方法 准备数据:需要数值型数据类计算距离, 也可以将标称型数据映射为二值型数据再用于距离计算 分析数据:使用任意方法 训练算法:不适用于无监督学习,即无监督学习不需要训练步骤 测试算法:应用聚类算法、观察结果.可以使用量化的误差指标如误差平方和(后面会介绍)来评价算法的结果. 使用算法:可以用于所希望的任何应用.通常情况下, 簇质心可以代表整个簇的数据来做出决策. K-均值 的评价标准

无线传感器网络中的节点定位技术

徘徊边缘 提交于 2020-01-23 16:33:17
                    无线传感器网络中的节点定位技术   无线传感器网络的许多应用要求节点知道自身的位置信息,才能向用户提供有用的检测服务。没有节点位置信息的监测数据在很多场合下是没有意义的。比如,对于森林火灾检测、天然气管道监测等应用,当有事件发生时,人们关心的一个首要问题就是事件发生在哪里,此时如果只知道发生了火灾却不知道火灾具体的发生地点,这种监测没有任何实质的意义,因此节点的位置信息对于很多场合是至关重要的。   在许多场合下,传感器节点被随机部署在某个区域,节点事先无法知道自身的位置,因此需要在部署后通过定位技术来获取自身的位置信息。目前最常见的定位技术就是GPS(Global Positioning System)了,它能够通过卫星对节点进行定位,并且能够达到比较高的精度。因此要想对传感器节点进行定位,最容易想到的方法就是给每个节点配备一个GPS接收器,但是这种方法不适用于传感器网络,主要原因有以下几点:   1)GPS接收器通常能耗高,而对于无线传感器网络中的节点来说,一般能耗很有限,给每个节点配备一个GPS接收器会大大缩短网络寿命;   2)GPS接收器成本比较高,给无线传感器网络中的每个节点配备一个GPS接收器,需要投入很大成本,尤其对于大规模的无线传感器网络来说不是很适合;   因此有必要研究适合无线传感器网络的定位技术

机器学习task_05聚类

一个人想着一个人 提交于 2020-01-21 09:15:00
1.相关概念(无监督学习、聚类的定义) 2.性能度量(外部指标、内部指标) 3.距离计算 4.原型聚类 K均值 LVQ 5.高斯混合聚类 层次聚类 AGNES 自顶而下 6.密度聚类 DBSCAN 其他密度聚类算法 7.优缺点 8.sklearn参数详解  聚类分析是按照个体的特征将他们分类,让同一个类别内的个体之间具有较高的相似度,不同类别之间具有较大的差异性 聚类分析属于无监督学习 聚类对象可以分为Q型聚类和R型聚类 Q型聚类:样本/记录聚类 以距离为相似性指标 (欧氏距离、欧氏平方距离、马氏距离、明式距离等) R型聚类:指标/变量聚类 以相似系数为相似性指标 (皮尔逊相关系数、夹角余弦、指数相关系数等) 二、常用的聚类算法 K-Means划分法 层次聚类法 DBSCAN密度法 1、K-Means划分法 K表示聚类算法中类的个数,Means表示均值算法,K-Means即是用均值算法把数据分成K个类的算法。 K-Means算法的目标,是把n个样本点划分到k个类中,使得每个点都属于离它最近的质心(一个类内部所有样本点的均值)对应的类,以之作为聚类的标准。 算法原理见 http://www.aboutyun.com/thread-18178-1-1.html【转】 K-Means算法的计算步骤 取得k个初始质心:从数据中随机抽取k个点作为初始聚类的中心,来代表各个类