聚类划分方法

给定n个数据点的数据集合,构建数据集合的出K个划分,每个划分代表一个类别,2<k<sqrt(n)。算法思想,划分法需要预先指定聚类数目和聚类中心,计算每个点与其他点的距离,对于每个数据点都有n-1个距离值,对这些距离值进行排序,找出最接近的数据点,算出这些距离的和值。并进行下次迭代,这时数据中兴点位置改变,继续按照上方的步骤,逐步降低目标函数的误差值,直到目标函数值收敛时,得到最终聚类的结果。逐步对聚类结果进行优化、不断将目标数据集向各个聚类中心进行重新分配以获最优解。代表算K-means,K-medoids.(公式乱码,用文字代替)

setp1:指定K个聚类中心

setp2:(每一个数据点与初始聚类中心的距离)

setp3:(对每一个数据点x,找到最近的C(聚类中心),x分配到新的类C中)

setp4:(更新聚类中心点)

setp5:(计算每一类的偏差)

setp6:判断偏差是否小于阈值(自己设定),不小于则返回setp2

当聚类是密集的,而聚类之间区别明显时,K—Means算法的效果较好。另外,对处理大数据集,该算法是高效率的,因为它的复杂度是,其中,n是所有对象的数目,K是聚类的数目,t是迭代的次数。通常且。但是,K—Means算法只有在聚类的平均值被定义的情况下才能使用。如果处理符号属性的数据并不适用。K—Means算法对初始聚类中心和样本的输入顺序敏感,对于不同的初始聚类中心和样本输入顺序,聚类结果会有很大差别。由于采用迭代更新的方法,所以当初始聚类中心落在局部值最小附近时,算法容易生成局部最优解。另外,算法的效果受孤立点的影响很大。

优点:1简单,易于理解和实现;2,时间复杂度低3.聚类中心用各类别中所有数据的平均值表示k-means方法的缺陷1,需要对均值给出定义,2,需要指定要聚类的数目;3,一些过大的异常值会带来很大影响;4,算法对初始选值敏感;5,适合球形聚类6.结果好坏依赖于对初始聚类中心的选择、容易陷入局部最优解、对K值的选择没有准则可依循、只能处理数值属性的数据、聚类结构可能不平衡。

简单说下:k-means和K-medoids区别,k-means聚类中心在空间上(也就是可能是在数据上,也可能不再数据上),K-medoids呢,聚类中心要求在数据上

简单实现k-means

from sklearn.cluster import KMeans
from sklearn import datasets
from dask.array.learn import predict
import numpy as np
iris = datasets.load_iris()
X = iris.data
y = iris.target
clf=KMeans(n_clusters=3)
model=clf.fit(X)
predicted=model.predict(X)
#设置区间
print(predicted)
k2y = np.array([0,1,2]) #
print(k2y[predicted])
print((k2y[predicted] == y).astype(int).mean())

好的这样做出来精确度为89.3%,聚类算法受到初始点的影响很大,初始点选取的好坏直接影响我们聚类精度。这是初始k-means ,当然可以改进算法,加核。。。。(这里不阐述)

转载于:https://www.cnblogs.com/zhangtaosx/p/7388627.html

