数据挖掘之聚类

数据挖掘——聚类 《数据挖掘》国防科技大学 《数据挖掘》青岛大学 《数据挖掘与python实践》 数据挖掘之聚类 1. 划分聚类 K-means 每次聚类保证局部最优,随后调整聚类,利用局部最优聚类的上限来不断逼近全局最优。 采用距离作为相异度的评价指标,以簇内差异函数w©作为聚类质量的优化目标函数,即将所有数据 对象到它的簇中心点的距离平方和作为目标函数,算法寻找最优聚类的策略是使目标函数达到最小值(簇中心不变化等价于w©达最小)。 优点: ① k-means算法简单、经典,常作为其它聚类算法的参照或被改进。 ② k 阅读详情

聚类属于无监督学习。

聚类的算法有很多种,其可分为基于划分、层次、密度、网格及模型的聚类方法。

根据数据集的不同,需要采用不同的聚类算法和策略。


1. 选择聚类算法,所面临的常见问题又哪些?

1) 不同形状的数据集。不同形状的数据集,也需要采取不同的度量策略,或者不同的聚类算法。

2)不同的数据次序。相同数据集,但数据输入次序不同,也会造成聚类的结果的不同。

3)噪声。不同的算法,对噪声的敏感程度不同。


2. 在高维的欧式空间,什么是“维数灾难”?

在高维下,所有点对的距离都差不多(如欧式距离),或者是几乎任意两个向量都是正交(利用夹角进行进行度量),这样聚类就很困难。


3. 常见的聚类算法的策略有哪些?

1)层次或凝聚式聚类。采取合并的方式,将邻近点或簇合并成一个大簇。

2)点分配。每次遍历数据集,将数据分配到一个暂时适合的簇中,然后不断更新。


4. 层次聚类算法的复杂度是多少?

每次合并,都需计算出两个点对之间的距离,复杂度是O(n^2), 后续步骤的开销,分布正比与O((n-1)^2), O((n-2)^2)...,这样求和算下来,算法复杂度是O(n^3).

算法优化:采用优先队列/最小堆来优化计算。优先队列的构建,第一步需要计算出每两个点的距离,这个开销是O(N^2). 一般情况下,N个元素,单纯的优先队列的构建开销为O(N),若是N^2个距离值,则建堆的开销是O(N^2)。

第二步,合并,合并需要一个删除、计算和重新插入的过程。因为合并一个簇对,就需要更新N个元素,开销为O(N*logN)。总的开销为O((N^2) * logN).

所以,总的算法复杂度为O((N^2) * logN).


5. 欧式空间与非欧式空间下,常见的簇之间的距离度量有哪些?

欧式空间:

1)两个簇之间的质心之间的距离最小

2)两个簇中所有点之间的最短距离

3)两个簇之间所有点对的平均距离

4)将具有最小半径的两个簇进行合并, 簇的半径:簇内的点到质心的最大距离

5)将具有最小直径的两个簇进行合并,簇的直径:簇内任意两点间的最大距离


非欧式空间,簇的中心点定义,该点距离其他点的距离最近,如何计算?

1)该点到簇中其他所有点的距离之和(求和),1-范数

2)该点到簇中其他点的最大距离(最大值),无穷-范数

3)该点到簇中其他点的平方和(平方和),2-范数


6. k-means、k均值算法

点分配式的聚类算法。一般用于球形或凸集的数据集。

算法步骤如下:

1)初始化k个选择点作为最初的k个簇的中心

2)计算每个点分别到k个簇的中心,并将点分配到其距离最近的簇中

3)由分配的点集,分别更新每个簇的中心,然后回到2,继续算法,直到簇的中心变化小于某个阈值


7. k-means算法的两个问题?

1)初始化选择点;常用的方式是尽量选择距离比较远的点(方法:依次计算出与已确定的点的距离,并选择距离最大的点),或者首先采取层次聚类的方式找出k个簇

2)如何选取k值;k值选取不当,会导致的问题?当k的数目低于真实的簇的数目时,平均直径或其他分散度指标会快速上升

可以采用多次聚类,然后比较的方式。多次聚类,一般是采用1, 2, 4, 8...数列的方式,然后找到一个指标在v/2, v时,获取较好的效果,然后再使用二分法,在[v/2, v]之间找到最佳的k值。


8. CURE算法

使用场景:

任何形状的簇,如S形、环形等等,不需要满足正态分布,欧式空间,可以用于内存不足的情况

特征:

簇的表示不是采用质心,而是用一些代表点的集合来表示。


算法步骤:

