分析聚类结果

简单实现了Bavota的模块划分算法。

论文有两篇:

Using structural and semantic measures to improve software modularization

Software remodularization based on structural and semantic metrics

方法是计算一个结合了结构和语义信息的相似度矩阵,根据某个阈值筛选出高相似度的边,最后找出连通分量,视为一个模块。

综合相似度矩阵由结构相似度矩阵和语义相似度矩阵混合而成。权重是一个参数。

下面比较不同设置下聚类结果的变化。

百分位数是指对所有顶点对相似度排序后,按名次百分比取对应位置的阈值。

语义信息权重 边阈值为0.94百分位数(94%的边被删除) 边阈值为0.96百分位数(96%的边被删除) 边阈值为0.96百分位数(96%的边被删除) 边阈值为0.96百分位数与第n*3大的值之间较大者
1
0.8
0.6
0.4
此处spline componentlayouter layouter
mds post processer等都被归为一类
0.2
0

结论是百分比阈值效果并不好,难以调节。

尝试改为固定阈值。

语义信息权重 CodeView阈值=0.6 CodeView阈值=0.7 CodeView阈值=0.75 GeometryProcess阈值=0.7 GeometryProcess阈值=0.75 Vega阈值=0.7 Vega阈值=0.75
0.9
全部都聚成红色了
0.8
阈值太宽松,所有类都归为一类了

相比语义=0.8,阈值=0.6,
overlap与symbolinfo分开了
backgroundrenderer 与textprocesser被合成一类
nodeUIItem与其他UIItem继续分开

属性方面:attr与其他部分分开
UI方面:uielement与各个uiitem成为一类
边方面:symboltree 与symboledge edgeuiitem symboledgeiter成为一类


自定义插值算法类、平台网格类被较好分割

平台类与右上角Qt属性类合并
网格类自成一类
自定义插值算法类仍然保持一致
蓝色为与Render相关的类,这些类之间没有依赖关系,可以看出语义权重增加的影响

opengl相关类自成一类
但红色类范围十分广泛,不知为何

开始呈现出有意义的划分。
右下角绿色点为弹性材质
右上角红色为求解器
左上角紫色为openGL相关
0.7
能够分开布局诸类,但节点属性类(***Attr)未能分开
0.5

语义信息权重增加时,总体相似度增加,满足阈值的边数增多,于是聚类个数减少。

来自为知笔记(Wiz)

时间: 2024-12-29 07:07:43

分析聚类结果的相关文章

多核模糊C均值聚类

摘要: 针对于单一核在处理多数据源和异构数据源方面的不足,多核方法应运而生.本文是将多核方法应用于FCM算法,并对算法做以详细介绍,进而采用MATLAB实现. 在这之前,我们已成功将核方法应用于FCM算法,在很大程度上解决了样本线性不可分的情况.但是这种单一核局限于对数据的某一特征进行有效提取,若一个样本含有多个特征,且遵循不同的核分布,单一核学习就不适用,所以说单一核在处理多数据源以及异构数据源的不足是越发明显. 针对于单一核学习不足,我们可以同时结合多个核函数对数据的多种特征进行同步描述,并

机器学习流行算法一览

原文:http://www.jdon.com/bigdata/a-tour-of-machine-learning-algorithms.html 这篇文章介绍几个最流行的机器学习算法.现在有很多机器学习算法,困难的是进行方法归类,这里我们介绍两种方法进行思考和分类这些算法.第一组算法是学习风格,第二组是在形式和功能上类似. 学习风格 一个算法基于问题建模有不同的方法,无论这个问题是基于经验或环境的交互,或者是基于我们需要输入的数据,学习风格是机器学习首先必须考虑的问题. 下面我们看看一些算法的

出租车数据分析

出租车数据分析 一.实验简介 图片来自pixabay.com 出租车是我们生活中经常乘坐的一种交通工具,但打车难的问题也限制了我们更好地利用这种交通方式.在哪些地方出租车更容易打到?在什么时候更容易打到出租车?本课程将基于某市的出租车行驶轨迹数据,带你学习如何应用Spark SQL和机器学习相关技巧,并且通过数据可视化手段展现分析结果. 1.1 知识点 Spark DataFrame操作 Spark SQL 的 API 查询 Spark MLlib 的 KMeans 算法应用 1.2 准备工作

