质心

ML08 -- 聚类算法K-means

老子叫甜甜 提交于 2019-12-29 20:34:47
聚类算法K-means K-means最简单的聚类算法属于无监督算法 聚类算法和分类算法的对比 - 聚类 分类 核心 将数据分成多个组,探索每个组的数据是否有联系 从已经分组的数据中去学习,把新数据放到已经分好的组中去 学习类型 无监督,无需标签进行训练 有监督,需要标签进行训练 典型算法 K-Means,DBSCAN,层次聚类 决策树,贝叶斯,逻辑回归 算法输出 聚类结果是不确定的, 不一定总是能够反映数据的真实分类, 同样的聚类,根据不同的业务需求,可能是一个好结果,也可能是一个坏结果 分类的结果是确定的, 分类的优劣是客观的, 不是根据业务或算法需求决定 关键概念:簇与质心 簇:KMeans算法将一组N个样本的特征矩阵X划分为K个无交集的簇,直观上来看簇是一组一组聚集在一起的数据,在一个簇中的数据就认为是同一类。簇是聚类结果的表现。 质心:簇中所有数据的均值uj通常被称为这个簇的质心,在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。同理可推广到高维空间。 在KMeans算法中,簇的个数K是一个超参数,需要我们人为输入来确定。KMeans的核心任务就是根据我们设定好的K,找出K个最优质心,并将离这些质心最近的数据分别分配到这些质心代表的的簇中去。具体步骤 1.随机抽取K个样本作为最初的质心 2.开始循环: 2

机器学习实战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均值聚类

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

KMeans相关问题

爷,独闯天下 提交于 2019-12-15 14:42:50
文章目录 K-means k-means 聚类的原理 K-Means的优缺点及对应的改进 用 EM 算法推导解释 Kmeans KMeans的算法伪代码 KMeans算法的收敛 Kmeans 算法 K 怎么设置、适用什么样数据集 EM算法 tensorflow实现KMeans K-means k-means 聚类的原理 对于给定的样本集,按照样本之间的距离大小,将样本集划分成K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。 目标是最小化平方误差。定义样本与其所属类的中心之间的距离的总和最小 E = ∑ l = 1 K ∑ x ∈ C i ∣ ∣ x − μ i ∣ ∣ 2 E = \sum_{l = 1}^K \sum_{x \in C_i} ||x - \mu_i||^2 E = l = 1 ∑ K ​ x ∈ C i ​ ∑ ​ ∣ ∣ x − μ i ​ ∣ ∣ 2 其中 μ i \mu_i μ i ​ 是簇 C i C_i C i ​ 的均值或者中心,有时也称质心,表达式为: μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i=\frac{1}{|C_i|}\sum_{x \in C_i}x μ i ​ = ∣ C i ​ ∣ 1 ​ ∑ x ∈ C i ​ ​ x K-Means的优缺点及对应的改进 优点: 1) 原理比较简单,实现比较容易

K-Means 初始质心的选择

筅森魡賤 提交于 2019-12-11 16:01:47
1.随机选择 选择初始质心,我们可以用最基本的随机方法,但是这种方法会导致一个局部最优解问题。即,将一个比较大的簇分裂,同时将两个较小的簇进行合并。 由于K-Means算法具有不稳定性,初始质心选择不同,结果也不同。所以解决局部最优的方法,其一可以多次运行算法,选择具有最小SSE值的那组作为最终解。这种方法通过多次运行,通过尝试,来解决随机选择初始质心问题。 不过可以通过以下其他方法来寻找比较好的初始质心。 2.层次聚类 通过层次聚类,划分k个层次,计算出每个簇对应的质心作为K-Means算法的初始质心。这种方法可以很好地解决初始质心指派不合理的问题。但是也有局限性。 3.K-Means++ K-Means++算法是基本算法的改进版,其区别就在于初始质心的选择。 该算法第一个质心是随机选择的,接下来的质心基于样本点与最近质心的距离,距离越大越可能被选为下一个质心,直到选择完k个质心。 该方法有效地解决了关于初始质心的选取问题,目前已经成为了一种硬聚类算法的标准。但是该方法无法解决离群点问题。 4.基于最近邻密度 该方法通过检测样本点的样本密度和与之前质心的分散度来决定下一个质心。 链接:https://www.jianshu.com/p/4f8c097e26a8 来源: https://www.cnblogs.com/yoyowin/p/12022776.html

机器学习 - 算法 - 聚类 K-MEANS 算法

