Что такое машинное обучение?

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

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

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

Общая программа (не машинное обучение)

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

Программа машинного обучения

Теперь для того же примера программа машинного обучения будет начинаться с общей формулы, но после каждой попытки/опыта она рефакторит свою формулу. По мере того, как формула постоянно совершенствуется, используя больше опыта (точки данных), результат также улучшается. Вы видите эти вещи в действии вокруг себя в видеорекомендациях на YouTube, в новостной ленте Facebook и т. д.

Управление данными

Обработка данных

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

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

Шаг 1. Сбор

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

Шаг 2. Подготовка

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

  • Проверьте качество данных! Первый вопрос, который вы должны задать — доверяете ли вы своим данным? Даже самые сложные алгоритмы машинного обучения не могут работать с плохими данными. Как правило, вы должны смотреть на несколько ключевых вещей.
  • Насколько ощутима человеческая ошибка? Если ваши данные собираются или маркируются людьми, проверьте подмножество данных и оцените, как часто случаются ошибки.
  • Были ли какие-либо технические проблемы при передаче данных? Например, одни и те же записи могут дублироваться из-за ошибки сервера, или у вас произошел сбой хранилища, или, возможно, вы подверглись кибератаке. Оцените, как эти события повлияли на ваши данные.
  • Сколько пропущенных значений в ваших данных? Хотя существуют способы обработки пропущенных записей, которые мы обсудим ниже, оцените, является ли их количество критическим.
  • Соответствуют ли ваши данные вашей задаче? Если вы продавали бытовую технику в США и теперь планируете выйти в Европу, можете ли вы использовать те же данные для прогнозирования запасов и спроса?
  • Ваши данные несбалансированы? Представьте, что вы пытаетесь снизить риски цепочки поставок и отфильтровываете тех поставщиков, которых считаете ненадежными, и используете ряд атрибутов (например, местоположение, размер, рейтинг и т. д.). Если в помеченном наборе данных есть 1500 записей, помеченных как надежные, и только 30, которые вы считаете ненадежными, у модели не будет достаточно выборок, чтобы узнать о ненадежных.

Шаг 3. Введите данные

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

Шаг 4. Обработка данных

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

Импортировать все важные библиотеки

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

  • NumPy — NumPy — это основной пакет для научных вычислений в Python. Следовательно, он используется для вставки любого типа математической операции в код. Используя NumPy, вы также можете добавлять в свой код большие многомерные массивы и матрицы.
  • Pandas. Pandas — это отличная библиотека Python с открытым исходным кодом для обработки и анализа данных. Он широко используется для импорта и управления наборами данных. Он включает в себя высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для Python.
  • Matplotlib — Matplotlib — это библиотека двухмерных графиков Python, которая используется для построения любых типов диаграмм в Python. Он может предоставлять показатели качества публикации в многочисленных форматах печатных копий и интерактивных средах на разных платформах (оболочки IPython, блокноты Jupyter, серверы веб-приложений и т. д.).

Обработка несбалансированных данных

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

Например, у вас может быть задача классификации двух классов (бинарная) со 100 экземплярами (строками). В общей сложности 80 экземпляров имеют класс 1, а остальные 20 экземпляров — класс 2.

Это несбалансированный набор данных, и соотношение экземпляров класса 1 и класса 2 составляет 80:20 или точнее 4:1.

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

Метод 1. Можете ли вы собрать больше данных?

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

Способ 2. Попробуйте изменить показатель эффективности

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

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

  • Матрица путаницы: разбивка прогнозов на таблицу, показывающую правильные прогнозы (диагональ) и типы сделанных неверных прогнозов (какие классы были присвоены неверным прогнозам).
  • Точность: показатель точности классификатора.
  • Отзыв: мера полноты классификаторов.
  • Оценка F1 (или F-оценка): средневзвешенное значение точности и полноты.

Для данного класса различные комбинации полноты и точности имеют следующие значения:

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

Я бы также посоветовал вам обратить внимание на следующее:

  • Каппа (или каппа Коэна): точность классификации, нормированная дисбалансом классов в данных.
  • Кривые ROC. Как и точность и полнота, точность делится на чувствительность и специфичность, и модели можно выбирать на основе пороговых значений баланса этих значений.

Способ 3. Попробуйте выполнить повторную выборку набора данных.

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

Это изменение называется выборкой вашего набора данных, и есть два основных метода, которые вы можете использовать для выравнивания классов:

  1. Вы можете добавить копии экземпляров из недопредставленного класса, называемого избыточной выборкой (или более формальной выборкой с заменой), или
  2. Вы можете удалить экземпляры из чрезмерно представленного класса, что называется недостаточная выборка.

Эти подходы часто очень просты в реализации и быстро работают. Они являются отличной отправной точкой.

  • Подумайте о тестировании недостаточной выборки, когда у вас много данных (десятки или сотни тысяч экземпляров или более).
  • Рассмотрите возможность тестирования избыточной выборки, когда у вас мало данных (десятки тысяч записей или меньше).
  • Рассмотрите возможность тестирования случайных и неслучайных (например, стратифицированных) схем выборки.
  • Рассмотрите возможность тестирования различных коэффициентов повторной выборки (например, вам не нужно нацеливаться на коэффициент 1:1 в задаче бинарной классификации, попробуйте другие коэффициенты).

