Skip to main content

OSS Compass分制切换 | 看算法变身魔法!

image5.jpg

OSS Compass

OSS Compass 自 2023 年 2 月 21 日正式对外发布以来,一直在加速迭代,不断优化指标模型及 SaaS 服务。其中 SaaS 服务除了包括原有 Dashboard(看板),近期还为开发者及用户搭建了 Compass Lab(Compass 实验室),供开发者及用户定制自己的模型。本系列文章将为大家逐一解析指标模型、Dashboard 和即将发布的 Compass Lab,以及其他 OSS Compass 新增功能,敬请关注。

嘿,各位开源探险家们!前两期“OSS Compass 功能更新”系列文章已经震撼登场,揭开了“Compass 徽章”和“Dashboard 图表 Y 轴缩放功能”的神秘面纱。今天,小编终于为大家带来期待已久的“百分制”功能更新啦!这个功能和 OSS Compass(以下简称“Compass”)评估指标模型的算法密切相关哦。废话不多说,让我们一起来看看这个厉害的算法是如何变身魔法的吧!

01 故事开始:Compass 与 Criticality Score

Compass 的初衷是让开源项目的评估更科学、更客观,它的模型算法、后端组件原型最初来自于 CHAOSS。而 CHAOSS 使用的部分模型算法最初参考了 Criticality Score。

Criticality Score,听起来很神秘,它是由 Google 开发、通过开源安全基金会 (OpenSSF) 开源的一个量化开源项目重要性/关键性的评估项目。通过选取诸如“贡献者数量”、“提交频率”、“过去一年的发版数量”等指标,再利用公式计算出开源项目的重要性。而它使用的神奇公式是这样的:

image1.png

这个公式涉及三个神秘变量:ai、Si 和 Ti。ai 代表第 i 个指标的权重,Si 是该指标的值,Ti 则是指标的阈值。阈值指的是指标可以达到的最大值。

采用 log 函数进行归一化操作是常用方法,但这个公式有点特别:分子和分母都使用了 log(1+x)形式而非 log(x),+1 的作用是确保最终计算结果是正数;而分母使用了 log(1+max(Si,Ti)),max 的目的是当 Si<Ti 时,分母固定为常量 log(1+Ti),而 Si>Ti 时,公式结果恒为 1。

这样一番复杂的计算,让 C 值处于 0-1 之间,真是算法的奇妙魔法!

02 魔法的优势与局限:Criticality Score

Criticality Score 的算法在评估开源项目时,确实有着超高优势,充分考虑了指标取值的差异,同时还允许灵活调整权重。不过,魔法也有一些局限性,例如计算结果本应在 0-1 之间,但在实际应用中可能出现负数或大于 1 的情况,这可不太科学哦!

而且 Criticality Score 定义的指标并不够全面,被批评不够准确和客观。嗯,虽然是魔法,但也有待改进!

03 Compass 的魔法优化

Compass 闪亮登场!为解决魔法的局限性,我们做了优化!

首先,我们去除了“Criticality Score”中一些无意义的指标,增加了更为合理的评估指标。目前,Compass 选取了 30 多个评估指标(还在不断增加中),涵盖生产力、稳健性和创新力三个维度,并将这些指标巧妙地组合起来,打造了一个完整的评估体系。

其次,我们设置了合理的权重和阈值。借助专家经验和 AHP 层次分析法,计算出可靠的权重。同时,根据对百万个开源项目代码仓的观测结果,设定了合理的阈值。真是玩出了魔法的精妙!

最后,我们对 0-1 之外的计算结果进行了标准化处理,保证这些结果最终都在 0-1 之间。这样一来,魔法的结果更科学啦!

为了验证优化方案,我们把优化后的指标模型计算结果与 Google Criticality Score 的计算结果进行了比较,最终发现两者具有显著的强正相关性。

此外,Compass 也在不断改进算法,未来我们将推出全新的算法体系~欢迎加入,让我们一起创新算法吧~

04 魔法变身魅力:从一分制到百分制

经历了优化,魔法的魅力更大了!

上面的公式计算出的结果在 0-1 之间,我们称之为“一分制”。现在,我们新增了将一分制切换为百分制的功能。

为什么要做这个转换呢?

这是因为一分制的计算结果形成图表以后,虽然曲线趋势携带信息量充分,但分值定义复杂,解释成本高。所以,我们新增了百分制的功能,让魔法变得更加通识易懂!

为了让一分制到百分制的转换更合理,我们首先对近百万个开源项目的一分制结果做了统计分布。没错!就是下面这个图~可以看到近 85%的项目得分集中在 0.2-0.3 和 0.3-0.5 之间。如果将一分制得分简单的等比例缩放成百分制,显然不符合常理啊~

image2.png

于是,我们与一些专家进行了一番探讨,然后建立了如下的对应关系。并且在 Dashboard 页面添加了“百分制”转换按钮,方便用户们灵活切换使用。

image2.png

05 探秘魔法,尽在 Compass!

探险家们,想要亲身体验魔法的力量吗?快打开 Compass 官网,点击探索页,找到你感兴趣的开源项目的 Dashboard。在右上角设置图标下点击“百分制”按钮,看着指标图表的值在 0-100 之间变化,感受魔法的奇妙变身!

image2.gif

当按钮是灰色(非选中状态)时,指标图表 Y 轴的值在 0-1 之间,这是利用前面那个神奇公式直接计算或标准化后的结果。当“百分制”按钮被选中,它将变成蓝色,此时指标图表 Y 轴的值在 0-100 之间,此时就实现了一分制到百分制的转换。

有问题?有建议?别犹豫!扫描文末二维码,加入 Compass 官方微信群,和小编及更多热爱开源的伙伴一起探讨交流吧~

未来,OSS Compass 将持续演进,回馈广大用户,为开源项目评估提供更大便利,助力开源社区健康可持续发展。

我们期待更多开发者加入 OSS Compass 社区,一起为 OSS Compass 的发展贡献力量。同时,也欢迎广大用户持续使用和反馈,为我们提升 OSS Compass 的能力提供源源不断的动力。

image2.png

如果点击按钮无效,请复制以下 URL 到浏览器:

https://join.slack.com/t/oss-compass/shared_invite/zt-1ttt9sv5h-8E~oPP6VJqm8ero5qH9LlA

你也可以加入我们的微信交流群,随时与我们交流。

image2.png

Copyright © 2022 开源指南针。保留所有权利。