1)初始化。抽取样本数据在内存中进行聚类,方法可以采用层次聚类的方式,形成簇之后,从每个簇中再选取一部分点作为簇的代表点,并且每个簇的代表点之间的距离尽量远。对每个代表点向质心移动一段距离,距离的计算方法:点的位置到簇中心的距离乘以一个固定的比例,如20%。

2)对簇进行合并。当两个簇的代表点之间足够近,那么就合并这两个簇,直到没有更足够接近的簇。

3)点分配。对所有点进行分配,即将点分配给与代表点最近的簇。


9. GRGPF算法

场景:

非欧式空间,可用于内存不足的情况(对数据抽样)

特征:

同时使用了层次聚类和点分配的的思想。

如何表示簇?

数据特征:簇包含点的数目,簇中心点,离中心点最近的一些点集和最远的一些点集,ROWSUM(p)即点p到簇中其他店的距离平方和。靠近中心的点集便于修改中心点的位置,而远离中心的点便于对簇进行合并。

簇的组织:类似B-树结构。首先,抽取样本点,然后做层次聚类,就形成了树T的结构。然后,从树T中选取一系列簇,即是GRGPF算法的初始簇。然后将T中具有相同祖先的簇聚合,表示书中的内部节点。

点的分配:对簇进行初始化之后,将每个点插入到距离最近的那个簇。

具体处理的细节更为复杂,如果对B-树比较了解,应该有帮助。


10. 流聚类,如何对最近m个点进行聚类?

N个点组成的滑动窗口模型,类似DGIM算法中统计1的个数。

1)首先,划分桶,桶的大小是2的次幂,每一级桶的个数最多是b个。

2)其次,对每个桶内的数据进行聚类,如采用层次聚类的方法。

3)当有新数据来临,需要新建桶,或者合并桶,这个类似于GDIM,但除了合并,还需要合并簇,当流内聚类的模型变化不是很快的时候,可以采取直接质心合并的方式。

4)查询应答:对最近的m个点进行聚类,当m不在桶的分界线上时,可以采用近似的方式求解,只需求出 包含m个点的最少桶 的结果


数据挖掘之聚类分析 聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。 与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型可以建立在无类标记的数据上,是一种非监督的学习算法。 聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将它们划分为若干组,划分的原则是组内距离最小化,而组间距离最大化。 聚类分析之前将数值大都为0的变量和相关性较高的变量删除掉。然后通过主成分分... 阅读详情

相关推荐

数据挖掘聚类算法

数据挖掘聚类算法

bgfuufb的博客 1811

各种聚类算法的介绍和比较

一、简要介绍1、聚类概念聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。 2、聚类和分类的区别聚类技术通常又被称为无监督学习,因为与监督学习不同,在聚类中那些表示数据类别的分类或者分组信息是没有的。 Clustering (聚类),

abc200941410128的博客 13万+

【闲谈】聚类算法的金融数据挖掘应用及实践

聚类算法的金融数据挖掘应用及实践

Liu_y_xin的博客 1848

聚类算法习题

假设数据挖掘的任务是将8个点聚类成3个簇, A1(2,10),A2(2,5),A3(8,4),B1(5,8),B2(7,5),B3(6,4),C1(1,2),C3(4,9),距离函数是欧几里得距离。假设初始选择A1,B1,C1分别作为每个聚类的中心,用k—平均算法来给出: 1.第一次循环执行后的三个聚类中心; 2.最后的三个簇。 答: 1.第一次循环执行后的三个聚类中心: 选取的三个点位A1(2,10),B1(5,8),C1(1,2),计算距离如下: 综上,可以绘制...

简简单单 2万+

如何用PHP实现聚类与数据挖掘

本文介绍了如何使用PHP实现聚类和数据挖掘,并提供了相关的代码示例。通过了解聚类和数据挖掘的基本概念、使用PHP进行数据处理和算法编写,我们可以更好地应用这些技术来处理和分析大量的数据。数据挖掘是从大量的数据中发现隐藏的模式、关联和异常之间的关系的过程。聚类算法会根据数据的相似性将数据分组,使得同一组内的数据更相似,而不同组之间的数据差异较大。聚类和数据挖掘是数据分析领域中常用的技术,可以帮助我们对大量数据进行分类和分析。注意:以上示例仅为演示用途,实际的算法和数据处理可能需要更复杂的实现和优化。

m0_73627566的博客 491

开源PACS系统Orthanc(DICOM服务器)配置

PACS(Picture Archiving and Communication System)是医学影像的数字化存储、检索和传输系统,用于管理和存储医学图像和相关信息,如放射学、核医学、超声、病理学等各种医学影像。PACS系统通过数字化技术取代了传统的胶片方式,使医疗机构能够更高效地存储、传输和查看医学图像,从而提高了医疗图像的管理和工作流程。

qq_42231043的博客 6249