Метод 4. Расширение данных (используется для неструктурированных наборов классификационных данных)

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

Обработка пропущенных значений в числовых данных

Способ 1. Удаление отсутствующей строки/столбца

Этот метод предварительной обработки данных обычно используется для обработки нулевых значений. Здесь мы либо удаляем определенную строку, если она имеет нулевое значение для определенного признака, либо конкретный столбец, если в нем более 75 % отсутствующих значений.

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

Метод 2. Вменение среднего, медианы или режима

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

Способ 3. Замените отсутствующие значения ближайшими соседними значениями.

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

Обработка выбросов

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

Исследовательский анализ данных в основном выполняется с использованием следующих методов:

  • Одномерный анализ: предоставляет сводную статистику для каждого поля в наборе необработанных данных (или) сводку только по одной переменной. Ex: - CDF, PDF, блочная диаграмма, диаграмма для скрипки.
  • Двумерный анализ:выполняется для нахождения взаимосвязи между каждой переменной в наборе данных и целевой переменной, представляющей интерес (или) с использованием 2 переменных и нахождением взаимосвязи между ними.Пример :-Коробчатый сюжет, Сюжет для скрипки.
  • Многомерный анализ: –выполняется для понимания взаимодействий между различными полями в наборе данных (или) обнаружения взаимодействий между переменными, число которых превышает 2. Пример: – Парный график и трехмерный точечный график.

При обнаружении выбросов мы проводим либо одномерный, либо многомерный анализ. Когда ваша линейная модель имеет один предиктор, вы можете использовать одномерный анализ. Однако это может привести к вводящим в заблуждение результатам, если вы используете его для нескольких предикторов. Одним из распространенных способов обнаружения выбросов является предположение, что обычные данные поступают из известного распределения (например, данные распределены по Гауссу).

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

1. Одномерный метод (для категориальных признаков)

Мы можем использовать График подсчета или Коробчатая диаграмма, чтобы понять распределение категориальных признаков. Одним из самых простых методов обнаружения выбросов является использование блочных диаграмм. Блочная диаграмма — это графическое изображение для описания распределения данных. На блочных диаграммах используется медиана, а также нижняя и верхняя квартили.

Коробка-сюжет

Самый быстрый и простой способ определить выбросы — визуализировать их с помощью графиков. Если ваш набор данных невелик (примерно до 10 000 наблюдений и 100 функций), я настоятельно рекомендую вам построить диаграммы рассеяния и диаграммы переменных.

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

Коробчатая диаграмма использует межквартильный диапазон для обнаружения выбросов. Здесь мы сначала определяем квартили Q1 и Q3.

Межквартильный диапазон определяется как IQR = Q3 — Q1

Верхний предел = Q3+1,5*IQR

Нижний предел = Q1–1,5*IQR

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

Участок подсчета

Для категориальных переменных мы будем использовать таблицу частот, чтобы понять распределение каждой категории. Мы также можем читать как процент значений в каждой категории. Его можно измерить с помощью двух показателей: Количество и Количество% для каждой категории. В качестве визуализации можно использовать гистограмму.

Двумерный анализ

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

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

Давайте подробно разберем возможные комбинации:

Непрерывный и непрерывный. При выполнении двумерного анализа между двумя непрерывными переменными мы должны смотреть на точечную диаграмму. Это отличный способ выяснить взаимосвязь между двумя переменными. Характер графика рассеяния указывает на взаимосвязь между переменными. Связь может быть линейной или нелинейной.

Диаграмма рассеивания показывает взаимосвязь между двумя переменными, но не указывает на силу взаимосвязи между ними. Чтобы найти силу связи, мы используем корреляцию. Корреляция варьируется от -1 до +1.

  • -1: идеальная отрицательная линейная корреляция
  • +1: идеальная положительная линейная корреляция и
  • 0: нет корреляции

Корреляцию можно получить по следующей формуле:

Корреляция = Ковариация(X,Y) / SQRT(Var(X)*Var(Y))

Различные инструменты имеют функцию или функциональные возможности для определения корреляции между переменными. В Excel функция CORREL() используется для возврата корреляции между двумя переменными, а SAS использует процедуру PROC CORR для определения корреляции. Эти функции возвращают значение корреляции Пирсона для определения связи между двумя переменными.

Категорический и категориальный: чтобы найти связь между двумя категориальными переменными, мы можем использовать следующие методы:

  • Двусторонняя таблица: мы можем начать анализ отношений, создав двустороннюю таблицу количества и количества процентов. Строки представляют категорию одной переменной, а столбцы представляют категории другой переменной. Мы показываем количество или количество% наблюдений, доступных в каждой комбинации категорий строк и столбцов.
  • Столбчатая диаграмма с накоплением. Этот метод больше похож на визуальную форму двусторонней таблицы.
  • Тест хи-квадрат. Этот тест используется для определения статистической значимости связи между переменными. Кроме того, он проверяет, достаточно ли убедительны доказательства в выборке, чтобы обобщить эту связь и для большей совокупности. Хи-квадрат основан на разнице между ожидаемой и наблюдаемой частотами в одной или нескольких категориях в двусторонней таблице. Он возвращает вероятность для вычисленного распределения хи-квадрат со степенью свободы.

