️7 ML-репо, используемых ТОП-1% разработчиков Python [на основе РЕАЛЬНЫХ данных]

️7 ML-репо, используемых ТОП-1% разработчиков Python [на основе РЕАЛЬНЫХ данных]

Содержание
  1. CleverCSV
  2. Skll
  3. Dragnet
  4. SpaCy-Stanza
  5. Littleballoffur

Привет 👋

Сегодня мы рассмотрим 7 репозиториев ML, которые использует 1% лучших разработчиков (и о которых вы, скорее всего, никогда не слышали)!

v711feih4dkqk48xsbjg.gif
v711feih4dkqk48xsbjg.gif

Что определяет 1% лучших разработчиков?

Ранжирование разработчиков - сложная задача, и у каждой методологии есть свои проблемы.

Например, если ранжировать разработчиков по количеству строк кода, написанных ими на Python, то в верхней части рейтинга, скорее всего, окажутся очень хорошие Python-разработчики.

Однако вы можете получить людей, которые просто скопировали много кода на Python в свои репозитории, и они не так уж хороши. 🙁

В Quine мы разработали методологию, которая, по нашему мнению, является надежной в большинстве случаев, но, опять же, не на 100% идеальной!

Она называется DevRank (подробнее о том, как мы ее рассчитываем, вы можете прочитать здесь).

Понятие Top 1%, которое я использую в этой статье, основано на DevRank. Он не идеален, но это наш предпочтительный метод!

И да, мы продолжаем работать над ним, чтобы сделать его лучше с каждым днем!

Кстати, если вам интересно узнать свой DevRank, будь то в глобальном сообществе или на конкретном языке, вы можете проверить его, зарегистрировавшись на quine и наведя курсор на правую верхнюю иконку, как показано ниже.

xmfx5uhc3qrivsx6m0zn.png
xmfx5uhc3qrivsx6m0zn.png

Как узнать, какие репозитории использует 1% лучших?

Мы посмотрим на репозитории, которые задействованы 99-м процентилем.

Затем мы сравниваем склонность верхнего 1 % разработчиков и нижнего 50 % разработчиков отмечать репо и автоматически генерируем список.

Другими словами, эти репозитории - скрытые жемчужины, используемые 1 % лучших разработчиков, о которых еще предстоит узнать широкому сообществу разработчиков.

Я обрабатываю ваши грязные CSV

opemoc22wh74wjq9f4s1.png
opemoc22wh74wjq9f4s1.png

Пакет, разработанный нашими друзьями для решения распространенных проблем, связанных с загрузкой CSV-файлов. Небольшая, но распространенная проблема в начале многих ML-конвейеров, решена хорошо. 🔮

CleverCSV

умеет определять и загружать различные диалекты CSV, при этом ему не нужно ничего указывать в аргументах. CSV-файлы не предоставляют необходимой информации для выполнения этой задачи, поэтому библиотеке приходится делать некоторые умные выводы.

CleverCSV может работать даже с неаккуратными CSV-файлами, в которых есть ошибки форматирования.

В дополнение к библиотеке Python, CleverCSV также включает интерфейс командной строки для генерации, изучения и стандартизации кода.

https://github.com/alan-turing-institute/CleverCSV

Оптимизация рабочих процессов ML с помощью scikit-learn через CLI

wvx6b1d2iumjgjnntg1m.png
wvx6b1d2iumjgjnntg1m.png

Вы пишете бесконечные шаблоны в sklearn, чтобы получить кросс-валидированные результаты с помощью нескольких алгоритмов? Попробуйте вместо этого интерфейс skll, чтобы получить гораздо более чистый опыт кодирования. ⚡️

Skll

разработан для более эффективного проведения экспериментов по машинному обучению с помощью scikit-learn, уменьшая необходимость в обширном кодировании.

Основная утилита называется run_experiment, она запускает серию обучающих программ на наборах данных, указанных в конфигурационном файле.

Она также предлагает Python API для простой интеграции с существующим кодом, включая инструменты для преобразования форматов и операций с файлами характеристик.

https://github.com/EducationalTestingService/skll

Кластеризация по методу k-Medoids за почти линейное время

289p2ef4awklvz7g31bd.png
289p2ef4awklvz7g31bd.png

Вернемся к фундаментальным алгоритмам - BanditPAM - это новый алгоритм k-medoids (считайте, что это надежный “k-means”), который может работать почти в линейное время. 🎉

Работает за время O(nlogn), а не O(n^2), как предыдущие алгоритмы.

Центры кластеров являются точками данных, а значит, соответствуют значимым наблюдениям. Центр кластера k-средних может соответствовать недостоверным данным, что невозможно в случае k-средних.

Можно использовать произвольную метрику расстояния (например, расстояние L1 или расстояние Хэмминга), но эффективные алгоритмы k-means обычно ограничиваются расстоянием L2.

