你好👋
今天,让我们深入了解前 1% 的开发人员使用的7 个 ML 存储库(以及那些您可能从未听说过的存储库)!
对开发人员进行排名是一个难题,每种方法都有其问题。
例如,如果您根据开发人员用 Python 编写的代码行数对他们进行排名,您可能会发现一些非常优秀的 Python 开发人员名列前茅。
然而,您可能会遇到刚刚将大量 Python 代码复制粘贴到其存储库中的人,但他们的表现并不那么好。 🙁
在 Quine,我们开发了一种我们认为在大多数情况下都很稳健的方法,但同样不是 100% 完美!
它称为 DevRank(您可以在此处阅读有关我们如何计算此值的更多信息)。
我在本文中使用的前 1% 的概念基于 DevRank。
是的,我们会继续努力,让它每天变得更好!
我们查看 99% 已加星标的存储库。
然后,我们比较前 1% 的开发者与后 50% 的开发者对回购加注星标的倾向,并自动生成列表。
换句话说,这些存储库是前 1% 开发人员使用的隐藏宝石,尚未被更广泛的开发人员社区发现。
我处理你凌乱的 CSV
我们的一些朋友开发的一个包,用于解决加载 CSV 文件的常见痛点。许多 ML 管道开始时的一个小但常见的问题得到了很好的解决。 🔮
CleverCSV 能够检测和加载各种不同的 CSV 方言,而无需在其参数中被告知任何内容。 CSV 文件不提供本地执行此操作所需的信息,因此库需要一些巧妙的推理。
CleverCSV 甚至可以处理格式错误的杂乱 CSV 文件。
除了 Python 库之外,CleverCSV 还包括用于代码生成、探索和标准化的命令行界面。
https://github.com/alan-turing-institute/CleverCSV
通过 CLI 使用 scikit-learn 简化 ML 工作流程
您是否在 sklearn 中编写无尽的样板来获得多种算法的交叉验证结果?尝试使用skll
的界面来获得更清晰的编码体验。 ⚡️
Skll 旨在更有效地使用 scikit-learn 运行机器学习实验,从而减少大量编码的需要。
提供的主要实用程序称为run_experiment
,它在配置文件中指定的数据集上运行一系列学习器。
它还提供了一个Python API,可以与现有代码直接集成,包括用于格式转换和功能文件操作的工具。
https://github.com/EducationalTestingService/skll
几乎线性时间的 k 中心点聚类
回到这里的基本算法 - BanditPAM 是一种新的 k-medoids(认为是强大的“k-means”)算法,可以在几乎线性的时间内运行。 🎉
按照之前的算法,运行时间为 O(nlogn),而不是 O(n^2)。
聚类中心是数据点,因此对应于有意义的观察结果。 k-means簇的中心可能对应于无效数据;这对于 k-medoids 来说是不可能的。
可以使用任意距离度量(例如 L1 或汉明距离),有效的 k 均值算法通常仅限于 L2 距离。
从本文中实现的 BanditPAM 非常适合为团队工作寻找强大、可扩展解决方案的数据科学家,尤其是那些处理大型或复杂数据的团队。
https://github.com/motiwari/BanditPAM
每个人都需要的记录匹配器和重复检测器
您是否曾经遇到过在不同数据集中匹配名字拼写错误或属性略有不同的用户的经历?使用这个受自由可扩展生物医学记录链接 (FEBRL)启发、为现代 Python 工具重建的优秀库。 🛠️
利用 numpy 和 pandas 提供强大的 FEBRL 库的 Python 本机实现。
包括有监督和无监督的方法。
包括用于生成匹配对以启用监督机器学习方法的工具。
对于寻求灵活的、基于 Python 的解决方案来执行记录链接和重复数据删除任务的数据科学家来说,RecordLinkage 是理想的选择。
https://github.com/J535D165/recordlinkage
专注于网页内容提取
从网页中提取内容。 Dragnet 重点关注页面上的内容和用户评论,而忽略其余部分。对于我们的刮刀朋友来说这很方便。 🕷️
Dragnet 旨在通过删除不需要的内容(例如广告或导航设备)来从网页中提取关键字和短语。
提供简单的 Python 函数( extract_content
和extract_content_and_comments
),并可以选择包含或排除用于从 HTML 字符串中提取内容的注释。
sklearn-style
提取器类可用于更高级的用途,允许提取器的定制和培训。
https://github.com/dragnet-org/dragnet
最新的StanfordNLP研究模型直接在spaCy中
对标准 NLP 任务(例如词性标记、依存分析和命名实体识别)感兴趣? 🤔
SpaCy-Stanza 包装了 Stanza(以前称为 StanleyNLP)库,以便在 spaCy 管道中使用。
https://github.com/explosion/spacy-stanza
“用于图形采样任务的瑞士军刀”
您是否曾经使用过如此大的数据集以至于需要对其进行采样?对于简单数据,随机抽样可维持较小样本的分布。然而,在复杂的网络中,滚雪球抽样(您选择初始用户并包含他们的连接)可以更好地捕获网络结构。
这有助于避免分析中的偏差。 🔦
现在,您是否拥有图形结构数据并需要处理它的样本(出于算法或计算原因)? 👩💻
Littleballoffur 提供了一系列从图和网络中采样的方法,包括节点采样、边缘采样和探索采样。
采用统一的应用公共接口设计,使用户无需深厚的技术知识即可轻松应用复杂的采样算法。
https://github.com/benedekrozemberczki/littleballoffur
我希望这些发现对您有价值,并将有助于构建更强大的机器学习工具包! ⚒️
如果您有兴趣利用这些工具创建有影响力的开源项目,您应该首先了解您当前在Quine上的 DevRank 并了解其在未来几个月内的发展情况!
最后,请考虑通过加星标来支持这些项目。 ⭐️
PS:我们与他们没有任何关系。我们只是认为伟大的项目值得高度认可。
下周见,
你的黑客伙伴💚
巴普
如果你想加入自称为“最酷”的开源服务器😝,你应该加入我们的discord服务器。我们随时为您的开源之旅提供帮助。 🫶
也发布在这里。