Вероятность 0: это указывает на то, что обе категориальные переменные являются зависимыми

Вероятность 1: показывает, что обе переменные независимы.

Вероятность менее 0,05: указывает на то, что взаимосвязь между переменными значима при достоверности 95%. Статистика теста хи-квадрат для теста независимости двух категориальных переменных находится по формуле:

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

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

Гистограмма

  • Гистограмма визуализирует распределение данных на непрерывном интервале.
  • Каждая полоса гистограммы представляет табличную частоту для каждого интервала/бина.
  • Проще говоря, высота представляет собой частоту для соответствующего бина (интервала).

Схемы KDE

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

График плотности представляет собой сглаженную непрерывную версию гистограммы, рассчитанной на основе данных. Наиболее распространенная форма оценки известна как оценка плотности ядра (KDE). В этом методе непрерывная кривая (ядро) рисуется в каждой отдельной точке данных, а затем все эти кривые складываются вместе для получения единой плавной оценки плотности.

После выполнения визуализации наших категориальных данных выполняется кодирование, а затем мы нормализуем или стандартизируем наши данные.

Что такое категориальное кодирование?

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

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

Различные подходы к категориальному кодированию

Итак, как мы должны обрабатывать категориальные переменные? Как оказалось, существует несколько способов обработки категориальных переменных. В этой статье я расскажу о двух наиболее широко используемых методах:

  • Кодировка этикетки
  • Горячее кодирование

Кодировка этикетки

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

Горячее кодирование

One-Hot Encoding — еще один популярный метод обработки категориальных переменных. Он просто создает дополнительные функции на основе количества уникальных значений в категориальной функции. Каждое уникальное значение в категории будет добавлено как функция. Это больше подходит, когда в функции всего 2 или 3 категории.

One-Hot Encoding — это процесс создания фиктивных переменных.

После завершения кодирования мы преобразовали все наши функции в числовые значения. Теперь мы можем приступить к нормализации или стандартизации. Целью нормализации является приведение значений числовых столбцов в наборе данных к общему масштабу без искажения различий в диапазонах значений. Для машинного обучения каждый набор данных не требует нормализации. Поэтому мы нормализуем данные, чтобы привести все переменные к одному диапазону.

Нормализация или стандартизация

Что такое нормализация?

Нормализация — это метод масштабирования, при котором значения сдвигаются и масштабируются таким образом, что в конечном итоге они находятся в диапазоне от 0 до 1. Он также известен как масштабирование минимум-максимум.

Вот формула нормализации:

Здесь Xmax и Xmin — максимальное и минимальное значения признака соответственно.

  • Когда значение X является минимальным значением в столбце, числитель будет равен 0, и, следовательно, X' равно 0
  • С другой стороны, когда значение X является максимальным значением в столбце, числитель равен знаменателю, и, таким образом, значение X’ равно 1.
  • Если значение X находится между минимальным и максимальным значением, то значение X' находится между 0 и 1.

Что такое стандартизация?

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

Вот формула стандартизации:

где,

μ — это среднее значение характеристик.

σ — это стандартное отклонение значений признаков.

Обратите внимание, что в этом случае значения не ограничены определенным диапазоном.

Большой вопрос — нормализовать или стандартизировать?

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

  • Нормализация полезна, когда вы знаете, что распределение ваших данных не соответствует распределению Гаусса. Это может быть полезно в алгоритмах, которые не предполагают никакого распределения данных, таких как K-ближайшие соседи и нейронные сети.
  • Стандартизация, с другой стороны, может быть полезна в случаях, когда данные следуют распределению Гаусса. Однако это не обязательно должно быть правдой. Кроме того, в отличие от нормализации, стандартизация не имеет ограничивающего диапазона. Таким образом, даже если в ваших данных есть выбросы, стандартизация не повлияет на них.

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

Шаг 5. Вывод

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

Шаг 6. Хранение

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

Разделение набора данных на обучающий и тестовый наборы

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

  1. Обучающий набор
  2. Набор тестов

Зачем нам нужно разделение?

Что ж, это ваша модель алгоритма, которая будет учиться на ваших данных, чтобы делать прогнозы. Обычно мы делим набор данных на соотношение 70:30 или 80:20, что это значит, 70 процентов данных берутся в поезде, а 30 процентов данных берутся в тесте. Однако это разделение может варьироваться в зависимости от формы и размера набора данных.

X_train — обучающая часть матрицы функций.

X_test — тестовая часть матрицы функций.

y_train — обучающая часть зависимой переменной, которая здесь связана с X_train.

y_test — это тестовая часть зависимой переменной, которая здесь связана с X_train.

Контролируемое обучение

