Цель Scikit-Learn 1.0

Какие новые функции и почему они так важны, чтобы стать первым крупным выпуском?

Изображение с Unsplash (Мэй Му)

С момента появления Scikit-Learn прошло 14 лет и 24 бета-релиза, и, наконец, он достиг версии 1.0. Это может показаться немного странным, если учесть тот факт, что Scikit-Learn использовался тысячами компаний, специалистов по обработке данных, исследователей… в течение долгого времени, и все считают его самой распространенной структурой для машинного обучения общего назначения.

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

1. Немного истории

Scikit-Learn впервые появился в 2007 году как проект Google Summer of Code и продолжал развиваться в исследовательской среде . Его цель заключалась в том, чтобы служить инструментом для анализа данных без необходимости фокусироваться на какой-либо конкретной технологии или коде. По этой причине он основан на Python, языке с открытым исходным кодом, прост в использовании, универсален и может встраивать код C.

Изображение автора: Scikit-Learn как сила, необходимая скромным джедаям данных для борьбы с имперскими компаниями с помощью надежных и эффективных библиотечных инструментов.

Еще одна большая проблема при работе с данными - это вычислительные ресурсы с точки зрения памяти и обработки, поэтому Scikit-Learn всегда прилагал большие усилия для повышения эффективности алгоритма, чтобы даже пользователи с небольшими вычислительными ресурсами могли работать с данными. Scikit-Learn делает это с помощью статистических приближений и низкоуровневого кода (Cython).

Более того, ключевым моментом Scikit-Learn помимо эффективности и простоты является документация. Многие специалисты по данным (я) изучали машинное обучение, читая документацию Scikit-Learn. Ожидается, что это будет не просто документация по коду, а путь обучения Data Science.

2. Релиз 1.0

Если мы увидим основные моменты выпуска, мы увидим, что есть изменения в API и даже некоторые интересные новые функции.

Изображение: подпись с сайта scikit-learn.org

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

Изображение автора: количество функций на тег и код для его создания.

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

3. Основные моменты выпуска

3.1. Стандартизация API

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

Стандартный интерфейс и подпись между объектами с одинаковой функциональностью.

Однако сигнатура модуля была такой же, но значения, которые не были ожидаемыми, между разными модулями и выпусками (например, «X должен быть np.matrix или np.array?», «Loss = 'ls' или loss = 'mse'?… »). Вот некоторые основные моменты, позволяющие решить эту проблему:

  • Подпись : Теперь они заставляют использовать только аргументы, содержащие только ключевые слова.
  • Типы данных : новые функции работают с Pandas (например, оценщики сохраняют имена функций pd.DataFrame при обучении). Между тем, тип np.matrix устарел.
  • Значения аргументов : некоторые функции и модули имеют одинаковые аргументы (потери, масштабирование, критерий,…), но ожидаемые значения были разными, и это изменилось. Некоторые кодировщики теперь могут принимать отсутствующие и неизвестные значения.
  • Изображение автора: Теперь значения аргументов необходимо передать с именем аргумента. Это хорошее ограничение, позволяющее избежать проблем с устаревшим плохо разработанным кодом.

Когда вы создаете библиотеку для работы с мыслящими данными, чтобы ее могли обслуживать все, вы также должны учитывать, что у большинства людей нет больших вычислительных ресурсов, а есть только скромные домашние ноутбуки . Вот почему Scikit-Learn всегда пытался использовать низкоуровневые встроенные языки (Cython) для повышения производительности (например, в алгоритмах SVM и GBDT).

Scikit-Learn позволяет использовать машинное обучение на скромных ноутбуках с ограниченными ресурсами.

В этом выпуске повышена эффективность многих функций и модулей, например:

  • Препроцессоры: (StandardScaler, KBinsDiscretizer, PolynomialFeatures)
  • Оценщики: (Логистическая регрессия, Соседи, Кластер,… алгоритмы)
  • Алгоритмы уменьшения размерности
  • Online One-Class SVM: используйте One-Class SVM со стохастическим градиентным спуском и аппроксимациями ядра, чтобы снизить сложность с квадратичной до линейной.
  • HistGradientBoostingClassifier: реализация повышения градиента, в которой значения функций разбиты на сплайны. Деревья изучают значения сплайна вместо самого значения, уменьшая количество элементов.
  • Изображение автора: Сравнение времени вычисления классификатора повышения градиента и классификатора повышения градиента гистограммы и кода для создания графика.

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

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

В этом выпуске добавлены некоторые новые функции, упрощающие вычисление метрик, а также некоторые новые метрики:

  • Добавлен метод: для показателей и графиков from_estimator и from_predictions.
  • Новые показатели: pinball_loss и tweedie_score.
  • Новые графики для отображения результатов CalibrationDisplay.
  • Изображение из документации Scikit-Learn

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

Заголовок из Scikit-Learn GitHub issues

Из более чем 2100 объединенных запросов на вытягивание около 800 являются улучшениями в нашей документации .

Эти обновления в документации в основном предназначены для повышения качества ресурсов для пользователей, а также для удовлетворения дополнительных потребностей, которые им необходимы. Это также может быть связано с этическими соображениями, такими как удаление набора данных Бостона.

4. Выводы

В этой статье мы рассмотрели основные функции Scikit-Learn версии 1.0 и попытались объяснить их важность в историческом контексте библиотеки.

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

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

и именно этого они достигли с этим выпуском.

Suggested posts

Переосмысление медиа: пять истин Макчесни и будущее коммуникаций

В современном гиперсвязанном мире системы СМИ играют ключевую роль в формировании общественного мнения и, следовательно, в демократическом принятии решений. В своем глубоком анализе политической экономии коммуникации ученый Роберт МакЧесни бросает вызов общепринятому мнению и представляет то, что он называет «пятью истинами» о СМИ.

BARD VS ChatGPT: Тестирование на аналитических задачах

Различия, сходства и тестирование как языковых моделей, так и сравнения

BARD VS ChatGPT: Тестирование на аналитических задачах

МЫ МОЖЕМ ПОДКЛЮЧИТЬСЯ: | ЛИНКЕДИН | Твиттер | СРЕДНИЙ | ПОДСТАВКА | 10 мая в Индии появился самый разрекламированный и сильный конкурент Google для ChatGPT, BARD. Мое увлечение не позволяло мне перестать сравнивать Bard с ChatGPT, и вот несколько замечательных сравнений.

Related posts

Что делает подкаст влиятельным?

Что делает подкаст влиятельным?

На прошлой неделе я заметил пресс-релиз, разосланный через PressGazette (новостной веб-сайт британских СМИ). В статье сообщалось, что Acast, скандинавская компания по размещению и рекламе подкастов, возглавит консорциум «вероятно, самых влиятельных» издателей подкастинга.

Обучение на рабочей неделе важнее, чем вы думаете

Обучение на рабочей неделе важнее, чем вы думаете

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

БЕЗГРАНИЧНАЯ ЖИЗНЬ

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

Архив этой угрозы: Том 7 Черный Баста

Архив этой угрозы: Том 7 Черный Баста

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