Какие инструменты вам нужны, чтобы получить первоначальную эффективность в науке о данных

Введение

Всем привет !

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

И основная идея статьи не объяснить, что такое ML и DS, а показать некоторые полезные инструменты, чтобы сделать вашу работу более эффективный.

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

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

Мое начало

Моя карьера программиста началась с разработки приложений для Java и Android. Мне было интересно именно после того, как я был экономистом или менеджером по продажам. Но моя первая встреча с ИИ была случайной и полностью захватила меня. Я отказался от Android и начал изучать математику искусственных нейронных сетей. И после этой части идет объяснение основной темы: что делать, чтобы работать эффективнее в науке о данных.

Базовый: Питон

Почему питон?

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

Преимущества:

  • Во-первых, это очень просто. Я потратил месяц после использования Java, чтобы выучить его на нормальном уровне. Есть много хороших книг и статей, чтобы узнать это. Внизу статьи я помещаю несколько полезных источников.
  • Очень могущественный. Есть все необходимые функции, типы данных, структуры данных. И python из семейства динамических языков. То есть вы можете написать псевдокод, и он будет работать (шутка с большой долей правды).
  • Кроме того, для него написан огромный пул библиотек (например, numpy, pandas и т. д.).

Недостатки:

В начале вы, вероятно, этого не увидите, но это так.

  • Питон медленный. Почему ?

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

Таким образом, код на Python «съедает» больше системной памяти, чем обычный код на C.

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

Нампи

Numpy — числовой питон. Это самый популярный пакет Python в мире. После того, как вы поймете основы Python, начните изучать numpy.

Нампи очень мощный. Он был написан на C++ и имеет два основных преимущества: мощность и скорость.

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

И это быстрее, чем питон. Он «съедает» меньше памяти, чем python. Но скорость иногда снижается для экономии памяти (например, используйте цикл for и стандартный python для добавления к стандартному массиву со 100 тысячами массивов со 100 случайными целыми числами и сделайте то же самое, используя numpy, и вы увидите разницу).

Панды

Pandas — второй популярный пакет после numpy для его установки. Он состоит из numpy и других пакетов, которые сделают вашу работу с таблицами более эффективной.

Это стандартная задача: у вас есть таблица Excel/google, и вам нужно один раз загрузить ее в свой код без долгих циклов и ридеров. С пандами вы можете сделать это легко.

У вас есть кадр данных pandas, и вам нужно быстро увидеть гистограмму значений столбца X? your_data_frame.plot(kind= ‘bar’ ) и все. Краткий пример:

Изучайте панд и становитесь сильнее.

Матплотлиб

Этот пакет очень популярен. Его основная функция — визуализировать ваши данные с помощью графиков, гистограмм, диаграмм, точек и т. д. Даже 3D визуализация данных.

Пакет Matplotlib очень прост для понимания, просто поставьте перед собой цель.

Scikit-learn

Scikit-learn — это очень популярный пакет, с которого можно действительно начать свое большое путешествие в области ML/DS. Он состоит из огромного количества алгоритмов и инструментов для решения всех основных задач, таких как:

В ней много полезных материалов для начала обучения и расширения своих знаний.

Керас

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

Керас прост (с точки зрения сравнения). Его легче изучить, чем Tensorflow (keras использует tensorflow на высоком уровне, чтобы упростить вашу жизнь).

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

Мой опыт

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

Сейчас я расскажу вам свой путь.

Я начал с … keras. После того, как я понял, что Java не подходит для решения задач ML, я бы использовал keras с python без каких-либо знаний о python. Наконец я понял, что мне нужно более глубокое понимание python и выучил python. В то время я не знал обо всех инструментах, которые я перечислил здесь, только о numpy, но это меня очень пугало.

Я думал, что и ML, и DS, и DL — это только нейросети и какая-то статистика. Но затем я понял одну важную вещь:

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

Что дальше ?

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

Это не депрессивный ум. Просто хочу тебе сказать.

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

Все эти пакеты — лишь верхушка айсберга и код с ними надо писать как с повязкой на глазах: быстро и правильно. И запомни:

Если вы тратите меньше 50% времени вашего проекта на работу с данными — вы действуете неправильно, и ничего хорошего не произойдет.

Ресурсы для изучения

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

Если вы хотите начать прямо сейчас, есть много бесплатных ресурсов и документации:

Надеюсь, вы нашли здесь полезный материал, и он вам поможет.

Удачи !

Бондаренко К., инженер по машинному обучению :)