Этот алгоритм состоит из переменной цели/результата (или зависимой переменной), которая должна быть предсказана на основе заданного набора предикторов (независимых переменных). Используя этот набор переменных, мы создаем функцию, которая сопоставляет входные данные с желаемыми выходными данными. Процесс обучения продолжается до тех пор, пока модель не достигнет желаемого уровня точности обучающих данных. Примеры обучения с учителем: регрессия, дерево решений, случайный лес, KNN, логистическая регрессия и т. д.

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

Линейная регрессия

«Проще говоря, линейная регрессия — это способ, которым мы анализируем силу взаимосвязи между 1 переменной (нашей «переменной результата») и 1 или несколькими другими переменными (нашими «независимыми переменными»).

Допустим, мы хотели измерить, какое влияние оказывает высота над уровнем моря на количество осадков в штате Нью-Йорк: нашей конечной переменной (или переменной, изменение которой нам важно увидеть) будет количество осадков, а нашей независимой переменной будет высота над уровнем моря. При линейной регрессии эта результирующая переменная должна быть конкретно количество дюймов осадков, а не просто категория True/False, указывающая, шел ли дождь на высоте x. . Это потому, что наша переменная результата должна быть непрерывной — это означает, что она может быть любым числом (включая дроби) в диапазоне чисел.

Ридж и регрессия LASSO

«Значит, линейная регрессия — это не так уж и страшно, верно? Это просто способ увидеть, как что-то влияет на что-то другое. Прохладный.

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

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

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

Вы, наверное, задаетесь вопросом, почему нас волнует, использует ли наша модель независимые переменные, которые не оказывают влияния. Если они не оказывают влияния, не будет ли наша регрессия их просто игнорировать? Ответ - нет! Подробнее о машинном обучении мы сможем узнать позже, но в основном мы создаем эти модели, передавая им кучу «обучающих» данных. Затем мы видим, насколько хороши наши модели, проверяя их на наборе «тестовых» данных. Таким образом, если мы обучаем нашу модель с набором независимых переменных, некоторые из которых имеют значение, а некоторые нет, наша модель будет работать очень хорошо на наших обучающих данных (потому что мы обманываем ее, чтобы она думала, что все, что мы ей передали, имеет значение). ), но очень плохо на наших тестовых данных. Это связано с тем, что наша модель недостаточно гибка, чтобы хорошо работать с новыми данными, в которых нет всех. не замужем. маленький. мы кормили его на этапе обучения. Когда это происходит, мы говорим, что модель «переоснащена».

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

Слева: регрессия LASSO (вы можете видеть, что коэффициенты, представленные красными ступенями, могут равняться нулю, когда они пересекают ось y). Справа: регрессия хребта (вы можете видеть, что коэффициенты приближаются, но никогда не равны нулю, потому что они никогда не пересекают ось y). Во всех типах регуляризации есть так называемый штрафной термин (греческая буква лямбда: λ). Этот штрафной член математически уменьшает шум в наших данных.

В гребенчатой ​​регрессии, иногда известной как «регрессия L2», штрафной член представляет собой сумму квадратов значений коэффициентов ваших переменных. (Коэффициенты в линейной регрессии — это просто числа, прикрепленные к каждой независимой переменной, которые говорят вам, какое влияние каждая из них окажет на переменную результата. Иногда мы называем их «весами».) В гребневой регрессии ваш штрафной член уменьшает коэффициенты ваших независимых переменных, но никогда не избавляются от них полностью. Это означает, что при гребневой регрессии шум в ваших данных всегда будет немного учитываться вашей моделью.

Другим типом регуляризации является LASSO или регуляризация «L1». При регуляризации LASSO вместо того, чтобы наказывать каждую функцию в ваших данных, вы наказываете только высокие коэффициенты-функции. Кроме того, LASSO имеет возможность уменьшать коэффициенты до нуля. Это по существу удаляет эти функции из вашего набора данных, потому что теперь они имеют нулевой «вес» (т. е. они по существу умножаются на ноль)». С помощью регрессии LASSO ваша модель может избавиться от большей части шума в вашем наборе данных. Это очень полезно в некоторых сценариях!

Логистическая регрессия

«Итак, круто, у нас есть линейная регрессия вниз. Линейная регрессия = какое влияние одна переменная (переменные) оказывает на другую переменную, предполагая, что 1) переменная результата непрерывна и 2) связь (отношения) между переменной (переменными) и переменной результата является линейной.

Но что, если ваша переменная результата является «категориальной»? Вот где начинается логистическая регрессия!

Но если мы подумаем о том, как работает наша модель линейной регрессии, как мы сможем определить линию, которая лучше всего подходит для чего-то категорического? Это было бы невозможно! Вот почему модели логистической регрессии выводят вероятность того, что ваша точка данных относится к той или иной категории, а не обычное числовое значение. Поэтому модели логистической регрессии в основном используются для классификации [важный момент, на который следует обратить внимание]

Деревья решений

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

