open-research
open-research copied to clipboard
[开题框架] 面向开源治理最佳实践认证过程的分类预测模型
根据研究生开题模板 #53 ,提出如下的开题框架:
- 开题题目:面向开源治理最佳实践认证过程的分类预测模型
- 研究对象:开源项目、CII 徽章认证过程
- 研究视角:开源项目治理与评估场景视角
- 研究问题:是否能够通过认证过程数据的方式来进行自动的徽章登记评估与分类
- 研究方法:通过分析历史参与CII 认证的项目过程数据,提出能够合理反映认证过程的特征模型,构建“基准数据集”,利用机器学习算法实现自动化分类或预测任务
- 研究结果:找到“基准数据集”上性能最好的多分类模型,并应用到OpenCertified项目中。如果时间允许,还可以结合 OpenSSF 的 Scorecard 项目,做预测模型。
- 实验设计:选取合适的数据源,根据 CII 的认证规范,构建多维度特征模型,用常规的机器学习模型构建流程进行实验。根据取得的效果,确定是否加入新的数据源与特征(图特征、NLP特征等),迭代优化。
数据开源:
- 已通过的项目数据:https://bestpractices.coreinfrastructure.org/zh-CN/projects
- 邮件列表数据:https://lists.coreinfrastructure.org/g/CII-badges/topics
- GitHub 日志事件数据:https://github.com/X-lab2017/open-digger
参考:
- 研究生开题模板:https://github.com/X-lab2017/open-research/issues/53
- CII 相关知识:https://github.com/kaiyuanshe/ONES/discussions/48
CII 最佳实践数据已汇总:projects.csv
研究了一下 scorecard,每个检查项 10 分,总评分就是加权平均。检查项有四个等级,critical 权重为 10,high 权重为 7.5,medium 权重为 5,low 权重为 2.5。
这篇文档里介绍了每个检查项的等级,以及具体评分的细节:https://github.com/ossf/scorecard/blob/main/docs/checks.md
但这些指标的权重数值是如何产生的,也没有特别的描述。我猜就是专家经验+拍脑袋。另外,如果一个检查项有脱离 GitHub 的实现方式(比如 CI 不一定要在 GitHub 做),那么等级就可能被设置为 low。
从想要达到的目的上讲,scorecard 和 CII 最佳实践徽章的效果是类似的。因此可以考虑使用 scorecard 对 CII 最佳实践徽章中的项目进行测试、比对效果。
但在测试的时候发现,那些提交比较早的项目不太适用,因为 scorecard 只能检测仓库的当前状态,而不能追溯历史。
论坛这边还有一些信息,一起汇总:https://github.com/orgs/X-lab2017/discussions/64
有没啥进展?目前的研究目标和实验设计,有什么想法了?
手动抽样结果
在展开大规模的自动化测试前,我先手动随机抽样了一些项目。
从测试结果来看:
- 黄金级别的项目,scorecard 得分大多在 5.5- 8.0之间;
- 白银级别的项目,scorecard 得分大多在 4.0 - 7.0 之间;
- 通过级别的项目,scorecard 得分大多在 3.0 - 6.0 之间;
- 尚未通过的项目,scorecard 得分和通过级别的项目差不多。(有些完成率 1% 的项目,依然能够得到 4.7 分,但 2017 年来再也没有维护过)
自动化测试
当然,上述结果只是我个人的观测结果,并不准确。不过我已经在跑程序去自动化统计 scorecard 得分。等全部统计完后,会用柱状图去展示结果:四种柱颜色,分别代表黄金、白银、通过、未通过;X 轴坐标是 scorecard 得分,以 0.5 分为间隔;Y 轴是数量,代表在对应 scorecard 得分下有多少个项目。
不过这样四合一的统计方式其实会有点问题,因为黄金和白银级别的项目太少了,分布没有那么直观。也可以考虑将四个级别做成四个柱状图,这样看起来会更加舒服。
一些想法
可以看出不同 level 之间的项目,scorecard 得分是有阶段差异的,但是得分区间互相重叠难以直接从得分判断出徽章类别。因此,利用实验室的日志数据进行补充,可能可以帮助我们对开源项目的最佳实践认证进行分类。
进度
昨天 GSoC 和导师沟通了一下项目,今明两天完成开题报告和专业实践总结。自动化得出的统计结果预计这周内搞定,快的话这两天,慢的话就周末。
对了,相关论文等参考文献上,还请王老师看看能不能帮我补充一点。我目前就是顺着 Dirk 教授的那篇 Industry Best Practices for Open Source Governance and Component Reuse 和它的参考文献在看,感觉论文不太好找。
对了,相关论文等参考文献上,还请王老师看看能不能帮我补充一点。我目前就是顺着 Dirk 教授的那篇 Industry Best Practices for Open Source Governance and Component Reuse 和它的参考文献在看,感觉论文不太好找。
没问题,文章我有很多~
是否可以构建如下一个大论文框架:
数据驱动的开源社区治理最佳实践预测模型与自动化工具
1. 开源治理目前存在的主要问题
- CII 的非结构化、自主提交、人为评估,需要人工干预,以及规则的频繁更新,无法自动化
- Scorecard 同样也是基于规则的专家经验公式,无法确保客观性与科学性
- 需要解决开源社区治理绩效评价工具的自动化与科学性问题
2. 已有的相关工作
- 开源治理
- CII介绍
- Scorecard介绍
- CHAOSS介绍
3. 对CII数据集的初步分析与洞察
- 具体的评测项介绍
- 已经完成规章的项目整体数据与部分统计分析
- 结合一些策略进行数据清洗等工作
- 给出最终完整的数据集情况
4. 基于开发者协作网络的机器学习模型(本文提出的模型)
- 结合CII、Scorecard、以及开源治理标准中的检查项与事项清单,提取指标特征
- 统计指标(例如CHAOSS的)+ 图指标(各种网络指标)进行结合
- 例如,Scorecard的分数、活跃度、影响力等,都是可以作为特征的
- 选择合适的机器模型算法(利用 CII 的标注数据)
5. 实验分析与评估
- 数据集与 Benchmark
- 通过指标评估模型的有效性
- 特别是从科学性与自动化上面进行阐述,是否能解决第一章提出的问题
6. 在 OpenCertified 项目中的应用
实验设计方面,几个初步想法:
假设本文提出的方法就叫:OpenCertified
这样,就可以构建三个对比序列:CII、Scorecard、OpenCertified
1. CII 和 OpenCertified
- OpenCertified 实现了自动化
- 通过多个不同的机器学习模型进行验证
- 得出一个性能最高的模型
2. OpenCertified 和 Scorecard 对比
- 分别比较几个不同类别下性能(金牌、银牌、通过、没通过)
3. 带图指标的 OpenCertified 和 不带图指标的 OpenCertified 进行对比
- 结论:带图指标的 OpenCertified 性能最好
本质上,就是要说明,我们提出的 OpenCertified 比 OpenSSF 下面的项目要好,这个意义和影响力就足够大了~
继续针对昨天的讨论提建议:
题目:基于开源治理最佳实践集的项目成熟度评估模型与自动化工具
几个概念与要点:
- 开源治理最佳实践集(简称 CIISet):CII 认证体系 + CII 认证项目数据
- 开源项目成熟度模型(Open Source Program Maturity Model,OSPM):融合了部分 CIISet 指标 + 部分CHAOSS 指标 + OpenDigger 指标
- 通过借助 OpenDigger 构建一个协作关系网络图,进而对 OSPM 模型进行了算法实现
本文的主要工作:
- 制作一套标准的 CIISet 数据集
- 提出一个 OSPM 量化模型(一个多维特征指标的框架)
- 利用 OpenDigger 构建一个图,在提上提出一个机器学习算法计算 OSPM 值
- 将本文提出的 OSPM 算法结果,分别与 CIISet 中的标签,以及 ScoredCard 方法进行对比
- 利用 OSPM 算法实现了一个自动化的 OpenCerfied 工具