扩增子分析解读3格式转换 去冗余 聚类

本节课程,需要完成扩增子分析解读1质控 实验设计 双端序列合并和2提取barcode 质控及样品拆分 切除扩增引物 先看一下扩增子分析的整体流程,从下向上逐层分析 分析前准备 # 进入工作目录 cd example_PE250 上一节回顾:我们提取barcode,质控及样品拆分,切除扩增引物,经历了两节课6步数据处理才拿到我们扩增的高质量目的片段(貌似基因组/RNA-Seq测序结果直接就是这个阶段了,可以直接mapping) 接下来我们将这些序列去冗余.聚类为OTU.再去除嵌合体,这样就可以获得

学术_聚类种类分析(1)(转载)

原文作者:http://blog.chinaunix.net/uid-10289334-id-3758310.html (本文转自网上,具体出处忘了是哪里的,好像是上海一位女士在网上的博文,此处转载,用以备查,请原作者见谅) 聚类算法总结:---------------------------------------------------------聚类算法的种类: 基于划分聚类算法(partition clustering) k-means: 是一种典型的划分聚类算法,它用一个聚类的中心来代

Mahout机器学习平台之聚类算法详细剖析(含实例分析)

第一部分: 学习Mahout必须要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到如下位置,我将该文件解压到win7的G盘mahout文件夹下,路径如下所示: G:\mahout\mahout-distribution-0.6\docs 学会查源代码的注释文档: 方案一:用maven创建一个mahout的开发环境(我用的是win7,eclipse作为集成开发环境,之后在Maven Dependencies中找到相应

测试数据科学家聚类技术的40个问题(附答案和分析)(转)

本文作者 Saurav Kaushik 是数据科学爱好者,还有一年他就从新德里 MAIT 毕业了,喜欢使用机器学习和分析来解决复杂的数据问题.看看以下40道题目,测试下你能答对多少.   作者 | Saurav Kaushik 翻译 | AI科技大本营(rgznai100)     介绍   创造出具有自我学习能力的机器--人们的研究已经被这个想法推动了十几年.如果要实现这个梦想的话,无监督学习和聚类将会起到关键性作用.但是,无监督学习在带来许多灵活性的同时,也带来了更多的挑战. 在从尚未被标记

阅读《基于谱聚类的终端区飞行轨迹分析》笔记

一. 前言 由于参与的相关可视化项目进展到飞行轨迹的聚类算法部分,于是阅读了部分相关论文,并做了一些摘要. 论文均来源与中国知网,均将申明出处. 二. 论文出处 <基于谱聚类的终端区飞行轨迹分析> 马 勇,胡明华,顾 欣,袁立罡 ( 南京航空航天大学民航学院,江苏 南京 210016) 航空计算技术,第45卷,第5期,2015年9月 三. 论文笔记 1.摘要:为了实现智能化处理海量航班数据,精细描述终端区运行特性,研究了基于谱聚类的终端区飞行轨迹分析方法.在分析终端区航班飞行特点的基础上,提出

阅读《基于转弯点聚类的航空飞行轨迹分析》笔记

一. 前言 由于参与的相关可视化项目进展到飞行轨迹的聚类算法部分,于是阅读了部分相关论文,并做了一些摘要. 论文均来源与中国知网,均将申明出处. 二. 论文出处 <基于转弯点聚类的航空飞行轨迹分析> 郑 乐 隋 东 张军峰 武晓光     ( 南京航空航天大学 民航学院 江苏 南京 210 016) 武汉理工大学学报,第39卷,第1期,2015年2月 三. 论文笔记 1.摘要:为满足进场航线设计适应实际运行需求, 在分析实际运行航迹数据特征基础上,提出了通过转弯点聚类策略分析航空器飞行轨迹的方