Деревья решений используются для моделирования нелинейных отношений (в отличие от моделей линейной регрессии и моделей логистической регрессии).

  • Деревья решений могут моделировать как категориальные, так и непрерывные переменные результата, хотя в основном они используются для задач классификации (т.е. для категориальных переменных результата).
  • Деревья решений легко понять! Вы можете легко визуализировать их и выяснить, что именно происходит в каждой точке разделения. Вы также можете увидеть, какие функции являются наиболее важными.
  • Деревья решений склонны к переоснащению. Это потому, что независимо от того, сколько раз вы прогоняете свои данные через одно дерево решений, поскольку это всего лишь серия утверждений «если это, то это», вы всегда будете получать один и тот же точный результат. Это означает, что ваше дерево решений будет очень точно соответствовать вашим обучающим данным, но оно может не дать вам полезных прогнозов, когда вы передадите ему новые данные.

Так как же дерево решений узнает, когда нужно разбиваться?

(Под «расщеплением» я имею в виду формирование большего количества ветвей.)

Существует множество алгоритмов, которые могут использовать деревья решений, но два самых популярных — это ID3 (ID означает «Итеративный дихотомизатор») и CART (CART означает «Дерево классификации и регрессии»). Каждый из этих алгоритмов использует разные меры, чтобы решить, когда следует разделить. Деревья ID3 используют прирост информации, а деревья CART используют индекс Джини.

Начнем с деревьев ID3.

Деревья ID3 и получение информации

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

Но что такое получение информации? С технической точки зрения прирост информации — это критерий, использующий энтропию в качестве меры примеси. Давайте немного раскроем это.

Энтропия

Проще говоря, энтропия — это мера (бес)порядка — она говорит вам, сколько информации отсутствует или насколько беспорядочны ваши данные. То, в чем отсутствует много информации, считается неупорядоченным (т. е. имеет высокую меру энтропии), и наоборот.

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

В приведенном выше дереве вы можете видеть, что начальная точка имеет энтропию 0,918, а конечные точки имеют энтропию 0. Это дерево закончилось с высоким приростом информации и низкой энтропией, чего мы и хотим.

(Я)Чистота

Помимо перехода к низкой энтропии, деревья ID3 также будут принимать решения, которые обеспечат им наибольшую чистоту. Деревья ID3 делают это, потому что хотят, чтобы каждое решение было как можно болееясным. Что-то с низкой энтропией также имеет высокую чистоту. Высокий прирост информации = низкая энтропия = высокая чистота.

В этом есть интуитивный смысл — если что-то сбивает с толку и беспорядочно (т. е. имеет высокую энтропию), ваше понимание этой вещи туманно, неясно или нечисто.

Деревья CART и индекс Джини

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

Индекс Джини в основном говорит вам, как часто случайно выбранная точка данных из вашего набора данных может быть неправильно классифицирована. В деревьях CART (и в жизни) мы всегда хотим свести к минимуму вероятность неправильной маркировки любой части наших данных. Это действительно так просто!

Хорошо, все это имеет смысл, но как насчет нелинейных вещей, о которых вы упоминали ранее?

По сути, мы знаем, что наши данные имеют некоторую линейность, когда мы можем разделить наши точки данных на группы с помощью линии (или линейной плоскости), как на самом верхнем графике.

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

Нелинейность на самом деле прямо противоположна этому. Вы можете думать о нелинейных данных и функциях несколькими разными способами:

  • С нелинейными данными вы не сможете визуализировать линейную плоскость, которая сегментирует ваши данные. Когда вы не можете разделить свои данные линейно, ваша модель зависит от нелинейной функции. Это, в свою очередь, означает, что ваша модель нелинейна!
  • В то время как линейные функции имеют постоянный наклон (поскольку небольшое изменение x приводит к такому же небольшому изменению y), нелинейные функции этого не делают. Например, их наклон может расти экспоненциально.
  • Вы также можете использовать ту же аналогию, что и выше, но вместо небольшого изменения вашей независимой переменной (переменных), приводящей к такому же небольшому изменению вашей зависимой переменной, небольшое изменение вашей независимой переменной (переменных) приведет к огромное изменение или сверхмалое изменение в вашей зависимой переменной, когда вы работаете с нелинейными функциями.

Деревья решений отлично подходят для моделирования нелинейных отношений, потому что они не полагаются на линейную плоскость для разделения данных. (Хотя это предложение может показаться пугающим, на самом деле это не так — мы интуитивно знаем, что деревья решений не разделяют данные линейно. Вы можете убедиться в этом, просто взглянув на нашу древовидную структуру! Как бы вы сгруппировали все «да» в 1 область и все "нет" в другую область только по линии? Нельзя!)

…Хорошо, а теперь как насчет переобучения?

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

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

Введите: Случайный лес

Случайный лес, пожалуй, самая популярная ансамблевая модель для начинающих специалистов по данным.

Ансамбль, говорите?

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

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

Ансамблевые модели, такие как Random Forest, предназначены для уменьшения переобучения и дисперсии за счет использования алгоритмов бэггинга.

