图3-1 数据分布在空间分割的示意图 对分类数据集DataSet,采用偏移最优矩形算法进行数据空间第一层划分,得到一系列的FirstBRs(第一层划分所得的矩形)。 然后,在FirstBRs中,采用k-偏移最优矩形算法进行二次划分,得到FirstBRs中的一系列SecondBRs(第二层划分所得的矩形)其中各包含k个数据点(存在一个矩形可能少于k个)。 1、对于区域查询,只要比较数个FirstBRs的中心点与查询条件的相似度,选取适合的FirstBRs再进行细化比较,而无需对全部数据集进行查询。查询的数据集由全体数据集减少为邻近的几个数据集。 2、对于k-NN查询:先进行FirstBRs的比较,得到适合的FirstBRs的位置,然后只要在这个FirstBRs中在进行SecondBRs的中心点与查询条件的相似度比较,最后确定几个SecondBRs,利用基本比较操作查找出k个结果数据点。同样这也在查询数据量上得到了简化。 〖偏移最优矩形算法〗 前提: n个数据点,分布在R维空间中,各个数据点的表示如 算法功能: 对n个数据点进行区域划分,获得多个FirstBRs(矩形),保证矩形整体数据覆盖率最小。区域矩形的域值为 算法步骤: 1、在n个点中,取一点A ` 2、判定是否有一个数据点B 对于 如果不满足条件继续2查找。若最终没有一个数据点满足要求,那么对该点进行预留操作(所谓预留,就是将该点信息保存到一个临时的列表TempList中),然后跳到1操作,重新选点;若找到一个B数据点,则继续; 3、对于2中找到的B数据点,A、B两点构成一个矩形区域 4、循环操作23,直到没有数据点可以插入 5、最终,无数据点在上述过程结束后遗留,那么算法结束。 如果TempList存在未划分的数据点,则查找与该数据点距离最近的数据点C构成区域 至此,算法结束,数据集得到了有效空间划分,结果为一系列的FirstBRs。 〖k-偏移最优矩形算法〗实际上这个算法是偏移最优矩形算法的派生,简单的改变在于限定划分所得区域中数据点个数为k。其余算法同于偏移最优矩形算法。 不可否认的,这种分裂方法,对于数据常更新的数据集,存在性能不佳的缺陷,但考虑到对应的多媒体数据库中的数据本身的更新基本没有。因为对于多媒体数据,特别是视频数据其内容是不能有随意添加或删除形式的更新,有的只是视频数据整个的更新变化,同时本文考虑的不是独立视频数据间的索引,考虑的是每个视频数据内部镜头分割后的索引。所以,这种分裂算法的使用,适合应用本文研究的索引。 4、改进算法的实现及实验分析
为了适合上述的数据分割算法的改进,将R-Tree的数据结构进行一定的改进。 4、1改进的R-Trees结构图示
改进的R-Tree结构可以用如下图简明表示: 图4-1 改进R-Tree的结构简明示意图 4、2改进算法验证实验设计
采用的数据源是经过处理的实际图片数据。 特征向量表示,采用颜色直方图特征在进行了PCA变换后图像表示作为特征向量,其表示为:每个r维数据点 假设查询图像间的相似度的度量式: 1、改进方案正确性实验 对于数组数据集,利用R-Tree与改进后算法分别进行构建索引和相似查询。比较两者的结果数据集以及两者的耗时。 2、改进方案的性能测试 对于同一图片集,采用不同的数据提取方法提取几组维数不同的数据集。用R-Tree与改进后算法分别进行构建索引和相似查询。比较两者的结果与耗时。 本次实验使用的数据集为人工设计,其中数据点分布大致如下图: 代表整个数据集所产生的最小全覆盖矩形 代表FirstBR即第一层次的数据块 代表SecondBR即最小层次的数据点集 代表 图4-2 人工数据示意图 〈说明:左图是平均分布的数据点的图例,右图是不均匀分布数据点的图例〉 4、3实验结果分析
反馈相似节点数量 数据集大小 数据集大小 随机查询节点数 随机数据集 图 实验1 采用随机分布数据,数据个数为50、100、200、500、1000,数据空间维数20以内(本次实验选取为20)。如图4-3-1给出的是查询执行的阈值(相似度)在0.75的条件下的结果(每个实验5次,取平均结果),图4-3-2给出的是查询执行后反馈的相似节点数的结果(同样每个实验5次,取平均值)。 改进的R-Tree算法的查询节点数明显少于原始的R-Tree而且随着数据量的增大这种表现越发明显(图4-3-1),而两者反馈的相似节点集则相对差不多(图4-3-2);改进的R-Tree算法在查询方面较原始R-Tree要好,尤其当对应数据量庞大的时候。 实验选择计算访问节点数代替计时的方案。由于改进的R-Tree的算法在使用的比较数据对象相似性的公式与R-Tree相同,即单位耗时t相同,而R-Tree查询访问点数与改进的算法查询访问点数存在关系 这一点就证明了我们采用这个方案的可行性和正确性。 总之,从上述两图,在对同一数据使用R-Tree和改进后R-Tree两种方法查询时,后者的平均访问数据数基本的低于前者,这就从另一个侧面反映了后者在CPU时间上的低消耗。 从这一点上,说明改进的算法有效的达到了查询提速的功能。 均匀分布数据集 图4-3-3 非均匀分布数据集 图4-3-4 实验2 判定数据分割的有效性实验,采用不同数据分布模式的数据集,进行建树时耗和树结构大小的判定。图4-3-3均匀数据分布条件下节点产生数量统计图;图4-3-4非均匀数据分布条件下节点产生数量统计图。 特殊数据集模式 即稀疏模式 对于均匀分布的数据,依据数据对象个数变化进行实验,结果如图4-3-3所示,R-Tree算法产生索引的结点数增大趋势较改进后的算法明显的多。 图4-4 采用改进后R-Tree算法,随着数据对象的增加,其产生索引的结点数增大趋势不再如R-Tree算法所反应的那么明显,图4-3-3右图与图4-3-4右图,比较图中的两条曲线,改进算法产生的曲线较为平坦,变化缓和。这说明了R-Tree在改进后所得到的算法在减小索引文件的大小的工作上达到了预期的效果。 ********
表4-1 实验3 判定索引使用针对性实验,采用不同实验数据的数据集,进行建树时耗和树结构大小的判定。 ********* ****** 对背景变化不是很大的视频段 其索引查询功能的效果较优! 分析总结: 通过以上的实验数据分析,改进的R-Tree算法在总体上性能较经典的R-Tree算法有了很好的改进。特别是对多媒体流式数据的支持上,采用层次索引,通过优化组合增加了索引结构的适应性与可选择性。在数据处理方式上的改进提高了算法在检索提速方面的作用,同时避免了索引文件的过分庞大,较好的避免了内存调用索引是可能出现的重复页面转换时间的消耗。 6、结束语
本文结合高维向量空间索引相关知识,对经典的多维空间索引(重点是R-Tree)算法进行了一定的研究。对现有多种流行索引结构模型的基本思想进行了扩充,提出了一个具有较高适应度的多媒体数据库索引模型,并基于此利用数据降维、数据集层次结构、数据的初始化等方面的算法与设计的改进,以弥补经典算法的缺陷,并达到了预期的实验效果。 本文仅就R-Tree中数据空间分割方法进行了分析改进,下一步研究将要面对的就是,构建索引的时间的减少,更好的支持多媒体数据存储查询的性能,更好的对k-NN相似查询的支持,优化数据分类器的设计实现(根据语义),相应存储结构的设计。
| 相关文章: 相关软件: |