- Оригинальный адрес:Ten Machine Learning Algorithms You Should Know to Become a Data Scientist
- Оригинальный автор:Shashank Gupta
- Перевод с:Программа перевода самородков
- Постоянная ссылка на эту статью:GitHub.com/rare earth/gold-no…
- Переводчик:JohnJiang
- Корректор:Daltan He, Kasheem Lew
10 лучших алгоритмов машинного обучения, которые необходимо знать в науке о данных
У практиков машинного обучения разные убеждения. Одни верят в то, что «один меч ломает все методы» (здесь «меч» — это алгоритм, а десять тысяч законов — это различные типы данных), а другие считают, что «правильный инструмент делает правильное дело». Многие из них также подписываются под принципом «знай все, будь профессионалом в одном», у них большой опыт в одной области, а также они кое-что знают о разных областях машинного обучения. Тем не менее, нельзя отрицать, что специалисту по данным важно знать кое-что об общих алгоритмах машинного обучения, которые помогут нам предлагать идеи при решении новых задач. В этом учебном пособии вы познакомитесь с распространенными алгоритмами машинного обучения и соответствующими ресурсами, чтобы быстро приступить к работе.
1. Анализ основных компонентов (PCA)/SVD
PCA — это неконтролируемый метод изучения глобальных свойств набора данных, состоящего из векторов. Здесь анализируется ковариационная матрица точек данных, чтобы понять, какие измерения (во многих случаях) или точки данных (в некоторых случаях) более важны. Например, дисперсия между ними высока, но ковариация с другими измерениями низка. Рассмотрим те собственные векторы с наибольшими собственными значениями, они, вероятно, будут верхними главными компонентами (PC). SVD также по сути является методом вычисления упорядоченных компонентов, но его можно получить без получения ковариации точек данных.
Этот тип алгоритма решает проблему анализа многомерных данных за счет уменьшения размерности данных.
Библиотека инструментов:
docs.lastfriend.org/doc/lastfriend/day…
SCI kit-learn.org/stable/Modu…
Руководство по началу работы:
2а. Метод наименьших квадратов и полиномиальная аппроксимация
Помните методы численного анализа, которые вы обычно использовали в колледже, чтобы подогнать прямые линии или кривые к точкам, чтобы найти уравнения? Их можно использовать для небольших низкоразмерных наборов данных, чтобы подогнать кривые в машинном обучении. (Для больших данных или наборов данных с несколькими измерениями конечный результат может быть сильно завышен. Так что не беспокойтесь.) Метод наименьших квадратов (МНК) имеет закрытые решения, поэтому вам не нужно использовать сложные методы оптимизации.
Очевидно, что этот алгоритм можно использовать только для подбора простых кривых или регрессий.
Библиотека инструментов:
docs.lastfriend.org/doc/num-py/th…docs.last friend.org/doc/num py-1…
Руководство по началу работы:
Lagunita.Stanford.Credits/от 4 малых/человеческих ИТ…
2b.Ограниченная линейная регрессия
Метод наименьших квадратов может сбивать с толку при работе с выбросами, ложными полями и шумом в данных. Следовательно, при подгонке набора данных необходимы ограничения, чтобы уменьшить дисперсию в строках данных. Правильный способ - использовать модель линейной регрессии для соответствия набору данных, чтобы гарантировать, что значения веса не являются неправильными. Модель может быть либо нормой L1 (LASSO), либо L2 (регрессия гребня), либо обеими (эластичная регрессия). Оптимизация среднеквадратичных потерь.
Эти алгоритмы имеют ограничения при подборе линии регрессии, что позволяет избежать переобучения и уменьшить размерность шума в модели.
Библиотека инструментов:
SCI kit-learn.org/stable/Modu…
Руководство по началу работы:
Woohoo.YouTube.com/watch?V=5as…
Woohoo.YouTube.com/watch?V=миллионы…
3. Кластеризация K-средних
Это всеми любимый неконтролируемый алгоритм кластеризации. Учитывая набор точек данных в виде векторов, их можно разделить на разные группы по расстоянию между ними. Это алгоритм максимизации ожидания (EM), который продолжает перемещать центральную точку кластера, а затем группирует точки данных в соответствии с центром кластера. Входными данными этого алгоритма являются количество создаваемых кластеров и количество итераций процесса кластеризации.
Как следует из названия, вы можете использовать этот алгоритм для разделения набора данных на K кластеров.
Библиотека инструментов:
SCI kit-learn.org/stable/Modu…
Руководство по началу работы:
Woohoo.YouTube.com/watch?V=HD…
woohoo.data science.com/blog/can-mean…
4. Логистическая регрессия
Логистическая регрессия — это ограниченная линейная регрессия, взвешивание имеет нелинейное применение (обычно используется функция sigmod, вы также можете использовать tanh), поэтому вывод строго ограничен классами +/- (1 и 0 в sigmod). Функция кросс-энтропийных потерь оптимизируется с помощью градиентного спуска. Примечание для начинающих: логистическая регрессия предназначена для классификации, а не регрессии. Вы также можете думать о логистической регрессии как об однослойной нейронной сети. Логистическая регрессия обучается с использованием таких методов, как градиентный спуск или L-BFGS. В НЛП его часто называют классификатором максимальной энтропии.
Изображение функции sigmod выглядит следующим образом:
Простые, но очень надежные классификаторы можно обучить с помощью LR.
Библиотека инструментов:
SCI kit-learn.org/stable/Modu…
Руководство по началу работы:
wooooooooo.YouTube.com/watch?V=-pull…
5. SVM (Машина опорных векторов)
Машины опорных векторов — это линейные модели, такие как линейная регрессия и логистическая регрессия, разница между которыми заключается в использовании различных функций предельных потерь (вывод опорных векторов — один из самых красивых математических результатов, которые я видел при расчете с использованием собственных значений). Вы можете использовать методы оптимизации, такие как L-BFGS или даже SGD, чтобы оптимизировать функцию потерь.
Еще одним нововведением SVM является основное использование данных в разработке функций. Если у вас есть хорошие навыки поворота, вы можете заменить приличный RBF более умным ядром и извлечь из этого пользу.
Уникальной особенностью SVM является то, что он может обучить классификатор.
Машины опорных векторов можно использовать для обучения классификаторов (или даже регрессоров).
Библиотека инструментов:
SCI kit-learn.org/stable/Modu…
Руководство по началу работы:
Woohoo.YouTube.com/watch?V=EHS…
Уведомление: Логистическая регрессия на основе SGD и обучение SVM основаны на SKLearn.SCI kit-learn.org/stable/Modu…, я часто использую это, потому что можно тестировать и логистическую регрессию, и SVM с помощью общего интерфейса. Вы также можете тренироваться на наборе данных размером с RAM, используя мини-пакеты.
6. Нейронная сеть с прямой связью
По сути, это многоуровневые классификаторы логистической регрессии. Разделите веса каждого слоя на нелинейные функции (sigmod, tanh, relu + softmax и классная новинка selu). Он также известен как многослойный персептрон. Нейронные сети с прямой связью можно использовать в качестве автокодировщиков в классификаторах или неконтролируемом изучении признаков.
Многослойный персептрон
Нейронные сети с прямой связью как автоэнкодеры
Нейронные сети с прямой связью можно использовать для обучения классификаторов или для извлечения признаков в качестве автокодировщиков.
Библиотека инструментов:
SCI kit-learn.org/stable/Modu…
SCI kit-learn.org/stable/Modu…
Руководство по началу работы:
woohoo.deep learningbook.org/contents/beautiful…
Woohoo.deep Learning book.org/contents/AU…
woohoo.deep learningbook.org/contents/hot…
7. Сверточные нейронные сети (Сверточные сети)
Почти все современные достижения в области машинного обучения на основе зрения сегодня достигаются с помощью сверточных нейронных сетей. Их можно использовать для классификации изображений, обнаружения объектов и даже сегментации изображений. Сверточные сети, изобретенные Яном Лекуном в конце 80-х и начале 90-х годов, представляют собой сверточные слои, которые выполняют иерархическое извлечение признаков. Их можно использовать в тексте (или даже на диаграммах).
Современная классификация изображений и текста, обнаружение объектов, сегментация изображений с использованием сверточных сетей.
Библиотека инструментов:
GitHub.com/сумасшедший поток/к…
Руководство по началу работы:
3.GitHub.IO/A-beginner% пробной версии Ader…
8. Рекуррентная нейронная сеть (RNN)
RNN моделируют последовательные данные, рекурсивно применяя один и тот же набор весов к состоянию агрегатора в момент времени t и к входным данным в момент времени t. (Учитывая вход последовательности в моменты времени 0..t..T, и в каждый t есть выход скрытого состояния на шаге t-1 в RNN). В наши дни чистые RNN редко используются, но их аналогичные архитектуры, такие как LSTM и GRAS, являются самыми современными для большинства задач последовательного моделирования.
RNN (если это плотно связанная единица и имеет нелинейность, теперь f обычно является LSTM или GRU). Ячейки LSTM часто используются для замены обычных плотных слоев в структурах RNN.
Используйте RNN для любых задач моделирования на основе последовательностей, особенно для классификации текстов, машинного перевода и языкового моделирования.
Библиотека инструментов:
GitHub.com/tensorflow/… (Many cool NLP research papers from Google are here)
Руководство по началу работы:
Woohoo.wild ml.com/category/ а как насчет…
столбец ah.GitHub.IO/posts/2015-…
9. Условное случайное поле (CRF)
CRF, вероятно, является наиболее часто используемой моделью в семействе вероятностных графических моделей (PGM). Их можно использовать для последовательного моделирования, как RNN, или в сочетании с RNN. До появления нейронных систем машинного перевода CRF были самыми современными, и они по-прежнему лучше учатся, чем RNN, которые требуют больших объемов данных для индуктивных рассуждений во многих последовательных задачах маркировки с небольшими наборами данных. Их также можно использовать в других задачах структурированного прогнозирования, таких как сегментация изображений. CRF моделирует каждый элемент в последовательности, например предложение, так что соседние элементы влияют на метку компонента в последовательности, а не все метки независимы друг от друга.
Последовательности тегов (текст, изображения, временные ряды, ДНК и т. д.) с помощью CRF
Библиотека инструментов:
sklearn-crfsuite.readthedocs.io/en/latest/
Руководство по началу работы:
блог.Русский сказал.Что/2012/01/03/…
Серия выступлений Хьюго Ларошеля из 7 частей на YouTube:Woohoo.YouTube.com/watch?V=GF3…
10. Дерево решений
Допустим, я получил лист Excel с данными о различных фруктах, и я должен сказать, какие из них похожи на яблоки. Все, что мне нужно сделать, это задать вопрос «Какой фрукт красный и круглый?» и разделить все фрукты, которые ответили «да» и «нет», на две части. Теперь красные и круглые фрукты — это не обязательно яблоки, и не обязательно все яблоки красные и круглые. Итак, я собираюсь задать следующий вопрос для красных и круглых фруктов: «Какой фрукт красный или желтый?» и для некрасных и круглых фруктов: «Какие фрукты зеленые и круглые?». Основываясь на этих вопросах, можно довольно точно сказать, какие из них являются яблоками. Эта серия задач представляет собой дерево решений. Однако это дерево решений, которое я описываю интуитивно. Интуиция не может использоваться для многомерных сложных данных. Мы должны автоматически задать ряд вопросов, просматривая помеченные данные. Это то, что делают деревья решений на основе машинного обучения. Более ранние версии, такие как деревья CART, использовались для простых данных, но по мере того, как наборы данных становятся больше, компромисс между смещением и дисперсией необходимо решать с помощью более совершенных алгоритмов. В настоящее время широко используются два алгоритма дерева решений: алгоритм случайного леса (который строит разные классификаторы на подмножествах атрибутов и объединяет их для вывода) и алгоритм усиленного дерева (который обучает серию деревьев поверх других деревьев и исправляет ошибки). в его поддеревьях).
Деревья решений можно использовать для классификации точек данных (или даже регрессии).
Библиотека инструментов:
SCI kit-learn.org/stable/Modu…
SCI kit-learn.org/stable/Modu…
xgboost.readthedocs.io/en/latest/
Руководство по началу работы:
Гонконг boost.read the doc S.IO/en/latest/no…
Education.parrot Prediction.teachable.com/parrot/practical…
Больше алгоритмов (вы должны изучить)
Если вам все еще интересно, может ли описанный выше метод решить задачу, аналогичную победе DeepMind над чемпионом мира по го, не заблуждайтесь. Все 10 алгоритмов, которые мы обсуждали выше, — это распознавание образов, а не обучение политике. Чтобы изучить стратегии решения многошаговых задач, таких как победа в настольной игре или игра в игру Atari, нам нужно создать бесплатный терминал и дать ему возможность изучить награды и штрафы, с которыми он сталкивается. Этот тип машинного обучения называется обучением с подкреплением. Многие, но не все недавние усилия в этой области являются результатом объединения перцептивных возможностей сверточных сетей или LSTM с набором алгоритмов, называемых дифференциальным обучением в реальном времени. К ним относятся Q-обучение, SARSA и несколько других вариантов. Эти алгоритмы умело используют уравнение Беллмана для получения функции потерь, которая позволяет терминалу обучаться с помощью вознаграждения окружающей среды.
Эти алгоритмы в основном используются для автоматической игры :D, но также имеют некоторые приложения для генерации речи и распознавания сущностей.
Библиотека инструментов:
Руководство по началу работы:
Получите бесплатную книгу Саттона и Барто:Web2.Qatar.Plant.Quota/~Caro/15…
Ознакомьтесь с курсом Дэвида Сильвера:Woohoo.YouTube.com/watch?V=2PW….
Это 10 алгоритмов машинного обучения, которым вы должны научиться, чтобы стать специалистом по данным.
допустимыйздесьОзнакомьтесь с соответствующей библиотекой инструментов для машинного обучения.
Надеюсь, вам понравилась эта статья, пожалуйстаАвторизоватьсяПолучите бесплатную учетную запись ParallelDots, чтобы начать свое путешествие по ИИ. вы также можетездесьОзнакомьтесь с нашими примерами API.
здесьПросмотр исходного текста.
Если вы обнаружите ошибки в переводе или в других областях, требующих доработки, добро пожаловать наПрограмма перевода самородковВы также можете получить соответствующие бонусные баллы за доработку перевода и PR. начало статьиПостоянная ссылка на эту статьюЭто ссылка MarkDown этой статьи на GitHub.
Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из ИнтернетаНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.