Мы знаем, что деревья решений склонны к переоснащению. Другими словами, единое дерево решений может прекрасно подходить для решения конкретной проблемы, но совершенно бесполезно, если его применять к проблеме, с которой оно никогда раньше не сталкивалось. Подобно пословице «две головы лучше, чем одна», ансамблевые модели используют множество деревьев решений, которые хороши для своей конкретной задачи, чтобы создать более крупную модель, которая отлично подходит для многих разных задач. Подумайте об этом так: вы с большей вероятностью примете хорошее деловое решение, прислушиваясь к советам одного сотрудника или многих сотрудников, которые привносят с собой разнообразный опыт? Вероятно, последнее. Больше деревьев решений = меньше переобучения.

Ладно, я переоснащаюсь, но о какой дисперсии вы говорите?

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

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

Мне нравится думать о дисперсии с точки зрения физического баланса: если вы балансируете на одной ноге, стоя на твердой земле, вы вряд ли упадете. Но что, если вдруг порывы ветра со скоростью 100 миль в час? Держу пари, ты бы упал. Это потому, что ваша способность балансировать на одной ноге сильно зависит от факторов окружающей среды. Если хотя бы одна вещь изменится, это может полностью вас испортить! Так бывает, когда модели имеют высокую дисперсию. Если мы испортим какие-либо факторы в его обучающих данных, мы можем полностью изменить результат. Это не стабильно и, следовательно, не та модель, на основе которой мы хотели бы принимать решения.

Алгоритмы упаковки

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

В машинном обучении есть слабые ученики и сильные ученики, и алгоритмы пакетирования (или алгоритмы «Bootstrap AGGregatING») имеют дело со слабыми учениками.

Слабые ученики

Слабые ученики составляют основу моделей Random Forest.

Проще говоря, слабые ученики — это алгоритмы, которые предсказывают/классифицируют данные с точностью (или другим показателем оценки) немного лучше, чем случайность. Причина, по которой эти ребята полезны, заключается в том, что мы можем объединить их вместе, чтобы создать более крупную модель, предсказания/классификации которой очень хороши!

…Хорошо, вернемся к упаковке

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

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

В основном это просто означает, что по мере того, как алгоритм проходит и строит деревья решений со случайными выборками ваших данных, нет точек данных, которые он не может использовать. Например, только потому, что одно дерево решений создается с 20 точками данных, не означает, что другое дерево решений не может быть построено с использованием 12 из тех же самых 20 точек данных. Ура, вероятность!

Отличительной особенностью моделей случайного леса является то, что они могут выполнять всю эту случайную выборку с заменой для каждого дерева решений одновременно (или «параллельно»). И поскольку мы находимся в мире случайной выборки с заменой, мы также можем предположить, что каждое из наших деревьев решений независимо от другого.

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

… Но это еще не все!

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

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

Ресурсы, необходимые для освоения машинного обучения