Реализованный на основе этой статьи BanditPAM идеально подходит для специалистов по исследованию данных, которые ищут мощное, масштабируемое решение для групповой работы, особенно для тех, кто имеет дело с большими или сложными данными.

https://github.com/motiwari/BanditPAM

Программа для подбора записей и обнаружения дубликатов, которая нужна всем

47n12zah63mqf36zv93d.png
47n12zah63mqf36zv93d.png

Вам приходилось сталкиваться с проблемой сопоставления пользователей в разных наборах данных, которые неправильно написали свое имя или имеют немного разные атрибуты? Воспользуйтесь этой замечательной библиотекой, вдохновленной свободно расширяемой связью биомедицинских записей (FEBRL), перестроенной под современный инструментарий Python. 🛠️

Предоставляет нативную реализацию мощной библиотеки FEBRL на языке Python, использующую numpy и pandas. Включает в себя как контролируемые, так и неконтролируемые подходы. Включает инструменты для генерации пар совпадений, позволяющие использовать контролируемые подходы ML. RecordLinkage идеально подходит для специалистов по исследованию данных, которые ищут гибкое решение на базе Python для выполнения задач связывания записей и дедупликации данных.

https://github.com/J535D165/recordlinkage

Ориентирован исключительно на извлечение содержимого веб-страниц

b6mzkxtk1r6mlpb1trfa.png
b6mzkxtk1r6mlpb1trfa.png

Извлечение содержимого из веб-страниц. Dragnet фокусируется на содержимом и user комментарии на странице и игнорирует остальные. Это удобно для наших друзей-скреперов. 🕷️

Dragnet

предназначен для извлечения ключевых слов и фраз из веб-страниц путем удаления нежелательного контента, такого как реклама или навигационное оборудование.

Предоставляет простые функции Python (extract_content и extract_content_and_comments) с возможностью включения или исключения комментариев для извлечения содержимого из HTML-строк.

Для более продвинутого использования имеется класс экстрактора в стиле sklearn, позволяющий настраивать и обучать экстракторы.

https://github.com/dragnet-org/dragnet

Последние исследовательские модели StanfordNLP прямо в spaCy

jb11mjv708eews0gh2tk.png
jb11mjv708eews0gh2tk.png

Интересуетесь стандартными задачами НЛП, такими как тегирование частей речи, разбор зависимостей и распознавание именованных сущностей? 🤔

SpaCy-Stanza

оборачивает библиотеку Stanza (ранее StanfordNLP) для использования в конвейерах spaCy.

В пакет включены возможности распознавания именованных сущностей для некоторых языков, что расширяет его возможности в задачах обработки естественного языка.

Он поддерживает 68 языков, что делает его универсальным для различных лингвистических приложений.

Пакет позволяет настраивать конвейер с помощью дополнительных компонентов spaCy.

https://github.com/explosion/spacy-stanza

”Швейцарский армейский нож для задач выборки графов”

hogpu38u2yojo1kizxfg.png
hogpu38u2yojo1kizxfg.png

Приходилось ли вам работать с таким большим набором данных, что вам нужно взять из него выборку? Для простых данных случайная выборка сохраняет распределение в меньшей выборке. Однако в сложных сетях выборка “снежный ком” - когда вы выбираете начальных пользователей и включаете их связи - лучше отражает структуру сети. Это помогает избежать предвзятости при анализе. 🔦

Итак, есть ли у вас данные с графовой структурой и нужно ли вам работать с их выборками (по алгоритмическим или вычислительным причинам)? 👩‍💻

Littleballoffur

предлагает ряд методов выборки из графов и сетей, включая выборку по узлам, ребрам и исследованиям.

Разработанный с унифицированным общедоступным интерфейсом приложения, он позволяет пользователям легко применять сложные алгоритмы выборки без глубоких технических знаний.

https://github.com/benedekrozemberczki/littleballoffur

Надеюсь, эти открытия будут полезны для вас и помогут создать более надежный набор инструментов ML! ⚒️

Если вы заинтересованы в использовании этих инструментов для создания значимых проектов с открытым исходным кодом, вам следует сначала узнать, каков ваш текущий DevRank на Quine, и посмотреть, как он будет развиваться в ближайшие месяцы!

И наконец, пожалуйста, поддержите эти проекты, поставив на них звезду. ⭐️

PS: Мы не связаны с ними. Мы просто считаем, что великие проекты заслуживают великого признания.

mgox16jmoa7kag1o55f0.gif
mgox16jmoa7kag1o55f0.gif

Увидимся на следующей неделе,

Ваш приятель 💚

Bap

Если вы хотите присоединиться к самопровозглашенному “самому крутому” серверу с открытым исходным кодом 😝, вам стоит присоединиться к нашему discord-серверу. Мы здесь, чтобы помочь вам в вашем путешествии в open source. 🫶

9191d30a-cfa3-4f20-804a-ab1beeddec8e.gif
9191d30a-cfa3-4f20-804a-ab1beeddec8e.gif