Это большой обзорный пост, который поможет новичкам быстро сориентироваться в дебрях терминологии Data Science. Мы последовательно опишем все основные модули, библиотеки и утилиты, которые должен знать любой, претендующий на изучение больших данных. Наука о данных еще никогда не была так доступна, как с приходом великолепных инструментов на базе Python.
Данный пост – это вольный перевод вот этого оригинального поста от Стефана Селтманна, который делится своей мудростью для изучения основ науки о данных. Мы поверхностно рассмотрим все основные инструменты из мира ML/AI/DS, чтобы в итоге получить общее представление и майнд-карту того, что нужно знать при изучении науки о данных.
Python уже давно привлекает специалистов по анализу данных. Когда я начал совершенствовать свои навыки работы с данными и Python, у меня сразу был список библиотек Python, о которых обязательно надо было знать.
Кроме того, тот, кто знаком с моим github, знает, что я большой поклонник как R, так и Python в повседневной работе.
Насколько мощным является R с точки зрения функциональных возможностей для анализа и моделирования данных, настолько же быстро угасает мотивация его использования в случае «перемалывания цифр», когда оперативная память забита данными и компьютер работает на пределе.
В этом контексте хорошая серверная установка с большим количеством металла (например, 96Gig-RAM) творит чудеса.
Поскольку такой вариант не всегда доступен для простых смертных, я обратился к более производительной альтернативе, а именно к альтернативам R на основе Python, тем более что я уже давно использую Python для ETL и подготовки данных.
Machine Learning в Python не является уникальным, поскольку многое можно аналогично реализовать на R, даже если часто требуются соответствующие расширения. Если просто взглянуть на шпаргалку по алгоритмам scikit learn, на первый взгляд кажется, что там вообще нет обычных методов регрессии. Сразу же делается скачок к регуляризованным методам, а вместо логистической регрессии для решения задачи бинарной классификации предлагается использовать SVM.
Даже если вся эта мешанина модулей Python кажется вам запутанной и недоступной — как корзина, полная змей, — я вижу в этой технологии огромный потенциал. Она позволяет создавать очень производительные, формально строгие, высокоавтоматизированные и легко развертываемые приложения машинного обучения, которые можно масштабировать.
Следующий список элементов предназначен для того, чтобы дать новичкам начальный путеводитель по джунглям аббревиатур и магических названий из мира Python DS. Погнали!
NumPy предоставляет в ваше распоряжение высокопроизводительные структуры данных. Он отлично подходит для обработки больших данных. Основы были реализованы на языках C и Fortran, что является причиной хорошей производительности.
NumPy также включает в себя возможности для математических расчетов, однако это не является основной целью приложения.
Типы данных и структуры данных NumPy составляют основу для всех последующих технологий Python, перечисленных здесь.
Когда использовать? NumPy используется для обработки массивов, хранящих значения одного типа данных. NumPy облегчает математические операции над массивами и их векторизацию. Это значительно повышает производительность и соответственно ускоряет время выполнения.
Что вы можете делать с помощью NumPy?
DateTime
или линейной алгеброй.SciPy развивает NumPy и расширяет возможности последнего за счет научных вычислений. Так сказать, SciPy и NumPy можно рассматривать как небольшую Python-альтернативу Matlab.
SciPy довольно малоинтересен для повседневного анализа в области машинного обучения.
Когда использовать? SciPy использует массивы в качестве основной структуры данных. Он имеет различные модули для выполнения общих задач научного программирования, таких как линейная алгебра, интегрирование, исчисление, обыкновенные дифференциальные уравнения и обработка сигналов.
Pandas также развивает NumPy и улучшает удобство преобразования и анализа данных.
Структуры NumPy упакованы в объекты, которые весьма похожи на типы данных R. Так, существуют серии (векторы R) и фреймы данных. Подмножество/фильтрация, новое вычисление переменных, агрегация и связывание фреймов данных работают относительно интуитивно и явно вдохновлены R в плане удобства использования.
Объекты Pandas упрощают работу, предоставляя методы для описательной статистики и визуализации. Таким образом, полностью реализованы стандарты для исследовательского анализа данных. Учитывая богатство методов, стоит часто просматривать документацию.
Когда использовать? Pandas — это идеальный инструмент для работы с данными. Он предназначен для быстрого и простого манипулирования данными, чтения, агрегирования и визуализации.
Pandas берет данные из файла CSV или TSV, или базы данных SQL, и создает объект Python со строками и столбцами, называемый рамкой данных. Каркас данных очень похож на таблицу в статистическом программном обеспечении, например, Excel или SPSS.
Что можно делать с помощью Pandas?
Это делает Pandas базовой библиотекой при изучении Python для Data Science.
Этот пакет является центральной библиотекой машинного обучения Python. Он предлагает множество современных процессов для каждой области машинного обучения. Поскольку для каждого вида моделирования используется один и тот же интерфейс, можно тестировать различные модели друг с другом с помощью общих кодов гораздо проще, чем в R. Замечателен также набор стандартных инструментов для преобразования переменных.
Недостатком в данном контексте является тот факт, что scikit modeling только моделирует и не делает многого другого. Нет ни сводки модели, ни графиков, даже некоторые простейшие диагностики приходится вычислять вручную и т.д.
Название scikit происходит от «SciPy Toolkit». Таким образом, он был разработан на основе SciPy, поскольку сам SciPy не включает соответствующие методы.
Что можно сделать с помощью Scikit Learn?
Scikit Learn фокусируется на моделировании данных, а не на манипулировании ими. У нас есть NumPy и Pandas для обобщения и манипулирования данными.
В 2017 году я получил USB-флешку с TensorFlow в качестве благодарности за то, что был докладчиком на мероприятии Google WTM. На USB была официальная документация по TensorFlow. Не имея на тот момент никакого представления о том, что такое TensorFlow, я погуглил.
TensorFlow — это библиотека искусственного интеллекта, которая помогает разработчикам создавать крупномасштабные нейронные сети с большим количеством уровней, используя графы потока данных. TensorFlow также облегчает построение моделей глубокого обучения, продвигает новейшие достижения в области ML/AI и позволяет легко развертывать приложения с поддержкой ML.
Среди всех библиотек TensorFlow — один из самых развитых инструментов. Такие гиганты, как Google, Coca-Cola, Airbnb, Twitter, Intel, DeepMind, все используют TensorFlow!
Когда использовать? TensorFlow весьма эффективен, когда речь идет о классификации, восприятии, понимании, обнаружении, предсказании и создании данных.
Что делать с TensorFlow?
Это, несомненно, моя любимая и квинтэссенция библиотеки Python. Вы можете создавать истории с помощью данных, визуализированных с помощью Matplotlib. Это еще одна библиотека из стека SciPy, Matplotlib также строит двумерные графики.
Машинное обучение на Python становится полноценным только благодаря шикарным визуализациям, и здесь на помощь приходит matplotlib. Эта графическая библиотека, которая изначально разрабатывалась независимо от вышеупомянутых технологий, позволяет создавать любые мыслимые визуализации, поскольку все объекты, какими бы маленькими они ни были, остаются выбираемыми и изменяемыми на графике, при условии достаточных навыков разработчика.
В то же время она предлагает достаточно «высокоуровневых» функций для новичков, чтобы быстро создать первые графики на уровне публикации.
Когда использовать? Matplotlib — это библиотека построения графиков для Python, которая предоставляет объектно-ориентированный API для встраивания графиков в приложения. Она представляет собой близкое подобие MATLAB, встроенного в язык программирования Python.
Что можно делать с помощью Matplotlib?
Гистограммы, столбчатые диаграммы, диаграммы рассеяния, диаграммы площадей и круговые диаграммы — Matplotlib может изобразить широкий спектр визуализаций. С помощью Matplotlib вы можете создавать любые визуализации, приложив немного усилий и изучив возможности визуализации:
Matplotlib также облегчает работу с метками, сетками, легендами и некоторыми другими сущностями форматирования в Matplotlib. В общем, все, что можно нарисовать!
Statsmodel — это новая альтернатива scikit-learn, которая значительно больше вдохновлена R и больше ориентирована на классическое моделирование и добычу данных. После расчета модели вы получаете красивое резюме с полезной подборкой ключевых показателей. Объект модели также включает множество повторно используемых вычислений, знакомых по R. Есть даже интерфейс, который принимает формулы модели в той же нотации, что и в R.
Когда использовать? Statsmodels — это универсальный пакет Python, который обеспечивает простые вычисления для описательной статистики, а также оценки и выводы для статистических моделей.
Что делать с помощью Statsmodels?
Прежде всего, IPython — это интерактивная командная строка для Python. Интеллектуальное автозаполнение значительно облегчает работу с данными. Однако нельзя автоматически приравнивать консоль к блокноту IPython.
Блокнот поднимает консоль IPython до уровня рабочей среды на основе веб-технологий, которая включает в себя множество функций юзабилити, визуализирует графики и выходные данные во время работы в коде, предоставляет возможности для публикации с точки зрения «воспроизводимых исследований». Поэтому тот, кто ищет альтернативу R knitr, обязательно приходит к IPython notebook.
Настало время, когда мы изучили путеводитель по лучшим библиотекам Python для науки о данных, и можем рассмотреть четыре бонусные библиотеки! Они не входят в нынешние топы, но на них стоит обратить внимание тем, кто хочет оседлать завтрашние тренды.
SpaCy — это библиотека с открытым исходным кодом, используемая для продвинутого NLP для Python и Cython (язык программирования Python для придания C-подобных ощущений и производительности с кодом Python, плюс синтаксис, вдохновленный C).
Bokeh — это библиотека Python, которую я рекомендовал бы выбрать для интерактивной визуализации данных. При наличии таких инструментов, как Tableau, QlikView или PowerBI, зачем нам нужен Bokeh?
Во-первых, Bokeh позволяет быстро строить сложные статистические графики с помощью простых команд. Он поддерживает HTML, блокнот или вывод на сервер. Во-вторых, можно интегрировать визуализацию Bokeh в приложения на Flask и Django или в визуализации, написанные на других библиотеках, таких как matplotlib, seaborn, ggplot.
Gensim, на мой взгляд, сильно отличается от того, что мы видели до сих пор. Он автоматически извлекает семантические темы из документов с высокой эффективностью и без особых усилий. Алгоритмы Gensim являются автономными, что намекает на то, что не требуется никакого человеческого ввода — просто обычные текстовые документы, а затем выполняется извлечение семантики.
NLTK (Natural Language Toolkit) в основном работает с человеческим языком, а не с компьютерным. Это отличный инструмент для обработки естественного языка (NLP). Он содержит библиотеки для обработки текста, с помощью которых можно выполнять токенизацию, синтаксический анализ, классификацию, тегирование и семантическое обоснование данных.
Это может показаться повторением того, что могут делать другие библиотеки, но каждая библиотека в Python была написана для решения определенной общей задачи, с большим спектром индивидуальных возможностей.
Если человек хочет попробовать эти технологии, он наверняка потерпит неудачу при начальной установке названных пакетов, по крайней мере, при использовании Windows. Обычно на текущей установке python достаточно команды типа «pip install sklearn
».
Однако она прерывается, если не установлен ряд компиляторов, например VisualStudio. Если у человека нет компьютерного образования или других потребностей в подобных компиляторах, он не хочет загромождать свою установку различными компиляторами. Альтернативой может быть установка предварительно скомпилированных неофициальных двоичных файлов, как это сделал я.
Лучшим выходом в этой ситуации, вероятно, будет установка расширенного дистрибутива Python, такого как Anaconda. Он включает в себя все вышеупомянутые пакеты и многое другое. Он немного более обширен, чем обычная установка Python. Однако он идеально приспособлен для анализа данных, и есть даже коммерческие версии Continum Analytics Enterprise.
Конечно, данный большой суматошный обзор является лишь поверхностным взглядом, не претендующим на полноту и глубину описания мира Python. Кроме того, сообщество Python развивается так быстро, что завтра этот пост уже может стать неактуальным.
Тем не менее, я надеюсь, что этот пост помог новичкам сориентироваться в дебрях терминологии Data science.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…