Популярные каналы Youtube, на которые стоит подписаться:

  • Абхишек Такур (ОТ ПРОДВИНУТОГО ДО ПРОДВИНУТОГО) (единственный 4-кратный гроссмейстер и делает потрясающие видео, чтобы стать лучше в › Kaggle и машинном обучении): Ссылка на канал Abhishek Thakur’s Youtube
  • Официальный канал Kaggle на Youtube (подходит для всех уровней) (я должен был включить это как лучший источник, чем YouTube самого Kaggle!): Ссылка на канал Kaggle на Youtube
  • Джефф Хитон (ПОДХОДИТ ДЛЯ НАЧИНАЮЩИХ) (он снимает очень полезные видеоролики на различные темы, связанные с разработкой функций и глубоким обучением, и помог мне многому научиться, когда я был новичком): Ссылка на канал Youtube Джеффа Хитона
  • Дэниел Бурк (ПОДХОДИТ ДЛЯ НАЧИНАЮЩИХ) (он дает очень хорошие советы по карьере, а также снимает видеоролики о соревнованиях на Kaggle): Ссылка на канал Даниэля Бурка на Youtube
  • Towards Data Science (подходит для всех уровней) (это один из лучших каналов YouTube по науке о данных в целом, который должен вам очень помочь): Link Youtube Channel Towards Data Science
  • Sentdex (ОТ НАЧИНАЮЩЕГО ДО ПРОДВИНУТОГО) (Этот канал может научить вас широкому спектру тем, от Python для начинающих до продвинутых нейронных сетей! Один из лучших ресурсов): Ссылка на канал Sentdex Youtube
  • Corey Schafer (Хорошо подходит для изучения Python) (ПОДХОДИТ ДЛЯ НАЧИНАЮЩИХ) (Он прекрасный учитель и поможет стать экспертом в Python): Corey Schafer Youtube Channel Link
  • DeepLearning.ai (подходит для НАЧИНАЮЩИХ) (преподает Эндрю Н.Г.) (отличный ресурс для обучения глубокому обучению с нуля, который будет очень полезен для соревнований на основе нейронных сетей на Kaggle): DeepLearning.ai Ссылка на ютуб канал
  • Криш Найк (подойдет для НАЧИНАЮЩИХ) (потрясающий ресурс с подробными видео по науке о данных. Он также очень четко объясняет.): Ссылка на канал Криша Найка на Youtube
  • StatQuest (подходит для НАЧИНАЮЩИХ) (потрясающий превосходный ресурс и универсальный магазин для изучения статистики и машинного обучения. Он объясняет так интуитивно и просто!): Ссылка на канал YouTube StatQuest
  • DataSchool (подойдет для НАЧИНАЮЩИХ) (отлично подходит для изучения фреймворков для обработки и анализа данных!): Ссылка на канал Youtube Data School
  • Deep Lizard (от среднего до продвинутого) (отличный ресурс для обзора глубокого обучения и обзора Keras и TensorFlow для соревнований Kaggle!): Ссылка на канал Youtube Deep Lizard
  • ChrisMcCormickAI (от среднего до продвинутого) (потрясающе для подробных руководств по продвинутым темам машинного обучения, если вы хотите серьезно заняться соревнованиями kaggle!
    Эти ютуберы определенно дадут вам потрясающие советы, как и они. для меня !: Ссылка на канал Криса Маккормика на Youtube
  • 3Blue1Brown (от начального до продвинутого) (если вы хотите изучить всю математику для машинного обучения и обработки данных, это лучший ресурс для вас!): 3Blue1Brown Youtube Channel Link

Другие источники

Шаг 1. Первое, чему вы должны научиться, это программирование на Python.

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

Ресурсы Python для изучения

  1. Изучите Python для науки о данных — онлайн-курс | Датакемп
  2. Основы Python, Кори Шафтр
  3. Специализация Python для всех, Чарльз Рассел Северанс
  4. Книги (обязательно)Python для анализа данных — эта книга охватывает различные аспекты науки о данных, включая загрузку данных для манипулирования, обработки, очистки и визуализации данных. Необходимо сохранить справочное руководство для пользователей Pandas.

Шаг 2: Развивайте навыки в алгебре, статистике и машинном обучении.

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

Описательная статистика — 1 неделя

Вероятность — 2 недели

Логическая статистика — 2 недели

  • Курс (обязательный)Intro to Inferential Statistics from Udacity. После того, как вы пройдете курс описательной статистики, этот курс познакомит вас с методами статистического моделирования и расширенной статистикой.
  • Книги (необязательно)Онлайн-книга статистики — эту онлайн-книгу можно использовать в качестве краткого справочника для задач логического вывода.

Линейная алгебра — 1 неделя

  • Курс (обязательно)
  • Линейная алгебра — Академия Хана: этот краткий и отличный курс по Академии Хана предоставит вам навыки, необходимые для науки о данных и машинного обучения.

Книги (необязательно)

Структурированное мышление — 2 недели

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

Шаг 3: Пакеты Python Pandas, numpy, matplotlib, scikit Learn, боке

Вот где начинается веселье! Вот краткое введение в различные библиотеки. Давайте начнем практиковать некоторые общие операции.

  • Тщательно отработайте учебник NumPy, особенно массивы NumPy. Это послужит хорошей основой для дальнейших действий.
  • Далее посмотрите Учебники по SciPy. Пройдите введение и основы, а оставшиеся делайте исходя из своих потребностей.
  • Если вы догадались, что дальше учебники по Matplotlib, вы ошибаетесь! Они слишком всеобъемлющи для нашей нужды здесь. Вместо этого посмотрите на этот блокнот ipython до строки 68 (т.е. до анимации)
  • Наконец, давайте посмотрим на панд. Панды предоставляют функциональность DataFrame (например, R) для Python. Это также место, где вы должны хорошо проводить время, практикуясь. Pandas станет наиболее эффективным инструментом для анализа данных среднего размера. Начните с небольшого вступления 10 минут до панд. Тогда переходите к более подробному туториалу по пандам.
  • Ознакомьтесь с курсом DataCamp Основы Pandas

Вы также можете посмотреть Исследовательский анализ данных с помощью Pandas и Обработка данных с помощью Pandas.

Дополнительные ресурсы:

Задание. Решите это задание из курса CS109 из Гарварда.

Шаг 4: Исследование и визуализация с использованием Python

Курс (необязательно)

Блоги/Статьи (обязательно)

Книги (необязательно)Python для анализа данных — универсальное решение для исследования и визуализации данных в Python.

Шаг 5: Предварительная обработка данных

  1. История предварительной обработки данных
  2. Учебник по предварительной обработке данных от Analytics Vidhya
  3. Предварительная обработка данных

Шаг 6: Выбор функций/инжиниринг

Шаг 7: Базовые и продвинутые алгоритмы машинного обучения

Основные алгоритмы машинного обучения.

  • Линейная регрессия
  • Логистическая регрессия
  • Деревья решений
  • KNN (K- Ближайшие соседи)
  • K-средние
  • Наивный байесовский
  • Уменьшение размерности

Расширенные алгоритмы

  • Случайные леса
  • Методы уменьшения размерности
  • Опорные векторные машины
  • Машины повышения градиента
  • XGBOOST

Линейная регрессия

Курс

  • Машинное обучение Эндрю Нг — нет лучшего ресурса для изучения линейной регрессии, чем этот курс. Это даст вам полное представление о линейной регрессии, и есть причина, по которой Эндрю Нг считается рок-звездой машинного обучения.

Блоги/Статьи

  • Этот урок из курса PennState Stat 501 описывает основные особенности линейной регрессии, начиная от простого определения линейной регрессии и заканчивая определением точности соответствия линии регрессии.
  • Это — отличная статья с практическими примерами для объяснения линейной регрессии с помощью кода.

Книги

  • Элементы статистического обучения — эту книгу иногда считают святым Граалем машинного обучения и науки о данных. Он математически объясняет концепции машинного обучения с точки зрения статистики.
  • Машинное обучение с R — это книга, которую я лично использую, чтобы получить краткое представление об алгоритмах машинного обучения вместе с кодом их реализации.

Практика

  • Черная пятница — Как я уже сказал — Никакая теория не может победить практику. Вот проблема регрессии, которую вы можете попробовать для более глубокого понимания.

Логистическая регрессия

Курс (обязательно)

  • Машинное обучение Эндрю Нг — третья неделя этого курса даст вам более глубокое понимание одного из наиболее широко используемых алгоритмов классификации.
  • Машинное обучение: классификация — неделя 1 и 2 этого ориентированного на практику курса специализации с использованием Python удовлетворит вашу жажду знаний о логистической регрессии.

Блоги/Статьи (необязательно)

Книги (необязательно)

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

Практика (обязательно)

  • Предсказание кредита — это отличное соревнование, чтобы попрактиковаться и проверить свои новые навыки логистической регрессии, чтобы предсказать, был ли статус кредита для человека одобрен или нет.

Деревья решений

Курс (обязательно)

Блоги/Статьи (обязательно)

Книги (обязательно)

  • Введение в статистическое обучение — разделы 8.1 и 8.3 объясняют основы деревьев решений с помощью теории и практических примеров.
  • Машинное обучение с помощью R — глава 5 этой книги дает вам лучшее объяснение алгоритмов машинного обучения, доступных на рынке. Здесь деревья решений объясняются в чрезвычайно непугающем и простом стиле.

Практика (обязательно)

  • Предсказание кредита — это отличное соревнование, чтобы попрактиковаться и проверить свои новые навыки логистической регрессии, чтобы предсказать, был ли статус кредита для человека одобрен или нет.

KNN (K- Ближайшие соседи)

Курс (обязательно)

  • Машинное обучение — кластеризация и поиск: Неделя 2 этого курса переходит к k-ближайшим соседям от 1-ближайшего соседа, а также описывает наилучшие способы аппроксимации ближайших соседей. Он объясняет все концепции KNN с использованием Python.

Блоги/Статьи (обязательно)

K-средние

Курс

Блог

Наивный Байес

Курс

  • Введение в машинное обучение: пройдите этот курс, чтобы увидеть наивный байесовский алгоритм в действии. В этом курсе Себастьян Трун объяснил Наивный Байес на простом английском языке.

Блог/Статья

Уменьшение размерности

Курс

Блог/Статья

Случайные леса

  • Видео (обязательно)
  • Как работает алгоритм Random Forest? — Посмотрите это видео, чтобы получить наглядное представление о том, как работает алгоритм Random Forest.

Книги (необязательно)

Блоги/Статьи (обязательно)

Машины повышения градиента

Блоги/Статьи (обязательно)

Презентация (обязательно):Здесь — отличная презентация по GBM. Он содержит характерные черты GBM, а также преимущества и недостатки его использования для решения реальных проблем. Эта статья обязательна к просмотру для тех, кто пытается понять GBM.

XGBOOST

Блоги/Статьи (обязательно)

  • Официальное введение XGBOOST — Ознакомьтесь с документацией по алгоритму победы в хакатонах. Это улучшение по сравнению с GBM, и в настоящее время это наиболее широко используемый алгоритм для победы в соревнованиях.
  • XGBOOST для прикладного машинного обучения — статья Machine Learning Mastery, посвященная оценке производительности XGBOOST по сравнению с другими алгоритмами.

Опорные векторные машины

Курс (обязательно)

Книги (обязательно)

Блоги/Статьи (необязательно)

Ссылки:

  1. https://www.analyticsvidhya.com/blog/2017/01/the-most-comprehensive-data-science-learning-plan-for-2017/
  2. https://www.analyticsvidhya.com/learning-paths-data-science-business-analytics-business-intelligence-big-data/learning-path-data-science-python/
  3. https://dzone.com/articles/10-steps-to-become-data-scientist-in-2018
  4. https://medium.freecodecamp.org/a-path-for-you-to-learn-analytics-and-data-skills-bd48ccde7325
  5. https://www.quora.com/How-can-I-become-a-data-scientist-1
  6. https://towardsdatascience.com/machine-learning-algorithms-in-laymans-terms-part-2-a0a74df9a9ac
  7. https://www.upgrad.com/blog/data-preprocessing-in-machine-learning/
  8. https://www.analyticsvidhya.com/blog/2020/03/one-hot-encoding-vs-label-encoding-using-scikit-learn/
  9. https://purnasaigudikandula.medium.com/exploratory-data-analysis-beginner-univariate-bivariate-and-multivariate-habberman-dataset-2365264b751
  10. https://www.kaggle.com/getting-started/149987