Нить для начинающих; Как научиться машинному обучению.

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

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

Затем вы узнаете некоторые основные сведения о другой библиотеке Python, которая называется NumPy. Панды построены на NumPy. Numpy огромен, вам просто нужно понять некоторые основные функции NumPy, такие как формы NumPy и массивы NumPy.

Если вы разбираетесь в пандах, вы легко поймете массивы и фигуры NumPy. Примечание: фигуры Numpy будут играть важную роль в модели глубокого обучения под названием LSTM, которая в основном используется для анализа временных рядов (например, финансовых данных) и обработки естественного языка (NLP).

Следующий. Установите библиотеку python sklearn (pip install sklearn)

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

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

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

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

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

Затем существует концепция, называемая k-кратной перекрестной проверкой, когда мы разбиваем данные на различные складки (k-кратные), часто случайным образом, и проверяем, совпадают ли прогнозы в наборе обучающих данных с различными наборами проверки (перекрестная проверка).

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

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

Хорошо, математическая часть сделана (если это не так, лол)

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

Сосредоточьтесь на контролируемом обучении. Модели контролируемого обучения далее делятся на 2 части. Легко и тяжело. Да, я это выдумываю.

Сложный: все модели глубокого обучения, основанные на градиентном спуске и умножении матриц. Для этого вам нужно установить Tensorflow 2, который теперь поставляется с Keras и обнаруживает поддержку графического процессора. Другой альтернативой является Pytorch.

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

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

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

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

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

Теперь вам нужно научиться формулировать проблему.

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

Если вам не нравится модель классификации, вы можете использовать модель регрессии. Забудьте свое традиционное определение регрессии. Здесь модели регрессии означают, что он попытается предсказать будущую стоимость. Бывший. На следующий день будет +2% или -4%

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

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

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

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

Google «градиентный спуск с цифрами». Это основа глубокого обучения.

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

Еще одна основа глубокого обучения — матричное умножение. Не так важно понимать умножение матриц, но вам решать, хотите ли вы углубляться в глубокое обучение или нет (каламбур)

В области глубокого обучения сообщество «в основном» разделено на глубокое обучение для распознавания изображений и глубокое обучение для обработки естественного языка (НЛП).

Конечно, есть и другие варианты, такие как глубокое обучение с подкреплением. Также существуют генетические алгоритмы (ГА).

Проблемы с распознаванием изображений, также называемые компьютерным зрением (CV), теперь вроде как решены. Они стали чрезвычайно эффективными. Сверточная нейронная сеть (CNN) — это модель для CV.

Для финансовых временных рядов наша модель перехода — это LSTM (по крайней мере, для меня, хотя я видел парней, использующих CNN для прогнозирования временных рядов). Какую бы модель глубокого обучения вы ни выбрали, сначала поиграйте с игрушечным примером и установите базовые уровни.

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

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

Конец ветки.

PS. Ждем комментариев от экспертов, так что проверяйте ответы. Полное раскрытие Я не эксперт.