我目前正在一个项目中工作,需要量化算法之间的(不)相似性。也就是说,我有几十个用于同一目的的算法,我想量化哪些算法更接近(即更相似),哪些是真正的“新颖”。我的谷歌搜索和stackoverflow搜索都没有找到相关信息,所以我希望有人能提供一些帮助。是否存在这样的度量标准?
作为一种相似性度量,您可以创建一些智能构建的数据集,并在所有这些数据集上运行每个算法。然后,您将获得与每个算法相关联的运行时间的n维向量,然后可以使用任意距离来衡量它们之间的相似性。我想像余弦距离会是一个不错的第一猜测,因为如果您的数据集大小各异,您可能会按照它们扩展的方式对算法进行分类。除了运行时间外,您还可以监视最大内存使用量或其他任何您可以想到的度量。