Найти в Дзене

Введение в анализ данных на python от дилетанта

Наверняка вы встречали большое количество предложений обучить вас специальности, которая будет в разы превосходить вашу текущую по заработной плате. И, наверняка, у вас на слуху: big data, data science, machine learning, deep learning, искусственный интеллект и т.д. Хоть названия разные, но на платных курсах будут вас обучать программированию на python, работе в jupyter notebook, использованию библиотек: numpy, pandas, matplotlib, sklearn, tensorflow и т.д. Некоторые учебные заведения добавляют теоретические занятия по математической статистики, теории вероятности, эконометрики, анализа временных рядов и т.п. Я не собираюсь конкурировать с этими учебными заведениями за ваше внимание по очень простой причине - сам только начал изучать эту область. Поэтому, как истинный неофит с "горящим взором", пытаюсь поделиться восхищением от возможностей, которые откроются любому, кто начнет изучение этого сложного и многогранного направления. Может быть я не буду уникальным в своем подходе, но мы

Наверняка вы встречали большое количество предложений обучить вас специальности, которая будет в разы превосходить вашу текущую по заработной плате. И, наверняка, у вас на слуху: big data, data science, machine learning, deep learning, искусственный интеллект и т.д. Хоть названия разные, но на платных курсах будут вас обучать программированию на python, работе в jupyter notebook, использованию библиотек: numpy, pandas, matplotlib, sklearn, tensorflow и т.д. Некоторые учебные заведения добавляют теоретические занятия по математической статистики, теории вероятности, эконометрики, анализа временных рядов и т.п.

Colaboratory от Google
Colaboratory от Google

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

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

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

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

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

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

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

Что же вам понадобится для обучения, а в дальнейшем и для работы. Во-первых, желание разобраться и понять, пусть даже не сразу, а методом постоянного повторения одной и той же последовательности действий. Во-вторых, современный компьютер с выходом в интернет, на котором установлен современный браузер. В-третьих, гугловская учетная запись (подойдет даже от youtube), чтобы использовать удобнейшее средство Jupyter Notebook, а точнее его облачную реализацию Colaboratory от Google. Прямо на главной странице объяснено как пользоваться colab, причем на русском языке. Это и будет входящим порогом, то есть, если вы не сможете самостоятельно разобраться как заходить в colab, то дальше вам будет еще труднее понять.

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

Итак, цели поставлены, ресурсы определены. Надеюсь вы уже попытались войти в свою первую запись jupyter notebook, которую дальше мы будем называть просто блокнот. Так что вперед!