聚类算法----之----(k-means)

1.基本k-means算法:     1:选择K个点作为初始质心     2:repeat     3:将每个点指派到最近的质心,形成K个簇     4:重新计算每个簇的质心     5:until 质心不发生变化 K-means聚类算法,整个算法中有两个量非常重要:K 和means(均值。K是指期望的簇的个数,是需要人为设定的参数;而means指的是簇的均值向量。 K-means聚

xiaoQL520的博客 1042

lattice 黑盒子的生成和使用(Creating Your Own Black Box Modules)

很多客户,特别是外包项目,需要做黑盒子,防止他人看到源码,那么这就需要对相关的源码打包加封了。diamond help 说的也是模糊模糊的,这次给出实际验证过的流程。 1.先将要加封的模块间一个工程,建好工程,写好代码之后,模块名字叫做crosslink(这个使用黑盒子的时候要用),代码如下: module crosslink( output wire[3:0] led, input wire clk, input wire reset ); reg [29:0] cnt; reg [3:0] led1;

qq_39633876的博客 1480

机器学习 K-means,聚类算法(简版) 分为两个聚类(两个簇)

@K-means,聚类算法(简) 分为两个聚类 用的是Spyder编辑器 用到绘图库 和numpy import numpy as np import matplotlib.pyplot as plt x=np.array([[1,2],[1.5,1.8],[5,8],[8,8],[1,0.6],[9,10]]) np.random.seed(5) x=np.random.rand(10000).reshape(-1,2) k=2 medoids=[x[1],x[2]] max_iter=100 fo

weixin_48133130的博客 1369

MATLAB实战:5步搞定GNSS单点定位解算(附完整代码)

本文提供了一份基于MATLAB的GNSS单点定位实战指南。通过5个核心步骤,详细讲解了如何从卫星坐标和伪距观测值出发,利用最小二乘迭代算法,构建并实现一个完整的单点定位解算器。文章附有完整代码,并涵盖精度评估与结果分析,适合GNSS初学者和MATLAB用户快速上手实践。

a2b3c4d5e的博客 249

Office LTSC 2021/2024专业部署:ODT+config.xml标准化实战

Office部署本质上是企业终端软件生命周期管理的关键环节,其核心原理在于通过声明式配置驱动安装、激活与组件裁剪。Office Deployment Tool(ODT)作为微软官方命令行引擎,配合config.xml这一DSL契约文件,实现可版本控制、可审计、可回滚的自动化交付。该方案技术价值突出体现在稳定性保障(如LTSC长期支持通道)、合规性强化(不绕过授权机制)及运维提效(批量部署、离线支持)。典型应用场景覆盖教育机房批量装机、政企终端标准化、医疗HIS工作站部署等对功能冻结与系统确定性要求严苛的环境

diaocuiguo2493的博客 557

聚类分析——聚类

聚类分析——聚类 定义:把数据对象划分成子集的过程,每个子集是一个簇,使得簇中的对象彼此相似,但与其他簇中对象彼此相异。 形成聚类的原则就是:使类内部的相似性最大,类间的相似性最小。 聚类方法: 1. 划分的方法(基于距离的) k-均值(k-means): 把N个对象划分成k个簇,用簇中所有对象的均值表示簇的中心点(质心); 通过欧式距离划分各个对象,并迭代使每个簇中...

万勇's Blog 2555

JavaScript - Blob / File / base64 使用场景介绍与相互转换

前言 本文首先介绍一下这三种对象使用场景,最后介绍下它们之间互转格式的解决方案。 您前端一旦涉及到文件或图片上传到服务器, 就势必离不了Blob/File/base64三种主流的类型。 Blob MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 您可以观察到,像一些图片处理插件(例如有名的vue-cropper)图片裁剪插件, 它们将图片处理完毕后,都将使用blob对象返回处理好的图片,供开发者用于上传服务器。

🏆 前端领域优质创作者 4491

数据挖掘——常用聚类算法总结

概述 数据挖掘常又被称为价值发现或者是数据勘探,一般是指从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的,人们事先不知道的、但又是潜在有用的信息和知识的过程。它是一种大量数据的高级处理方式。 常用的数据挖掘算法分为四大类:聚类、分类、关联以及推荐算法。另外还有一个预处理:降维算法 聚类算法 聚类是在一群未知类别标号的样本上,用某种算法将他们分成若干类别,这是一种无监督学...

神技圈子的博客 1万+

交通规划仿真软件:TransCAD_(7).公交系统规划与分析

通过TransCAD进行公交系统规划与分析,可以有效地评估公交网络的性能,优化线路设计,提高服务质量。数据准备、模型建立、仿真运行和结果分析是公交系统规划与分析的关键步骤。在实际应用中,规划者和分析师可以根据仿真结果提出具体的优化建议,不断完善公交系统的运行效率和乘客体验。

kkchenjj的博客 955

Unitree G1仿人机器人协同搬箱:从仿真搭建到多机协同部署完整指南

Unitree G1仿人机器人协同搬箱技术方案摘要 本文提供了一套完整的Unitree G1人形机器人协同搬箱解决方案,涵盖从仿真环境搭建到多机协同部署的全流程。核心内容包括: 双仿真环境配置:同时搭建Gazebo+ROS Noetic基础仿真环境与Isaac Gym+Mujoco高性能RL训练环境,支持Sim2Sim迁移验证 训练框架搭建:详细配置unitree_rl_gym框架,提供PPO算法定制化训练流程和参数优化方案 数据集应用:整合宇树开源真机数据集(UnifoLM-WBT-Dataset)~~~

huanghm88的专栏 471

数据挖掘的分类与聚类方法

1.背景介绍 数据挖掘是指从大量数据中发现新的、有价值的信息和知识的过程。它是人工智能领域的一个重要分支,涉及到数据库、统计学、机器学习、优化等多个领域的知识和技术。数据挖掘的主要目标是帮助用户更好地理解数据,从而提取出有价值的信息和知识,为决策提供支持。 聚类分析是数据挖掘中的一个重要技术,它的目标是根据数据中的相似性关系,将数据划分为多个不同的类别或群集。聚类分析可以帮助用户发现数据中的隐...

AI天才研究院 1215

层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理

本文内容 本文基于李宏毅老师对 Self-Attention 的讲解,进行理解和补充,并结合Pytorch代码,最终目的是使得自己和各位读者更好的理解Self-Attention 李宏毅Self-Attention链接: https://www.youtube.com/watch?v=hYdO9CscNes PPT链接见视频下方 通过本文的阅读,你可以获得以下知识: 什么是Self-Attention,为什么要用Self-Attention? Self-Attention是如何做的? Self-Atten

iioSnail的博客 2万+

Python数据挖掘实例:K均值聚类

Python数据挖掘实例:K均值聚类任务任务要求数据预览分析代码实现结果分析数据文件链接 任务 任务要求 数据文件链接在全文的最后 借助Python软件进行上市公司财务状况数据挖掘与统计分析。 已知:132只股票、32个因素变量的4个日期数据记录(共528条记录)。要求用数据挖掘软件分析如下问题: 抽取132只股票公司的财务指标数据中无缺失的指标变量数据,形成数据集X。所给数据已作一致化和无量纲化处理(压缩到[0,1])。 对每只股票,给出了4个日期下的31个指标的具体数值。可固定某一年度,对该年度下的样

chandler_scut的博客 4337

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数据挖掘中的分层聚类

假设集群 (B) 和集群 (C) 彼此非常相似,因此我们在第二步中将它们合并,类似于集群 (D) 和 (E),最后,我们得到集群 [(A)、(BC)、(DE)、(F)]在每次迭代中,集群都会与不同的集群合并,直到形成一个集群。我们根据算法重新计算接近度,并将两个最近的集群 ([(DE), (F)]) 合并在一起,形成新的集群,如 [(A), (BC), (DEF)]k 均值和分层聚类之间的主要区别在于 k 均值将数据划分为预定数量的聚类 (k),而分层聚类形成聚类层次结构,而无需事先确定聚类的数量。

jianqimingtian的博客 1261

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数据挖掘中的聚类算法综述

一、引言 所谓数据挖掘,就是从大量无序的数据中发现隐含的、有效的、有价值的、可理解的模式,进而发现有用的知识,并得出时间的趋向和关联,为用户提供问题求解层次的决策支持能力。 二、 DM中的现有的聚类算法 本文以聚类算法所采用的基本思想为依据将它们分为五类,即层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法以及用于高维数据的聚类算法。 ...

Morpheus2005的博客 987

数据挖掘-层次聚类

微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路 层次聚类(hierarchical clustering)算法极为简单:有N多节点,最开始认为每个节点为一类,然后找到距离最近的节点“两两合并”,合并后的两个节点的平均值作为新的节点,继续两两合并的过程,直到最后都合并成一类。 下图表明了聚类的过程,距离最近的节点合并(第一步中,如果有两对节点距离一样,那就同时合并) 层次聚类过程 如果用数据挖掘工具来做(如SPSS),一般会生成一个树形图,那么我们可以根据分析问题的具体情况,选.

二十同学 5万+
上一篇: 数据挖掘之频繁项集分析
下一篇: 数据挖掘之链接分析学习
viewcode
博客等级 码龄16年 993粉丝 108原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值