XML数据挖掘: 集群XML文档以改善数据挖掘

本 XML 数据挖掘系列文章的第 3 部分将解释几个有关集群 XML 文档的概念,以及介绍在文档内容和结构随着时间发生变更时要执行的 XML 文档集群任务。在真实世界应用程序中,XML 文档从一个版本发展成另一个版本,其中要实现的变更数量是无法预测的。实现变更后,原始的集群解决方法就会遭到淘汰,这是非常正常的。为了克服这一点,本文将描述一种非冗余方法论,它可以在变更后重新计算 XML 文档的新集群。本文将提供详细的用例示例以帮助您了解该技术,以及如何将其技术应用到实践中。

背景概念

集群 是在密集数据集中寻找区域的一种数据挖掘任务(通常是使用距离度量实现的)。换句话说,集群 是对数据进行分区的一个流程,其方法是将相似的数据项分组到集中,称之为集群。

由于 XML 的分层结构,集群 XML 文档与集群其他数据集有所不同。已推出了若干个 XML 集群方法,比如使用结构的 XML 文档集群、语义 XML 集群、无模式 XML 文档集群和链接 XML 文档集群。您可以在本系列的 XML 数据挖掘,第 1 部分:考察几种 XML 数据挖掘方法 文章中阅读有关不同类型的 XML 集群的更多信息。本文主要关注于使用分层(基于距离)的 XML 集群技术通过结构来实现 XML 集群。

在基于距离集群技术中,来自给定集的每个对象都会首先分配到一个集群。接着,计算集群对之间的距离,并针对最靠近的(最相似的)集群进行分组以形成一个新的(更大的)集群。换句话说,与其他 XML 文档对相比,这两个 XML 文档更加相似,其之间的距离也更短;因此它们可以成为同一个集群的成员。

要例证 XML 文档相似性的概念,图 1 显示了三个 XML 文档,其中两个高度相似(即,文档 DA 和 DB),而文档 DC 与 DA 或 DB 均没有相似点。文档 DA 和 DB 列出的是有关两个学生的信息,包括学年、学科与考试,以及学生的名字。文档 DC 列出的是有关一本书的信息,其中包括标题、ISB 编号和两个作者的名字。

图 1. 相似和不相似 XML 文档的示例

在 图 1,有关学生详细信息的任务查询均只适用于相应的文档(即 DA 和 DB),并不适用于其他包括不同信息的文档,比如 DC。直观地说,文档 DA 和 DB 是分组在一个集群中,而 DC 自身也形成了另一个单独的集群。

XML 文档和 XMLDelta 之间的距离

如果您将两个 XML 文档(D1 和 D2)以及其表现看作两个树,那么这两个文档之间的距离 会记录为 d(D1 和 D2),该距离是通过基本操作集(即插入、更新和删除)来进行确定的,这些操作拥有最少的总成本,并且可以将一个文档转换成另一个文档。

例如,要确定 图 1 中文档 DA 和 DB 之间的距离,您必须先查找可以将 DA 转换至 DB 的基本操作集(正向);接着,查找可以将 DB 转换成 DA 的基本操作集(反向)。您要针对这两个操作集计算其成本;最后选择拥有最小总成本的集:

