Изучайте новые пакеты эффективно самостоятельно

Мотивация

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

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

Давайте углубимся.

Шаг 0: Будьте в облаках

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

Кроме того, большинству пакетов обработки данных, таких как SHAP и UMAP, требуются большие процессоры и графические процессоры, поэтому облачные среды должны быть вашим первым выбором. Лучшие варианты — Google Colab или Kaggle Kernels. Оба предлагают значительные преимущества с точки зрения среды кодирования и аппаратного обеспечения.

Кроме того, все они работают на Linux под капотом, и некоторые библиотеки, с которыми вы столкнетесь, намного проще установить, если у вас есть машина с Linux. Люди, которые пытались установить Tensorflow GPU на Windows, знают, о чем я говорю😉.

И на всякий случай:



Шаг 1. Начните с быстрого запуска

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

Если для пакета не требуется стороннее программное обеспечение, вам будет достаточно простой pip или conda установки. Например, вот краткое руководство по SHAP — отличному фреймворку для объяснения моделей черного ящика и глубоких нейронных сетей.

Шаг 2: Правило N-tab

После установки вы покидаете документацию и ищете в Google «руководство your_package_name».

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

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

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

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

Шаг 3. Перейдите к разделу учебных пособий или руководству пользователя.

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

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

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

Я рекомендую тратить по крайней мере 2-5 минут на каждый кусок. Сначала запустите его построчно, комментируя и раскомментируя их. Затем измените значения различных параметров и посмотрите, как они влияют на результат. Я использую «Shift + Tab» в Jupyter Lab, который показывает строку документации класса или функции во всплывающем окне для возможных идей.

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

Шаг 4. Справочник по API

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

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

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

Шаг 5: Что насчет интерфейса командной строки?

Что, если в вашем пакете также есть инструмент CLI?

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

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

Я также широко использую флаги --help или -h. Например, использование -h после conda показывает все подкоманды интерфейса командной строки Anaconda:

Меня больше всего интересуют подкоманды create, install и remove, потому что только они мне нужны для управления средами. После объединения каждой из них с ключевым словом conda я снова добавляю флаг -h и получаю еще один набор подкоманд. Я пробую те, которые мне нужны, и продолжаю добавлять -h флагов, пока не освоюсь со всем процессом.

Вот как вы станете ниндзя командной строки!

Сворачивать

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

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

Спасибо за чтение!