[МУЗЫКА] [МУЗЫКА] Здравствуйте, меня зовут Евгений и в рамках данного модуля мы познакомимся с вами с языком Python, с платформой Anaconda и рассмотрим несколько примеров реальных задач, посвященных анализу данных. В качестве языка для программирования и анализа данных мы выбрали Python. Почему мы выбрали именно Python? У нас для этого было несколько причин. Во-первых, Python достаточно простой в изучении и вам не составит большого труда понять его. Во-вторых, Pythin обладает открытым исходным кодом как и многие библиотеки, написанные на нем. В-третьих, Python достаточно популярен для анализа данных и существует огромное количество библиотек, посвященных анализу данных и написанных именно для Python. И в-четвертых, Python это скриптовый язык программирования и для него достаточно легко создать REPL, read-eval-print loop оболочки, в том числе и Jupyter Notebook, на котором мы с вами будем работать. В рамках данных ноутбуков очень удобно прототипировать, строить графики и сразу же видеть результат в интерактивной среде. На самом деле для научных вычислений существует не только Python. Есть еще например R или MatLan, крайне популярные конкуренты. Однако мы выбрали именно Python. Почему? Python, кроме всего прочего, еще и язык общего назначения. Например, на Python можно реализовать простой веб-сервис, организовать выгрузку данных с сайтов или же какие-либо операции в файловой системе — в отличие от R или MatLab на которых сделать это затруднительно. Python появился в 1991 году и разрабатывается и поддерживается независимой организацией Python Software Foundation. Эталонная реализация языка Python называется CPython. Когда говорят Python в основном имеют в виду именно его. Существуют две основные версии Python — Python2 и Python3. Python3 вышел в 2003 году и на данный момент является актуальной версией языка и развивается. Python2 только поддерживается. В рамках данного курса мы будем использовать Python3. Помимо эталонных реализаций есть различные Python для разных платформ. Так, например, вы можете найти реализацию Python, позволяющую запускать ее совместно с другими программами на платформе .NET или на платформе JVM. Проведем некий обзор экосистемы библиотек вокруг Python, посвященных анализу данных. Начнем, пожалуй, с NumPy. Это библиотека для алгебраических вычислений в рамках которой, например, можно решать различные линейные уравнения или же осуществлять преобразование Фурье. NumPy написана на языках C и Fortran и используются некоторые биндинги — оболочки под Python. Сам NumPy может зависеть от низкоуровневых библиотек, например iii. Так, например, в дестрибутив Anaconda включена реализация NumPy, основанная на дистрибутиве Intel MKL, которая поставляется автоматически вместе с пакетом Anaconda, который мы будем использовать. Помимо NumPy существуют также различные другие библиотеки, которые мы будем широко использовать, например SciPy, Scientific Python. Эта библиотека является своеобразны дополнением к NumPy, соответственно Numeric Python, и позволяет осуществлять более сложные математические действия. Например, в рамках SciPy очень удобно действовать с разреженными матрицами и векторами, использовать различные численные методы, а также методы оптимизации. А третья библиотека, которую мы рассмотрим, это библиотека MatplotLib. Эта библиотека используется для построения графиков различной визуализации. Если вы когда-нибудь строили графики на MatLab вам будет крайне знаком интерфейс MatplotLib. Поговорим о некоторых библиотеках, используемых напрямую для машинного обучения на Python. Начнем, пожалуй, с Scikit Learn. Scikit Learn это основая библиотека для датасайентиста на Python. В Scikit Learn реализованы многие алгоритмы машинного обучения, а ее интерфейс является де-факто стандартным для библиотек машинного обучения на Python, и зачастую не только на Python. Так, например, в платформе Apache Spark, широко используемой для анализа больших данных, интерфейс библиотеки ML также крайне сильно напоминает Scikit Learn. Другая библотека это Pandas. Данная библиотека используется для оперирования данными, осуществления простых аггрегаций и некоторых других операций. Pandas на самом деле это библиотека, которая считывает данные в формате dataframe и позволяет легко ими оперировать. Для простоты можно сказать, что dataframe в чем-то аналогичен таблице в Exel, всем нам знакомой и понятной. И еще однабиблиотека — это statesmodel. Эта библиотека крайне широко используется для классического статистического анализа, в данной библиотеке реализовано огромное количество различных статистических моделей и чисто статистических критериев. И если вам не хватает инструментария современного анализа данных, то вполне можно обратиться к классическим методам математической статистики. Также рассмотрим некоторый другой набор библиотек. Так, например, Scikit-image или Pillow это библиотеки, которые используются для анализа изображений. NLTK, gensim и многие другие это библиотеки, которые используются для анализа текстов. Например, в этих библиотеках возможна токенизация текста, его стемминг, анализ, удаление стоп-слов и векторизация (превращение в векторное пространство). Scrapy также может вам пригодиться. Это некоторый открытый каркас, на котором можно строить веб-краулеры — роботов, которые обходят Интернет и выкачивают данные, например, с какого-нибудь портала. Это крайне полезно при организации процесса сбора данных (если у вас их нет, то в уже удобном готовом формате). TensorFlow или Theano — это крайне модные сейчас библиотеки, используемые для обучения нейронных сетей с модулями, позволяющими обучать многослойные нейронные сети на ресурсах GPU. Python Software Foundation (организация, которая занимается развитием Python) предоставляет дистрибутивы Python для различных платформ, в том числе и для Windows. Однако под Windows работа с Python может быть крайне осложнена. В Linux ситуация немного отличается, и Python там входит в стандартный пакет разработчика. Как на Windows, так и на Linux могут быть различные проблемы с пакетами и их версиями. Однако существует некоторый дистрибутив, Anaconda, который позволяет разрешить их. В этот дистрибутив уже предвключены различные пакеты, широко используемые для анализа данных, и входят механизмы, позволяющие быстро и легко осуществлять установку новых макетов. В рамках данного модуля наши практические задачи мы будем реализовывать с помощью дистрибутива Anaconda и в рамках Jupyter Notebook, действия в котором вы увидите дальше.