d(DA --> DB)={update(Student, John, Mary), update(year, 2, 3), insert(Exams), insert (Subject, Drama), insert (Subject, ">Music)} and d(DB --> DA)={ update(Student, John, Mary), update(year, 2, 3), delete(Exams), delete(Subject), delete(Subject)}

要计算每个操作集的最小成本,您要基于 XML 文档中的节点位置使用一个成本模型。本示例中的成本是:

d (DA --> D B) = d (DB --> DA) = 5

在本示例,您可以选择其中一个操作集,因为他们拥有相同的总成本。

在动态(也称之为多版本)XML 文档的用例中,每一个新文档版本实际上是对先前文档版本进行某种程度的更新而产生的。该更新通常是通过在先前 XML 文档版本中混合应用基本操作所实现的(即,插入、更新和删除)。如果您将这些操作看为一个整体,他们就会形成一个所谓的 delta。当您谈到 XML delta,您就会知道它指的是 XML 文档两个连续版本之间的差异。delta 的成本 是 delta 中列出的以及前面提及的操作组合的总成本。

时间: 2024-10-04 11:34:23

XML数据挖掘: 集群XML文档以改善数据挖掘的相关文章

Redis集群明细文档(转)

相信很多用过Redis的同学都知道,Redis目前版本是没有提供集群功能的,只能单打独斗.如果要实现多台Redis同时提供服务只能通过客户端自身去实现.目前根据文档已经看到Redis正在开发集群功能,其中一部分已经开发完成,但是具体什么时候可以用上,还不得而知.本文是对其集群文档的翻译,文档来源:http://redis.io/topics/cluster-spec 总体来说,其集群没有存在代理节点或者控制器的东西,所有节点功能一样,并且所有节点通过一个叫做连接总线的东西上发送消息包.每个节点会

急急!为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊

问题描述 为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊SAXBuildersb=newSAXBuilder();Documentdoc=sb.build("E:/sample.xml");在main()程序中就不会有这样的问题,是不是安全问题请各路大侠帮忙了,谢啦!!!

java xml-用eclipse编辑java中的XML,怎么插入.dtd文档??

问题描述 用eclipse编辑java中的XML,怎么插入.dtd文档?? 在java中,XML用来布局管理时,怎么在eclipse插入解析XML的.dtd文档,在插入时,其中key type和key分别填什么??求大神指教. 解决方案 http://danne823.iteye.com/blog/847706

XML学习-形式良好的文档/有效的文档

形式良好的文档:符合基本的语法规范 有效的文档:不仅符合基本的语法规范,还符合DTD或者Schema定义 xml:数据 dtd/schema:定义数据 XSL/CSS/数据岛:数据如何显示 Schema规范中: 1.所有标签和属性都需要有schema文件来定义 2.在根标签引入schema约束文件  通过属性xmlns="对应的schema文件的namespace[即对应的schema文件中的根标签的targetNamespace属性值]" 3.如果引入的schema文件不是由w3c来

Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串

做企业级应用,跟office打交道是少不了的.这里的Office不仅仅局限于微软的Office,还有第三方的Open Office之类..Net传统的Office操作方法(比如OleDB,OWC之类),有几大缺点: 一是不通用(仅能处理微软的Office,不能与其它非Windows平台交换数据),二是性能差(导出一个Excel,如果记录数上万条,速度很慢),三是服务器通常要安装Office Web Components(即OWC组件).   自从Open XML出现后,这种情况在很大程度上得到了

《Redis官方文档》Redis集群教程

原文链接 译文链接 译者: tiffany 这篇教程是Redis集群的简要介绍,而非讲解分布式系统的复杂概念.它主要从一个使用者的角度介绍如何搭建.测试和使用Redis集群,至于Redis集群的详细设计将在"Redis集群规范"中进行描述. 本教程以redis使用者的角度,用简单易懂的方式介绍Redis集群的可用性和一致性. 注意: 本教程要求redis3.0或以上的版本. 如果你打算部署redis集群,你可以读一些关于集群的详细设计,当然,这不是必须的.由这篇教程入门,先大概使用一下

基于docker1.12创建swarm集群

       Docker 1.12 在 2016 年 7 月 28 日正式 GA,除了大量的在使用上的改进和 bug 修复外,最引人瞩目的是Docker原生支持了 Swarm 模式,而不是将Swarm作为一个容器对集群进行管理. 而docker1.12的操作命令并不向下兼容,于是过去所有创建swarm集群的文档都不能参考了,本文描述了基于docker1.12版本创建Swarm集群的过程. 1.主机环境 在阿里云上申请三个vpc网络的ECS,安装centos7.0的镜像,ip和角色分配如下: 1

玩转大数据-如何搭建redis集群

在企业应用中,对于数据的固化一般采用数据库,但是数据库的吞吐量还是存在一定的问题的,在高并发高吞吐要求时,一般会直接导致数据库的宕机或者死锁,目前对于这个问题的架构是在数据库前边在缓存池,redis就是这么一款产品. 对于redis的介绍,去百度吧,它应该被广泛运用在各个项目中,我们来看如何搭建一个redis集群,这里的集群是个真分布式集群哦. 首先,我们需要下载redis源代码,然后进行编译,以下命令在linux下执行: wget http://download.redis.io/redis-

如何用ASP生成XML数据文档

一.必须弄清楚最终需要的是什么 我们通过asp或其他动态编程语言,最终需要的是XML格式的数据,这点和XML数据所在的文件载体无关,它可以是实实在在的XML文件,比如:http://www.dw8.cn/common/dw8.xml .也可以为asp文档,比如:http://www.cnbruce.com/blog/rss2.asp 他们都是XML数据的体现,为了实现XML数据的动态,所以需要使用到动态编程语言,比如ASP来实现生成它. 二.如何生成动态的XML文档 如果是生成XML文件,介于动