Для начала нужно подготовить рабочее пространство, чтобы комфортно иметь возможность сразу применять на практике ново-приобретенные знания. Для этого необходимо определиться со стартовым технологическим стеком.
Технологический стек в области Data Science достаточно разнообразный, начиная с математических движков типа Matlab или Octave и заканчивая распределенными вычислениями на Spark ML и Scala. Кроме того есть ряд специфичных для статистики и Data Science языков, такие как R или Julia. Если первый - очень зрелый, но теряет свою популярность последнее время, то второй слишком молодой, чтобы делать ставку на него прямо сейчас. Но особо значимое место занимает технологических стек на базе языка Python. Его распространенность, количество релевантных библиотек и их зрелость нельзя отрицать. Поэтому прежде чем перейти к машинному обучению, я уделю немного времени на закрытие пробелов именно в Python.
Я имею опыт программирования на других языках, а Python получил своё распространение в том числе за его простой синтаксис, т.ч. много времени на изучение синтаксиса языка я тратить не буду. Достаточно пары статей или небольшой видео курс. Более того изучение синтаксиса языка без практики считаю пустой тратой времени. Так что я выбрал прикладной курс от Яндекса и МФТИ - https://www.coursera.org/learn/mathematics-and-python.
Изучение языка “по ходу дела” требует большей ответственности и дисциплины. Так как только ты сам в каждый момент времени должен понять достаточно ли глубоко понимаешь что происходит в коде, который пишешь, хватает ли тебе “словарного запаса” для достижения результата, не “пахнет" ли твой код. В случае любого дискомфорта нужно обратиться к дополнительным источникам и изучать глубже и шире.
Большинством источников рекомендуется установить готовую платформу для Data Science Anaconda, где есть все, что мне может понадобится. И это отлично для повседневной работы, но не для старта. Очень сложно понять взаимосвязь компонент сложной платформы, когда все компоненты уже установлены и настроены. Для меня сейчас - это запутанный клубок без начала и конца. Поэтому рекомендую устанавливать инструменты с нуля по необходимости с четким пониманием зачем оно нужно.
Шаги
- Для удобства работы с консолью рекомендую использовать zsh shell и его конфиг ohmyzsh как минимум ради улучшенной визуализации в терминале контекстной информации, например имя текущего git branch или название активированного Python окружения (что это такой расскажу дальше).
- Устанавливаем Python. И сразу выбор - вторая версия или третья? Обе версии актуальны и поддерживаются разработчиками. А помимо того они несовместимы, то есть имеют ряд отличий как в синтаксисе, так и на уровне библиотек. Все это тонкие нюансы, так что вопрос выбора для меня лично не принципиален. На многих Linux системах идет предустановленный Python. У меня на macOS - это Python 2.7. Так что я буду использовать его.
- Далее, нам нужен установщик пакетов. PyPI - основной репозиторий Python пакетов. В комплекте с предустановленным Python как правило идет установленный пакет setuptools, в который входит простой менеджер пакетов - easy_install. Находится в bin директории Python дистрибутива. Я буду использовать более продвинутую утилиту - pip.
- Далее, чтобы не захламлять общее пространство библиотек и решить вопрос использования разных версий как библиотек так и самого Python хорошо бы воспользоваться каким-нибудь инструментом организации локальных Python окружений, например virtualenv. Критерий выбора - популярность. Все устанавливаемые библиотеки по-умолчанию будут сохранены в папке активного окружения.
- Создадим директорию проекта, перейдем в нее и в ней же организуем новое Python окружение с именем ‘env’ - virtualenv env.
- Теперь все новые библиотеки и компоненты будут сохранены в директории этого окружения и никак не повлияют на всю систему. В случае чего сможем просто удалить окружение или создать новое в соседней директории.
- Следующий уровень удобства - это интерактивные ноутбуки с web интерфейсом. Тот же самый REPL, но с более дружелюбным интерфейсом, текстовым редактором и возможностями отображения графики браузером. ipython notebook устанавливается отдельно.
- Выполняем команду ipython notebook из под директории проекта. Именно эта директория будет рассматриваться Jupyter’ом как корень проекта, там мы будем хранить наши файлы ноутбуков. Запускается Notebook web server и открывается web страница в браузере.
- При необходимости установить очередную библиотеку открываем еще одну вкладку терминала, активируем окружение и доустанавливаем с помощью pip нужный пакет. Он становится сразу же доступен в Jupyter.
- После работы деактивирую виртуальное окружение.
Подписывайтесь на блог и делитесь ссылками на него с друзьями. Так вы поддерживаете автора. Отвечаю на комментарии.