文本聚类分析算法_Kmeans 算法实现二维数据聚类
所谓聚类分析,就是给定一个元素集合D,其中每个元素具有n个观测属性,对这些属性使用某种算法将D划分成K个子集,要求每个子集内部的元素之间相似度尽可能高,而不同子集的元素相似度尽可能低。聚类分析是一种无监督的观察式学习方法,在聚类前可以不知道类别甚至不用给定类别数量。目前聚类广泛应用于统计学、生物学、数据库技术和市场营销等领域。
聚类算法有很多种,如K-means(K均值聚类)、K中心聚类、密度聚类、谱系聚类、最大期望聚类等。这里我们重点介绍K-means聚类算法,该算法的基本思想是以空间中K个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。K-means算法实现简单、计算速度快、原理易于理解、具有理想的聚类效果,因此该算法是公认的经典数据挖掘方法之一。
例如对于常见的二维数据集,设计K-means聚类方法,对80个二维数据点进行聚类分析。K-means算法的Python语言实现及处理过程如下:
如下图所示的80个二维样本数据集,存储为testSet文本文档。经过数据预处理和简单分析,得知该数据集共有4个类别,因而能确定聚类数K为4。
首先导入必要的模块:
import kmeans
(1) 从文件加载数据集
构建数据矩阵,从文本中逐行读取数据,形成供后继使用的数据矩阵。
dataSet=[]fileIn=open('testSet.txt')for line in fileIn.readlines(): lineArr=line.strip().split('\t') dataSet.append([float(lineArr[0]),float(lineArr[1])])
(2) 调用kmeans算法进行数据聚类
通过以下命令调用设计的kmeans模块,进行数据聚类。
dataSet=np.mat(dataSet)k=4centroids,clusterAssment=kmeans.kmeanss(dataSet,k)
kmeans模块主要包含如下几个函数。
距离度量函数。这里使用的是欧氏距离,计算过程如下:
def eucDistance(vec1,vec2):
初始聚类中心选择。从数据集中随机选择K个数据点,用作初始聚类中心。
def initCentroids(dataSet,k): numSamples,dim=dataSet.shape
K-Means 聚类算法。该算法会创建k个质心,然后将每个点分配到最近的质心,再重新计算质心。这个过程重复数次,直到数据点的簇分配结果不再改变位置。
def kmeanss(dataSet,k):
聚类结果显示。将聚类划分在的不同簇的数据,用不同的颜色和符号进行显示,同时画出最终的聚类中心。
def showCluster(dataSet,k,centroids,clusterAssement):
(3) 聚类结果显示
对80个二维数据,使用K-means方法进行聚类,聚类结果如图13-5所示,迭代后的聚类中心用方形表示,其他数据用不同颜色的原点表示。
图:二维数据的聚类结果
留言回复你在机器学习方面做过哪些有趣的应用,我们会在留言中随机抽取一位读者免费送出北京大学出版社出版的《Python 3 数据分析与机器学习实战》图书一本。
热 门 推 荐为你的Python程序加密用Python开发计时器程序用Python爬取WordPress官网所有插件用OpenCV和OCR识别图片中的表格数据推荐Python中文社区旗下的几个服务类公众号
文本聚类分析算法_Kmeans 算法实现二维数据聚类相关推荐
- K-means 算法实现二维数据聚类
所谓聚类分析,就是给定一个元素集合D,其中每个元素具有n个观测属性,对这些属性使用某种算法将D划分成K个子集,要求每个子集内部的元素之间相似度尽可能高,而不同子集的元素相似度尽可能低.聚类分析是一种无 ...
- 【数据挖掘】K-Means 二维数据聚类分析 ( K-Means 迭代总结 | K-Means 初始中心点选择方案 | K-Means 算法优缺点 | K-Means 算法变种 )
文章目录 K-Means 二维数据 聚类分析 数据样本及聚类要求 二维数据曼哈顿距离计算 K-Means 算法 步骤 第一次迭代 : 步骤 ( 1 ) 中心点初始化 第一次迭代 : 步骤 ( 2 ) ...
- 【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★
文章目录 一. K-Means 聚类算法流程 二. 二维数据的 K-Means 聚类 1. 第一次迭代 2. 第二次迭代 参考博客 : [数据挖掘]聚类算法 简介 ( 基于划分的聚类方法 | 基于层次 ...
- 算法笔记-螺旋输出二维数组
算法笔记-螺旋输出二维数组 1.思路:二维数组看做一个坐标,遍历者当成一个人,那么我们定义这个人的位置,以及当前面朝的方向,还有这个人转向次数.初始位置,人在(x,y)=(0,0)处,面向右方,右方的 ...
- 数据挖掘经典十大算法_K-Means算法
数据挖掘经典十大算法_K-Means算法 一.从故事理解K-Means Clustering Algorithm 1.有四个牧师去郊区布道,一开始牧师们随意选了几个布道点,并且把这几个布道点的情况公告 ...
- iterp2函数--------二维数据内插值
[语法说明] 1.zi=interp1(x,y,z,xi,yi):返回矩阵zi,其元素包含对应于参量xi和yi的元素.用户可以输入行向量和列向量xi和yi,此时,输出向量zi与矩阵meshgrid(x ...
- Python-深度学习-学习笔记(13):keras搭建卷积神经网络(对二维数据进行一维卷积)
Python-深度学习-学习笔记(13):keras搭建卷积神经网络(对二维数据进行一维卷积) 卷积神经网络进行图像分类是深度学习关于图像处理的一个应用,卷积神经网络的优点是能够直接与图像像素进行卷积 ...
- 用Numpy和Pandas分析二维数据笔记
用Numpy和Pandas分析二维数据 上节课,我们利用numpy和pandas分析了一维数据.在这节课中,你将学到这两种库的更多特性.并用它们来分析 二维数据,这节课后,你将能够使用pandas重新 ...
- Deep learning:十一(PCA和whitening在二维数据中的练习)
前言: 这节主要是练习下PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的.参考的资料是:Exercise:PCA in ...
最新文章
- HAproxy七层负载均衡——环境搭建及实现过程详解
- 信号与系统 2022 春季学期第一次作业-作业题目准备
- java unicode补充字符带来的码点和代码单元问题
- 并发和在线用户数的思考
- AB1601的AD转换注意事项
- 新编辑神器,可以在终端运行 Jupyter Notebook 了!
- fcpx插件:Cinematic Tracking Title for Mac电影字幕标题动画
- VS2010+Opencv249 图像叠加 添加水印
- Centos6.8下SVN安装
- CentOS 7.6+mysql5.7 设置mysql开机自启动。
- 逍遥android模拟器设置,逍遥安卓模拟器最佳设置电脑上玩手游流畅不卡多开更好用...
- Java基础学习总结(176)——JDK 16 正式发布,一次性发布 17 个新特性
- php网页设计设计心得体会,网页设计心得体会范文
- 计算机应用基础 电子科技大学出版社,大学计算机基础课本答案(电子科技大学出版社)...
- lisp全部文本改宋体字型_如何将CAD里面的文字一下全改成宋体 CAD2014中如何将图...
- Hibernate 、继承关联映射
- css 怎么让图片一直旋转
- 为何C语言如此强大?到底可以做什么?
- jetson nano opencv 打开 CSI摄像头_OpenCV基础操作-读取、几何变换、阈值
- 无法访问计算机请检查名称的拼写,Win7访问共享文件夹提示“请检查名称的拼写”怎么办?...
热门文章
- Aspose.CAD for Java 20.1版-SEO狼术
- 什么是segmented control
- word中html的emz和wmz区别,各文件的MIME类型
- 与商超便利店巨头内卷“即时零售”
- Thinkpad x1 carbon 2022,2021 各个版本CPU性能对比
- 微服务之熔断、限流、降级 三板斧
- 百度脑图,唯一不黑的百度产品
- 互联网金融-众筹网站收集(转)
- 元年科技2022回顾:奋楫扬帆数字化,转型升级立潮头
- P7259 [COCI2009-2010#3] SORT 题解