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

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

Начиная:

Задачи машинного обучения можно разделить на 3 широкие категории: контролируемое, неконтролируемое и обучение с подкреплением, в зависимости от наличия целевого класса или бизнес-ограничений.

Документация Scikit-learn предлагает шпаргалку на основе блок-схемы выбора оценщика, которая может помочь специалистам по данным понять и выбрать правильный алгоритм машинного обучения для своих данных.

(Источник), Scikit-learn шпаргалка, чтобы выбрать правильный оценщик

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

На приведенной выше блок-схеме синие кружки относятся к выбору условия. Для каждого условия результаты обозначены красными, зелеными или оранжевыми стрелками, обозначающими «да», «нет» и «не работает» соответственно. Зеленые прямоугольники — это отдельные алгоритмы машинного обучения.

1. Классификация:

Учебные данные должны иметь как минимум несколько сотен экземпляров для обучения надежной модели. Для задач классификации целевой класс должен быть дискретным.

(Источник), шпаргалка Scikit-learn для выбора правильного оценщика для задач классификации

SVC, Naive Bayes, k-NN являются одними из популярных оценок классификации, но имеют сравнительно высокую временную сложность. Для данных с выборками ‹100 тыс. можно попробовать линейную модель SVC. Для текстовых данных линейная модель SVC может работать не очень хорошо, поэтому можно попробовать наивный байесовский классификатор, который довольно хорошо работает с текстовыми функциями. Для нетекстовых функций хорошим выбором будет алгоритм машинного обучения k-NN.

Для выборок >100 тыс. можно попробовать классификатор SGD с аппроксимацией ядра, который имеет сравнительно меньшую временную сложность. Если эти модели показывают низкую производительность, высокое смещение или проблемы с высокой дисперсией, то можно даже попробовать некоторые методы ансамблей.

2. Регрессия:

Пакет Scikit-learn предлагает реализацию различных регрессионных оценок для набора данных с непрерывными метками целевого класса.

(Источник), шпаргалка Scikit-learn для выбора правильной оценки для задач регрессии

Как и в задачах классификации, для данных с >100 000 выборок регрессор SGD с аппроксимацией ядра может быть предпочтительнее, поскольку он имеет конкурентоспособную меньшую временную сложность.

Для данных с выборками ‹100 тыс. можно использовать регрессию Лассо или регрессию эластичной сети для данных с большой размерностью, в противном случае можно выбрать регрессию хребта.

Если эти модели показывают низкую производительность, высокое смещение или проблемы с высокой дисперсией, то можно даже попробовать некоторые методы ансамблей.

3. Кластеризация:

Для неконтролируемых задач пакет scikit-learn предлагает различные пакеты кластеризации.

(Источник), шпаргалка Scikit-learn для выбора правильного оценщика для задач кластеризации

k-Means — популярный метод кластеризации, но он имеет высокую временную сложность. Для большой выборки данных можно попробовать вариант кластеризации k-средних, называемый мини-пакетным k-средним. Алгоритмы спектральной кластеризации, такие как кластеризация гауссовой смеси, могут быть обучены, если k-Means не работает хорошо.

Если количество кластеров заранее определено деловыми людьми, то можно попробовать VBGMM (вариационный вывод для модели смеси Гаусса).

4. Уменьшение размера:

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

(Источник), шпаргалка Scikit-learn для выбора правильного оценщика для задач уменьшения размерности

PCA — это популярный метод уменьшения размерности, в котором для уменьшения размерности данных используются вектор или значения Eighen. Для небольших выборок данных можно попробовать методы спектрального встраивания, такие как Isomap или t-SNE.

Заключение:

В этой статье мы обсудили шпаргалку или набор правил, которым можно следовать, чтобы выбрать правильный оценщик для вашего набора данных. Обсуждаемые выше правила или алгоритмы машинного обучения ограничены пакетами scikit-learn.

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

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

Исходное сообщение здесь.

Читайте другие статьи по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от начального до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг. Вы также можете пройти обучение по науке о данных по запросу, где бы вы ни находились, с нашей платформой Ai+ Training. Подпишитесь также на нашу быстрорастущую публикацию на Medium, ODSC Journal, и узнайте, как стать писателем.