坚强是说给别人听的谎言 提交于 2019-12-05 13:36:20
聚类算法 概述 无监督问题   手中无标签 聚类   将相似的东西分到一组 难点   如何 评估 , 如何 调参 基本概念 要得到的簇的个数   - 需要指定 K 值 质心    - 均值, 即向量各维度取平均 距离的度量   - 常用 欧几里得距离 和 余弦线相似度 ( 先标准化 ) 优化目标   - 需求每个簇中的点, 到质心的距离尽可能的加和最小, 从而得到最优 K - MEANS 算法 工作流程 - (a)    初始图 - (b)    在指定了 K 值之后, 会在图中初始化两个点 红点, 蓝点( 随机质心 ) 这里 K 指定为 2 - (c)    然后对图中的每一个点计算是分别到红点以及蓝点的距离, 谁短就算谁的 - (d)    重新将红色蓝色区域计算质心 - (e)    根据重新计算的质心, 再次遍历所有点计算到两个新质点的距离对比划分 - (f)   按照之前的套路再次更新质点 就这样不断的更新下去, 直到所有的样本点都不再发生变化的时候则表示划分成功 优势 简单快速, 适合常规数据集 劣势 K 值难以决定 复杂度与样本呈线性关系 很难发现任意形状的簇 , 如下图 来源: https://www.cnblogs.com/shijieli/p/11925823.html

A--K-Means快速聚类

蓝咒 提交于 2019-12-05 06:34:55
聚类概述 皆在理解/探索数据的某些自然结构,商业上最有名的FRM(客户价值评估模型)就是聚类分析的一种数据处理,降维,数据离散压缩,有效的发现最近邻居等。 种类 1.K-Means:K均值是基于原型的,划分的聚类计数,它试图发现用户指定个数(K)的簇,(由质心代表) 2.层次聚类:把数据划分为又层次包含的簇,开始:每个点作为一个单点簇,然后重复的合并两个最相近的簇,知道产生一个包含所有点的簇 3.DBSCAN:这是一种产生划分聚类的基于密度的聚类算法,簇的个数由算法自动决定,低密度区域的点被视为噪声而忽略,因此它不产生完全分类 K-Means 原理:随机放入K个点,然后计算组内每一个点到这K个点的距离,将距离最近的点划分到K1所代表的簇中,划分成初始的K个簇,然后以K个簇为基础,分别求均值更新为质心,之后再计算所有点到质心的距离,更新点的所属簇,再次更新质心,重复迭代直到质心不在发生变化为止。 In [2]: import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt In [3]: iris = pd.read_csv('iris (1).txt', header=None) iris.shape Out[4]: (150, 5) In [6]:

K均值聚类算法

独自空忆成欢 提交于 2019-12-05 02:19:48
k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。 定义 聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。 k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。 算法 先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个初始聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:   1)没有(或最小数目)对象被重新分配给不同的聚类

线性二自由度汽车模型对前轮角阶跃输入的稳态响应分析(matlab/simulink)

折月煮酒 提交于 2019-12-04 19:56:00
线性二自由度汽车模型对前轮角阶跃输入的稳态响应分析(matlab/simulink) 一、线性二自由度汽车模型 为了便于掌握操纵稳定性的基本特性,我们将多自由度的整车模型简化成为二自由度模型。主要有以下假设: 忽略转向系统的影响,直接以前轮转角作为输入;不考虑悬架的作用,认为汽车相对于地面只作简单的平面运动,即汽车沿z轴的位移,绕y轴的俯仰角与绕x轴的侧倾角均为零;在分析中假设汽车沿x轴的速度不变。因此,汽车只有沿y轴的侧向运动与绕z轴的横摆运动这两个自由度。 此外,汽车的侧向加速度限定在0.4g以下,轮胎侧偏特性处于线性范围。对于运动微分方程建立还假设:忽略地面对轮胎作用产生轮胎侧偏特性的改变,没有空气动力的影响,也不考虑左右车轮转向时载荷变化而引起的轮胎特性的变化以及轮胎回正力矩的影响。这样所建立的模型如图1所示。 图1 分析时,令汽车的质心同车辆坐标系的原点相同。基于上述假设,可将汽车的转动惯量、质量分布系数等参数视为常数,这使得建立运动微分方程很方便。 建立二自由度汽车模型的运动微分方程主要需确定:汽车质心的加速度在车辆坐标系上的分量,二自由度汽车受到的外力与绕质心的外力矩,外力、外力矩与汽车运动参数的关系。 1.1 首先确定汽车质心的加速度在车辆坐标系上的分量 如图2所示: 图2 x、y为车辆坐标系的纵轴与横轴。在t时刻,质心速度在x轴上的分量为 u,在y轴上的分量为v

算法 - k-means算法

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