聚类算法学习指南(二)

http://hi.baidu.com/catfool/blog/item/c06bec3931a0efcad4622524.html

聚类算法学习指南(二)
2009-05-06 20:49
下图
图 3-1 聚类方法的分类示意图
3.1 传统聚类算法
3.1.1 层次方法
层次法对给定的数据对象集合进行层次似的分解。按层次分解的形成方式,层次法可分为凝聚和分裂两大类。凝聚的方法,也称为自底向上的方法,一开始将每个对象作为单独的一个类,然后相继地合并相近的类,直到所有的类合并为一个(层次的最上层),或者达到一个终止条件为止。分裂的方法,也称为自顶向下的方法,一开始将所有的对象置于一个类中。在迭代的每一步中,类被分裂为更小的类,直到每个类只包含一个对象,或者达到一个终止条件为止。在凝聚或者分裂层次聚类方法中,通常以用户定义的希望得到的类的数目作为结束条件。在类的合并或分裂过程中,需要考察类间的距离。类间距离的度量广泛采用如下四种方法:
最小距离:dminCiCj=minpCi,p'Cj|p- p' |
最大距离:dmaxCiCj=maxpCi,p'Cj|p- p' |
平均值距离:dmcanCiCj=|mi- mj|
平均距离:
层次方法(Hierarchical Method)中代表算法有BIRCHCUREROCKCHAMELEON算法等。
3.1.2 划分方法
给定一个包含n个数据对象的数据集,划分法构建数据的k个划分,每个划分表示一个类,并且kn。同时满足如下的要求:每个组至少包含一个对象;每个对象属于且仅属于一个组。给定要构建的划分的数目k,创建一个初始划分。然后采用一种迭代的重定位技术,尝试通过对象在划分间移动来改进划分。判定一个好的划分的一般准则是:在同一个类中的对象之间尽可能接近或相关,在不同类中的对象之间尽可能远离或不同,即使下列准则函数最小:
式中的E是数据集中所有对象的平方误差的总和;mi是类Ci的平均值(或中心点),p是数据空间中的数据对象(pmi都是多维的)。为了达到全局最优,基于划分的聚类要求穷举所有可能的划分。基于划分的方法(Partitioning Method),其代表算法有K-MEANSK-MEDOIDS、大型数据库划分方法(CLARANS等。
3.1.3 基于密度的方法
大多数划分方法基于对象之间的距离进行聚类,这样的方法只能发现球状的类,而在发现任意形状的类上有困难。因此,出现了基于密度的聚类方法,其主要思想是:只要邻近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类。也就是说,对给定类中的每个数据点,在一个给定范围的区域内必须至少包含某个数目的点。这样的方法可以过滤噪声数据,发现任意形状的类。但算法计算复杂度高,一般为O(n2),对于密度分布不均的数据集,往往得不到满意的聚类结果。其代表算法有DBSCANOPTICSDENCLUE等。
3.1.4 基于网格的方法
基于网格的方法把对象空间量化为有限数目的单元,形成一个网格结构。所有的聚类操作都在这个网格结构(即量化空间)上进行。这种方法的主要优点是它的处理速度很快,其处理速度独立于数据对象的数目,只与量化空间中每一维的单元数目有关。但这种算法效率的提高是以聚类结果的精确性为代价的。它的代表算法有STINGCLIQUEWAVE- CLUSTER等。
3.1.5 基于模型的方法
基于模型的聚类算法为每簇假定了一个模型,寻找数据对给定模型的最佳拟合。一个基于模型的算法可能通过构建反应数据点空间分布的密度函数来定位聚类。它也基于标准的统计数字自动决定聚类的数目,老吕噪声数据或孤立点,从而产生健壮的聚类方法。基于模型的聚类试图优化给定的数据和某些数据模型之间的适应性。这样的方法经常是基于这样的假设:数据是根据潜在的概率分布生成的。基于模型的方法主要有两类:统计学方法和网络神经方法。其中,统计学方法有COBWEB算法,网络神经方法有SOM算法。
3.1.6 基于约束的方法
真实世界中的聚类问题往往是具备多种约束条件的,然而由于在处理过程中不能准确表达相应的约束条件、不能很好地利用约束知识进行推理以及不能有效利用动态的约束条件,使得这一方法无法得到广泛的推广和应用。这里的约束可以是对个体对象的约束,也可以是对聚类参数的约束,它们均来自相关领域的经验知识。该方法的一个重要应用在于对存在障碍数据的二维空间数据进行聚类。COD (Clustering with Ob2structed Distance)就是处理这类问题的典型算法,其主要思想是用两点之间的障碍距离取代了一般的欧氏距离来计算其间的最小距离。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NetCore跨域

描述浏览器安全策略上的安全限制可以有效阻止Ajax向另外的一个域server发起请求,这就是著名的同源策略,如何突破这种限制,可以使用CORS。public static void AddCommon(this IServiceCollection services){services.AddCors(options >{opt…

山东大学计算机非全上课,山东大学非全日制研究生上课方式

【导读】山东大学非全日制研究生上课方式。如今非全日制研究生考试已经与全日制一样,连考试内容和时间也都是一样。许多想要报考山东大学非全日制研究生的人员开始担心,非全日制研究生和全日制研究生的考试样了,那么上课方式会不会也是一样的…

【转载】可复用的FS

有很多朋友要求给出一个应用ESFramework的Demo,在前面介绍ESFramework支持的4层架构中(回顾),有AS、FS、IRAS,其中FS的功能需求最简单,所以本文就给出一个FS实现示例。 FS主要用于管理功能插件&…

Git、GitHub、GitLab三者之间的联系以及区别

在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转)1.什么是 Git?Git 是一个版本控制系统。版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统。以前在没有使…

zen服务器芯片,服务器版Zen处理器简直大杀器:32核64线程,8通道DDR4内存

拼 命 加 载 中 ...在这次的E3展会上,AMD除了公布RX 470/460显卡之外,还跟雷蛇发了一款支持VR的背包PC,使用了RX480显卡,处理器则是AMD的Zen,8核16线程,这还只是桌面版的,要知道Zen处理器最重要…

【赠书活动】优雅免费领书指南

快扶朕起来,我还要送书!在上一期的赠书活动上结束后。超模君就吩咐小树包装好书籍,寄给获奖的模友们!很多模友收到书籍都表示很不错,期望能再来一次赠书活动。这不,朕又想,超模君又想送书了&…

利用11行Python代码,盗取了室友的U盘,内容十分刺激!

作者:Python新世界 來源:简书https://www.jianshu.com/p/3d7b2d9fe679序言那个猥琐的家伙整天把个U盘藏着当宝,都睡觉了就拿出来插到电脑上。我决定想个办法看他U盘里都藏了什么,直接去抢U盘是不可能的,骗也是…

鸡肋还是革新——Blazor进WinForm

winform是一老技术,感觉都有点掉牙了(我近20年前就是从winform开始接触.net的);blazor,是微软技术圈里的新宠,正在被悉心照顾。当这一老一少的技术碰撞后,会有什么火花?.net v6.0.0-…

一个女程序员征男友的需求说明书

前 言常听人说程序员的生活枯燥为人刻板,其实这是你不懂程序员。代码之外,生活之中,这些高智商人的幽默风趣,才华的展现往往能在「论坛」这个神奇的领域一窥究竟。(悲哀,因为给他们展现Coder之外才华的地方…

查看服务器物理内存大小,如何看服务器的物理内存大小

如何看服务器的物理内存大小 内容精选换一换JVM在执行Java程序时会把它所管理的内存划分为若干个不同的运行时数据区域,主要包括:程序计数器、方法区、虚拟机栈、本地方法栈和堆:程序计数器可以看作时当前线程所执行的字节码的行号指示器。方…

通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布...

之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能——订阅发布目录:一、通过Dapr实现一个简单的基于.net的微服务电商系统二、通过Dapr实现一个简…

值得收藏的Python小技巧:这17个骚操作你都OK吗?

导读:Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。在本文中,作者 Gautham Santhosh 带我们回顾了 17 个非常有用的 Python 技巧,例如查找、分割和合并列表等,这 17 个技巧都非常简单,但…

等待十年,史上第一个 64 位版 Visual Studio 将于今夏公开首个预览版!

昨日,微软在其开发者博客宣布了一则重磅消息——Visual Studio 2022 首个预览版将于今年夏季发布 ,并且终于成为万众期待的 64 位版!要知道,早在 2011 年就有用户在 Visual Studio 的反馈建议网站提出,希望微软开发 64…

普通人和程序员看到的树

IT程序猿 微博网友评论:小苏打_sct:我家门前有两棵树,一棵是二叉树,另一棵也是二叉树( _ゝ`)Christible_L:这不是多叉树吗 北辰找不着北:程序员都是从根看起的~ 洱海不语:先先总体到…

华为高性能服务器刀箱,云平台服务器刀箱

云平台服务器刀箱 内容精选换一换将外部镜像文件注册成云平台的私有镜像后,您可以使用该镜像创建新的云服务器,或对已有云服务器的系统进行重装和更换。本节介绍使用镜像创建云服务器的操作。您可以按照通过镜像创建云服务器中的操作指导创建弹性云服务器…

Magicodes.IE.AspNetCore之一行代码多格式导出

主要步骤1.安装包Install-Package Magicodes.IE.AspNetCore2.开始配置在Startup.cs的Configure()方法中,在UseRouting()中间件之后,注册如下中间件public void Configure(IApplicationBuilder app) {app.UseRouting();app.UseMagiCodesIE();app.UseEndpoints(endpoints >{en…

想不到吧,这些都能用R!

R作为一种统计分析软件,广泛应用于生物、医学、电商、新闻等数据相关行业,是目前主流数据应用软件之一。那么,R到底有哪些特别之处呢?实际上,R是统计领域广泛使用的S语言的一个分支,两者在程序语法上几乎一样&#xf…

ssd windows未能启动服务器,ssd安装win10无法启动你安装方法对吗?来看一下

固态硬盘虽然价格偏高,但是读写速度快,很多人只追求速度,纷纷买了全新固态硬盘安装系统,现在最新的系统是win10,如果在uefi电脑上用固态硬盘安装win10,那么速度将有质的提升,那么全新固态硬盘怎…

一名IT经理是如何把项目带崩的。。。

我是一名项目经理,在过去的四个月里,我把一个项目带崩了(上线后频出问题,用户无法使用)。在最近的几天,我每天都在反思自己,我都在问自己以下几个问题:1.我做错了什么?2.…

C# 线程池ThreadPool用法简介

前言:自从task出现后,threadpool地位直线下降,但是一些老的程序员用惯了threadpool,我们在继承开发的时候也会时常看到这个用法,所以我们也很有必要熟悉认识它。什么是线程池?为什么要用线程池?…