聚类算法之划分方法(k-means)相关推荐

  1. k均值聚类算法优缺点_Grasshopper实现K均值聚类算法

    本文很长很长,有很多很多图,包含以下部分: 1.算法简介 2.如何分类平面点 3.如何分类空间点 4.如何分类多维数据 5.后记 提醒:以下内容包括:智障操作,无中生友,重复造轮子 等 1.算法简介 ...

  2. 聚类算法总结 划分法,层次聚类,基于网格,基于密度,谱聚类,基于模型,模糊聚类

    划分法: K-means:随机选择k个类的初始中心,对每一个样本都求解到k个中心点的距离,将它归类到距离最短的中心所在的类别.通过计算与类别内样本平均距离最小的点作为新的中心点.直到类别的聚类中心点不 ...

  3. k均值聚类算法考试例题_KMeans (K均值)算法讲解及实现

    算法原理 KMeans算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标 ...

  4. 机器学习算法(7)——K近邻(KNN)、K-means、模糊c-均值聚类、DBSCAN与层次与谱聚类算法

    1.K-近邻算法(KNN)概述 (有监督算法,分类算法) 最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类.但是怎么可能 ...

  5. 数据分析——K-Means(K均值聚类算法)——糖潮丽子

    申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师. 讲师介绍:梁老师 <细说Java>与<Java深入解析>图书作者.一线互联网资深数据分析专家,超过十年软件开 ...

  6. 聚类算法之K均值聚类

    K-Means聚类方法 1. 介绍 k均值聚类是基于样本集合划分的聚类算法.由于每个样本在划分的过程中只能属于一个类别,所以k-Means算法属于硬聚类. 2. 算法过程 k均值聚类算法是一个迭代的过 ...

  7. 【模式识别】K均值聚类算法应用实验报告及MATLAB仿真

    一. 实验目的 1.掌握K均值聚类算法的原理和实现过程: 2.掌握K均值聚类算法的应用方法. 二. 实验内容 1.彩色图像分割 选择一幅图像,分别按三种颜色数进行彩色图像分割的结果(原图和分割图).步 ...

  8. 机器学习算法-10贝叶斯信念网络、聚类算法、基于密度的方法DBSCAN

    贝叶斯信念神经网络 bayes belief network (BNN), 朴素贝叶斯分类器需要特征之间相互独立的强条件,制约了模型的适用, 用有向无环图表达变量之间的依赖关系,变量用节点表示,依赖关 ...

  9. Python金融数据挖掘 第11章 复习思考题1 (聚类)给出一个数据集data_multivar.txt,里面有200个点坐标,在平面坐标系下可以画出它的散点图,用K均值聚类算法来训练模型,分4类。

    1.题目 给出一个数据集data_multivar.txt,里面有200个点坐标,在平面坐标系下可以画出它的散点图,如图11-12所示. data_multivar.txt 图11-12 数据集 da ...

  10. 【算法】K-Means聚类算法(k-平均或k-均值)

    1.聚类算法和分类算法的区别 a)分类 分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类. 举例: 假如你有一堆 ...

最新文章

  1. HTML 标签包含规范,规避脱标流,图片和文字垂直居中对齐,
  2. TensorFlow 2.0开发者预览版发布
  3. [转] 如何从多份Java/JEE工作中进行抉择
  4. 升级 | Fastjson 1.2.68 发布,支持 GEOJSON
  5. Keras实现seq2seq案例代码:Bi-LSTM
  6. 手把手教你使用CocoaPods管理你的iOS第三方开源类库
  7. python中函数type可以测试对象类型_python类型检测最终指南--Typing模块的使用
  8. Ansible中的playbook详解
  9. 学习经验浅谈——论做学习笔记的重要性
  10. jsp与php学哪个2015年,PHP和jsp哪个好学呢?
  11. 设计一个扩展自抽象类geometricobject的新的triangle类_面向对象设计原则之开放封闭原则(开闭原则OCP)...
  12. FLASH的知识【转】
  13. 整数倒转问题的算法实现
  14. lambda java 接口_lambda – Java 8中的功能接口是什么“功能形状”?
  15. ValueAnimator 使用注意事项
  16. bzoj千题计划152:bzoj3405: [Usaco2009 Open]Grazing2 移动牛棚
  17. html微博登录代码,微博第三方登陆js实现
  18. 算法 - 程序的灵魂
  19. HTML计算平均成绩,成绩平均分怎么算
  20. 分布式缓存(Redis)连杀

热门文章

  1. 222.完全二叉树的节点个数
  2. Nginx概述(1)----应用场景,出现原因,优点,组成
  3. 数据分块算法java_分块查询算法(JAVA)
  4. chpater 2 : InnoDB存储引擎
  5. linux常见命令用法之(一)
  6. 【POJ 1733】Parity game【带权并查集维护奇偶】
  7. 【POJ3784】【对顶堆 — 动态维护中位数】Running Media
  8. 泛型的意义与通配符理解
  9. 快速突破算法之位运算
  10. java反射 泛型类型_【译】9. Java反射——泛型