0

Библиотеки машинного обучения python

Data science, или наука о данных, набирает все большую популярность среди самых востребованных профессий современного рынка. Специалист в этой области должен обладать глубокими разносторонними знаниями, как теоретическими, так и практическими. К услугам начинающих аналитиков данных предлагаются инструменты автоматизированного характера с уже заложенным функционалом, как, например, мощное программное обеспечение Weka. Однако, многие data scientist-ы, предпочитая широту и манёвренность действий, создают собственные инструменты и пайплайны. Язык программирования Python как нельзя лучше подходит для этих целей. Возможности Python позволяют написать программу для задач машинного обучения как с чистого листа, так и с использованием различных библиотек и инструментов. О последних мы и поговорим.

Обработка больших данных с помощью библиотек Pandas, CSV и OpenPyXL

Чаще всего в задачах для бизнеса исходные данные предоставляются в формате .xlsx или .xlsm, однако многие предпочитают формат .csv (файлы, в которых каждая строка представлена полями, разделенными каким-либо знаком — обычно запятой или точкой с запятой).

Библиотека Pandas — один из самых популярных инструментов Python для работы с данными, она поддерживает различные текстовые, бинарные и sql форматы файлов, в том числе .xlsx , .xls и .csv . Для работы с файлами Excel Pandas использует модули xlrd и xlwt.

Модуль CSV содержит утилиты для работы исключительно с csv-файлами. Однако, детали нотации создания csv-файлов в разных программах могут различаться (как, например, в Excel), и модуль CSV позволяет корректно читать большинство различных реализаций .csv без необходимости учитывать, какой программой и как был сгенерирован файл.

OpenPyXL — это библиотека для работы исключительно с Excel-файлами, такими как .xlsx, .xlsm, .xltx, .xltm для версий Excel от 2010 года и новее. OpenPyXL содержит инструменты для чтения, записи и обработки данных указанных форматов, а также для построения графиков.

Разберем на примерах базовые возможности этих инструментов. Мы будем использовать данные с портала Kaggle об участниках Олимпийских игр за 120 лет.

Опубликовано Шамаев Иван в 09.08.2019 09.08.2019

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

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

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

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

Мое мнение — Python является идеальным выбором для начинающих, чтобы сосредоточиться на том, чтобы перейти в области машинного обучения и науки о данных. Это минималистичный и интуитивно понятный язык с полнофункциональной библиотечной линией (также называемой фреймворками), которая значительно сокращает время, необходимое для получения первых результатов.

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

Прежде всего, вам необходимо знать, что существуют различные этапы машинного обучения :

  • сбор информации
  • сортировка данных
  • анализ данных
  • разработка алгоритма
  • сгенерированный алгоритм проверки
  • использование алгоритма для дальнейших выводов

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

  • Неконтролируемое обучение
  • Контролируемое обучение

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

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

Некоторые контролируемые алгоритмы обучения включают в себя:

  • Деревья решений
  • Машина опорных векторов
  • Наивный байесовский классификатор
  • k-ближайшие соседи
  • линейная регрессия

Человек, работающий в области ИИ и МЛ, который не знает математику, похож на политика, который не умеет убеждать. У обоих есть неизбежная область для работы!

Так что да, вы не можете иметь дело с проектами ML и Data Science без минимальной математической базы знаний. Тем не менее, вам не нужно иметь степень по математике, чтобы преуспеть. По моему личному опыту, посвящение по крайней мере 30–45 минут каждый день принесет много пользы, и вы быстрее поймете и изучите продвинутые темы Python для математики и статистики.

Читайте также:  Для чего служит маршрутизатор

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

Вот 3 шага для изучения математики, необходимой для анализа и машинного обучения:

1 — Линейная алгебра для анализа данных: скаляры, векторы, матрицы и тензоры

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

2 — Математический анализ: производные и градиенты

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

Для быстрого изучения линейной алгебры и математического анализа я бы порекомендовал следующие курсы:

Хан Академия предлагает короткие практические занятия по линейной алгебре и математическому анализу. Они охватывают самые важные темы.

MIT OpenCourseWare предлагает отличные курсы для изучения математики для ML. Все видео лекции и учебные материалы включены.

3 — градиентный спуск: построение простой нейронной сети с нуля

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

Вот несколько хороших прохождений:

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

Короткие учебники, которые также помогут вам шаг за шагом освоить нейронные сети:

Машинное обучение для начинающих: введение в нейронные сети — еще одно хорошее простое объяснение того, как работают нейронные сети и как реализовать их с нуля в Python.

Хорошие новости: вам не нужен полный курс обучения, так как Python и анализ данных не являются синонимами.

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

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

Аналогичное действие происходит при изучении программирования. Не стоит фокусироваться исключительно на синтаксисе. Просто так вы рискуете потерять интерес.

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

Если у вас нет понимания программирования, я рекомендую прочитать статью «Автоматизировать скучные вещи с помощью Python» . Книга предлагает объяснить практическое программирование для начинающих и учить с нуля. Прочитайте главу 6 «Манипулирование строками» и завершите практические задания для этого урока. Этого будет достаточно.

Вот еще несколько полезных ресурсов для изучения:

Codecademy — учит хороший общий синтаксис

Изучите Python трудный путь — блестящая книга, похожая на руководство, которая объясняет как основы, так и более сложные приложения.

Dataquest — этот ресурс учит синтаксису, а также обучает науке о данных

И помните: чем раньше вы начнете работать над реальными проектами, тем раньше вы это освоите. В любом случае, вы всегда можете вернуться к синтаксису, если вам это нужно.

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

Как использовать библиотеки? Вот мои рекомендации:

  1. Откройте Блокнот Jupyter (см. Ниже).
  2. Просмотрите документацию библиотеки примерно через полчаса.
  3. Импортируйте библиотеку в свой блокнот Jupyter.
  4. Следуйте пошаговому руководству, чтобы увидеть библиотеку в действии.
  5. Изучите документацию, чтобы увидеть, на что еще она способна.

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

Jupyter Notebook — это облегченная среда разработки, которая пользуется популярностью среди аналитиков. В большинстве случаев установочный пакет для Python уже включает в себя Jupyter Notebook. Вы можете открыть новый проект через Anaconda Navigator, который входит в пакет Anaconda. Посмотрите это вступительное видео .

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

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

Matplotlib — это гибкая библиотека для создания графиков и визуализации. Это мощный, но несколько тяжелый вес. На этом этапе вы можете пропустить Matplotlib и использовать Seaborn для начала работы (см. Seaborn ниже).

Я могу сказать, что это самый хорошо разработанный пакет ML, который я когда-либо наблюдал. Он реализует широкий спектр алгоритмов машинного обучения и позволяет использовать их в реальных приложениях. Здесь вы можете использовать целый ряд функций, таких как регрессия, кластеризация, выбор модели, предварительная обработка, классификация и многое другое. Так что это абсолютно стоит изучить и использовать. Большим преимуществом здесь является высокая скорость работы. Поэтому неудивительно, что такие ведущие платформы, как Spotify, Booking.com, JPMorgan, используют scikit-learn.

Читайте также:  Как в визио сделать формат а3

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

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

Dataquest — Интерактивно обучает Python и науке о данных. Вы анализируете серию интересных наборов данных, начиная с документов Центрального разведывательного управления и заканчивая статистикой игр Национальной баскетбольной ассоциации. Вы будете разрабатывать тактические алгоритмы, которые включают нейронные сети и деревья решений.

Python для анализа данных — книга, написанная автором многих работ по анализу данных на Python.

Scikit — документация — Основная компьютерная обучающая библиотека на Python.

CS109 — Курсы Гарвардского университета наук о данных.

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

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

Документация Python — еще одно хорошее место для поиска справочного материала

Само собой разумеется, вы также не должны пренебрегать любой возможностью или сотрудничеством, о котором вас просят. Участвуйте во всех возможных мероприятиях, связанных с Python, и находите людей, которые работают над интересными проектами. Изучите новые проекты, которые были сделаны другими людьми, кстати, Github — отличное место для этой цели. Узнайте о новых и следите за обновлениями в теме — все это определенно будет способствовать повышению уровня вашей игры!

Вы, возможно, спросите: «Почему я должен погрузиться в сферу машинного обучения? возможно, уже есть много других хороших специалистов.

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

Согласно закону Мура число транзисторов в интегральной схеме удваивается каждые 24 месяца. Это означает, что с каждым годом производительность наших компьютеров растет, а это означает, что ранее недоступные границы знаний снова «сдвигаются вправо» — есть место для изучения больших данных и алгоритмов машинного обучения!

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

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

Поскольку Python в последние годы приобрел большую популярность в отрасли Data Science, я хотел бы изложить некоторые из его наиболее полезных библиотек для работы с данными.

Все библиотеки с открытым исходным кодом и поэтому мы сравним их по таким показателям как количество коммитов, вкладов и запросов на Github, а также Google Trends. Эти данные можно будет использовать как метрики популярности библиотек.

Основные библиотеки

1. NumPy (коммиты: 16348, контрибьюторы: 540)

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

Математические алгоритмы, реализованные на Python, часто работают гораздо медленнее тех же алгоритмов, реализованных на компилируемых языках (например, Фортран, Си, Java). Библиотека NumPy предоставляет реализации вычислительных алгоритмов (в виде функций и операторов), оптимизированные для работы с многомерными массивами. В результате любой алгоритм, который может быть выражен в виде последовательности операций над массивами (матрицами) и реализованный с использованием NumPy, работает так же быстро, как эквивалентный код, выполняемый в MATLAB.

2. SciPy (коммиты: 17509, контрибьюторы: 510)

SciPy – это открытая библиотека высококачественных научных инструментов для языка программирования Python. SciPy содержит модули для оптимизации, интегрирования, специальных функций, обработки сигналов, обработки изображений, генетических алгоритмов, решения обыкновенных дифференциальных уравнений и других задач, обычно решаемых в науке и при инженерной разработке. Библиотека разрабатывается для той же аудитории, что MATLAB и Scilab. Для визуализации при использовании SciPy часто применяют библиотеку Matplotlib, являющуюся аналогом средств вывода графики MATLAB. В настоящее время SciPy распространяется под лицензией BSD и его разработчики спонсируются Enthought.

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

3. Pandas (коммиты: 15418, контрибьюторы: 848)

Pandas – это библиотека Python,которая является мощным инструментом для анализа данных. Пакет дает возможность строить сводные таблицы, выполнять группировки, предоставляет удобный доступ к табличным данным, а при наличии пакета matplotlib дает возможность рисовать графики на полученных наборах данных. Далее будут показаны основы работы с пакетом, такие как загрузка данных, обращение к полям, фильтрация и построение сводных.

Основные возможности библиотеки:

  • Объект DataFrame для манипулирования индексированными массивами двумерных данных
  • Инструменты для обмена данными между структурами в памяти и файлами различных форматов
  • Встроенные средства совмещения данных и способы обработки отсутствующей информации
  • Переформатирование наборов данных, в том числе создание сводных таблиц
  • Срез данных по значениям индекса, расширенные возможности индексирования, выборка из больших наборов данных
  • Вставка и удаление столбцов данных
  • Возможности группировки позволяют выполнять трёхэтапные операции типа «разделение, изменение, объединение» (англ. split-apply-combine).
  • Слияние и объединение наборов данных
  • Иерархическое индексирование позволяет работать с данными высокой размерности в структурах меньшей размерности
  • Работа с временными рядами: формирование временных периодов и изменение интервалов и т. д.

Статистика Google Trends

История запросов на GitHub

Визуализация

4. Matplotlib (коммиты: 22235, контрибьюторы: 616)

Matplotlib — это библиотека Python для построения качественных двумерных графиков. Matplotlib является гибким, легко конфигурируемым пакетом, который вместе с NumPy, SciPy и IPython предоставляет возможности, подобные MATLAB. В настоящее время пакет работает с несколькими графическими библиотеками, включая wxWindows и PyGTK.

Пакет поддерживает многие виды графиков и диаграмм:

  • Графики (line plot)
  • Диаграммы разброса (scatter plot)
  • Столбчатые диаграммы (bar chart) и гистограммы (histogram)
  • Круговые диаграммы (pie chart)
  • Ствол-лист диаграммы (stem plot)
  • Контурные графики (contour plot)
  • Поля градиентов (quiver)
  • Спектральные диаграммы (spectrogram)
Читайте также:  Идет завершение работы прошлого запуска

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

Несложные трёхмерные графики можно строить с помощью набора инструментов (toolkit) mplot3d. Есть и другие наборы инструментов: для картографии, для работы с Excel, утилиты для GTK и другие.

5. Bokeh (коммиты: 16121, контрибьюторы: 243)

Bokeh — это мощная библиотека с открытым исходным кодом, которая позволяет визуализировать данные для веб-приложений, не написав ни строчки на javascript. Изучение библиотек для визуализации вроде d3.js может оказаться полезным, но гораздо легче написать несколько строк кода на Python, чтобы решить задачу.

С Bokeh мы можем создавать поразительно детальные интерактивные визуализации или же более простые вещи, вроде столбчатых диаграмм.

6. Plotly (коммиты: 2593, контрибьюторы: 38)

Plotly – это библиотека, с помощью, которой достаточно легко строить интерактивные графики в Jupyter Notebook’e. В Python есть много библиотек для визуализации, среди них и те, которые позволяют строить интерактивные графики, например, bokeh, pygal и plotly, о котором собственно идет речь.

Plotly позицинируется как online-платформа, где можно создавать и публиковать свои графики. Однако, эту библиотеку можно использовать и просто в Jupyter Notebook’e. К тому же у библиотеки есть offline-mode, который позволяет использовать ее без регистрации и публикации данных и графиков на сервер plotly.

7. SciKit-Learn (коммиты: 22096, контрибьюторы: 898)

Scikit-learn это библиотека для машинного обучения на языке программирования Python с открытым исходным кодом. С помощью нее можно реализовать различныеалгоритмы классификации, регрессии и кластеризации, в том числе алгоритмы SVM,случайного леса, k-ближайших соседей и DBSCAN, которые построены на взаимодействии библиотек NumPyи SciPy с Python.

Достоинствами данной библиотеки являются:

  • Простые и эффективные инструменты для data mining и data analysis;
  • Удобный доступ к необходимым компонентам;
  • Построен на NumPy, SciPy и Matplotlib;
  • Открытый исходный код, лицензия BSD.

Статистика Google Trends

История запросов на GitHub

Machine Learning

8. Theano (коммиты: 26580, контрибьюторы: 313)

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

  • тесная интеграция с NumPy;
  • прозрачное использование GPU;
  • эффективное дифференцирование переменных;
  • быстрая и стабильная оптимизация;
  • динамическая генерация кода на C;
  • расширенные возможности юнит-тестирования и самопроверок;

9. TensorFlow (коммиты: 19862, контрибьюторы: 956)

Проект TensorFlow масштабнее, чем вам может показаться. Тот факт, что это библиотека для глубинного обучения, и его связь с Гуглом помогли проекту TensorFlow привлечь много внимания. Но если забыть про ажиотаж, некоторые его уникальные детали заслуживают более глубокого изучения:

  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

10. Keras (коммиты: 3745, контрибьюторы: 493)

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

Изначально Keras вырос как удобная надстройка над Theano. Отсюда и его греческое имя — κέρας, что значит “рог” по-гречески, что, в свою очередь, является отсылкой к Одиссее Гомера. Хотя, с тех пор утекло много воды, и Keras стал сначала поддерживать Tensorflow, а потом и вовсе стал его частью. Впрочем, наш рассказ будет посвящен не сложной судьбе этого фреймворка, а его возможностям. Если вам интересно, добро пожаловать под кат.

Статистика Google Trends

История запросов на GitHub

Обработка естественного языка

11. NLTK (коммиты: 12629, контрибьюторы: 201)

Библиотека NLTK, или NLTK — пакет библиотек и программ для символьной и статистической обработки естественного языка, написанных на языке программирования Python. Содержит графические представления и примеры данных. Сопровождается обширной документацией, включая книгу с объяснением основных концепций, стоящих за теми задачами обработки естественного языка, которые можно выполнять с помощью данного пакета.

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

12. Gensim (коммиты: 2878, контрибьюторы: 179)

Python-библиотека Gensim — популярный инструмент для автоматической обработки языка, основанный на машинном обучении и используемый как коммерческими компаниями, так и академическими исследователями. В Gensim реализованы алгоритмы дистрибутивной семантики word2vec и doc2vec, он позволяет решать задачи тематического моделирования (topic modeling) и выделять основные темы текста или документа.

Целевая аудитория является обработка естественного языка (НЛП) и IR сообщество. В Gensim реализованы популярные алгоритмы НЛП.

Например, word2vec. Большинство реализаций алгоритмов умеет использовать несколько ядер.

Статистика Google Trends

История запросов на GitHub

Data Mining

13. Scrapy (коммиты: 6409, контрибьюторы: 251)

Scrapy – одна из наиболее популярных и производительных библиотек Python для получения данных с веб-страниц, которая включает в себя большинство общих функциональных возможностей. Это значит, что вам не придётся самостоятельно прописывать многие функции. Scrapy позволяет быстро и без труда создать «веб-паука».

Пакет Scrapy (как и большинство других пакетов Python) можно найти в PyPI (Python Package Index, также известен как pip) – это поддерживаемый сообществом репозиторий для всех вышедших пакетов Python.

Изучайте веб разработку, с помощью онлайн уроков, каждый понедельник и среду в 20:00, на канале: Быстрый старт в веб-разработке (на странице проекта доступны записи всех уроков).

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

0

Библиотеки машинного обучения python

Data science, или наука о данных, набирает все большую популярность среди самых востребованных профессий современного рынка. Специалист в этой области должен обладать глубокими разносторонними знаниями, как теоретическими, так и практическими. К услугам начинающих аналитиков данных предлагаются инструменты автоматизированного характера с уже заложенным функционалом, как, например, мощное программное обеспечение Weka. Однако, многие data scientist-ы, предпочитая широту и манёвренность действий, создают собственные инструменты и пайплайны. Язык программирования Python как нельзя лучше подходит для этих целей. Возможности Python позволяют написать программу для задач машинного обучения как с чистого листа, так и с использованием различных библиотек и инструментов. О последних мы и поговорим.

Обработка больших данных с помощью библиотек Pandas, CSV и OpenPyXL

Чаще всего в задачах для бизнеса исходные данные предоставляются в формате .xlsx или .xlsm, однако многие предпочитают формат .csv (файлы, в которых каждая строка представлена полями, разделенными каким-либо знаком — обычно запятой или точкой с запятой).

Библиотека Pandas — один из самых популярных инструментов Python для работы с данными, она поддерживает различные текстовые, бинарные и sql форматы файлов, в том числе .xlsx , .xls и .csv . Для работы с файлами Excel Pandas использует модули xlrd и xlwt.

Модуль CSV содержит утилиты для работы исключительно с csv-файлами. Однако, детали нотации создания csv-файлов в разных программах могут различаться (как, например, в Excel), и модуль CSV позволяет корректно читать большинство различных реализаций .csv без необходимости учитывать, какой программой и как был сгенерирован файл.

OpenPyXL — это библиотека для работы исключительно с Excel-файлами, такими как .xlsx, .xlsm, .xltx, .xltm для версий Excel от 2010 года и новее. OpenPyXL содержит инструменты для чтения, записи и обработки данных указанных форматов, а также для построения графиков.

Разберем на примерах базовые возможности этих инструментов. Мы будем использовать данные с портала Kaggle об участниках Олимпийских игр за 120 лет.

Опубликовано Шамаев Иван в 09.08.2019 09.08.2019

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

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

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

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

Мое мнение — Python является идеальным выбором для начинающих, чтобы сосредоточиться на том, чтобы перейти в области машинного обучения и науки о данных. Это минималистичный и интуитивно понятный язык с полнофункциональной библиотечной линией (также называемой фреймворками), которая значительно сокращает время, необходимое для получения первых результатов.

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

Прежде всего, вам необходимо знать, что существуют различные этапы машинного обучения :

  • сбор информации
  • сортировка данных
  • анализ данных
  • разработка алгоритма
  • сгенерированный алгоритм проверки
  • использование алгоритма для дальнейших выводов

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

  • Неконтролируемое обучение
  • Контролируемое обучение

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

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

Некоторые контролируемые алгоритмы обучения включают в себя:

  • Деревья решений
  • Машина опорных векторов
  • Наивный байесовский классификатор
  • k-ближайшие соседи
  • линейная регрессия

Человек, работающий в области ИИ и МЛ, который не знает математику, похож на политика, который не умеет убеждать. У обоих есть неизбежная область для работы!

Так что да, вы не можете иметь дело с проектами ML и Data Science без минимальной математической базы знаний. Тем не менее, вам не нужно иметь степень по математике, чтобы преуспеть. По моему личному опыту, посвящение по крайней мере 30–45 минут каждый день принесет много пользы, и вы быстрее поймете и изучите продвинутые темы Python для математики и статистики.

Читайте также:  Две цифры удобны для электронного хранения данных

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

Вот 3 шага для изучения математики, необходимой для анализа и машинного обучения:

1 — Линейная алгебра для анализа данных: скаляры, векторы, матрицы и тензоры

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

2 — Математический анализ: производные и градиенты

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

Для быстрого изучения линейной алгебры и математического анализа я бы порекомендовал следующие курсы:

Хан Академия предлагает короткие практические занятия по линейной алгебре и математическому анализу. Они охватывают самые важные темы.

MIT OpenCourseWare предлагает отличные курсы для изучения математики для ML. Все видео лекции и учебные материалы включены.

3 — градиентный спуск: построение простой нейронной сети с нуля

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

Вот несколько хороших прохождений:

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

Короткие учебники, которые также помогут вам шаг за шагом освоить нейронные сети:

Машинное обучение для начинающих: введение в нейронные сети — еще одно хорошее простое объяснение того, как работают нейронные сети и как реализовать их с нуля в Python.

Хорошие новости: вам не нужен полный курс обучения, так как Python и анализ данных не являются синонимами.

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

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

Аналогичное действие происходит при изучении программирования. Не стоит фокусироваться исключительно на синтаксисе. Просто так вы рискуете потерять интерес.

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

Если у вас нет понимания программирования, я рекомендую прочитать статью «Автоматизировать скучные вещи с помощью Python» . Книга предлагает объяснить практическое программирование для начинающих и учить с нуля. Прочитайте главу 6 «Манипулирование строками» и завершите практические задания для этого урока. Этого будет достаточно.

Вот еще несколько полезных ресурсов для изучения:

Codecademy — учит хороший общий синтаксис

Изучите Python трудный путь — блестящая книга, похожая на руководство, которая объясняет как основы, так и более сложные приложения.

Dataquest — этот ресурс учит синтаксису, а также обучает науке о данных

И помните: чем раньше вы начнете работать над реальными проектами, тем раньше вы это освоите. В любом случае, вы всегда можете вернуться к синтаксису, если вам это нужно.

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

Как использовать библиотеки? Вот мои рекомендации:

  1. Откройте Блокнот Jupyter (см. Ниже).
  2. Просмотрите документацию библиотеки примерно через полчаса.
  3. Импортируйте библиотеку в свой блокнот Jupyter.
  4. Следуйте пошаговому руководству, чтобы увидеть библиотеку в действии.
  5. Изучите документацию, чтобы увидеть, на что еще она способна.

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

Jupyter Notebook — это облегченная среда разработки, которая пользуется популярностью среди аналитиков. В большинстве случаев установочный пакет для Python уже включает в себя Jupyter Notebook. Вы можете открыть новый проект через Anaconda Navigator, который входит в пакет Anaconda. Посмотрите это вступительное видео .

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

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

Matplotlib — это гибкая библиотека для создания графиков и визуализации. Это мощный, но несколько тяжелый вес. На этом этапе вы можете пропустить Matplotlib и использовать Seaborn для начала работы (см. Seaborn ниже).

Я могу сказать, что это самый хорошо разработанный пакет ML, который я когда-либо наблюдал. Он реализует широкий спектр алгоритмов машинного обучения и позволяет использовать их в реальных приложениях. Здесь вы можете использовать целый ряд функций, таких как регрессия, кластеризация, выбор модели, предварительная обработка, классификация и многое другое. Так что это абсолютно стоит изучить и использовать. Большим преимуществом здесь является высокая скорость работы. Поэтому неудивительно, что такие ведущие платформы, как Spotify, Booking.com, JPMorgan, используют scikit-learn.

Читайте также:  Идет завершение работы прошлого запуска

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

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

Dataquest — Интерактивно обучает Python и науке о данных. Вы анализируете серию интересных наборов данных, начиная с документов Центрального разведывательного управления и заканчивая статистикой игр Национальной баскетбольной ассоциации. Вы будете разрабатывать тактические алгоритмы, которые включают нейронные сети и деревья решений.

Python для анализа данных — книга, написанная автором многих работ по анализу данных на Python.

Scikit — документация — Основная компьютерная обучающая библиотека на Python.

CS109 — Курсы Гарвардского университета наук о данных.

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

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

Документация Python — еще одно хорошее место для поиска справочного материала

Само собой разумеется, вы также не должны пренебрегать любой возможностью или сотрудничеством, о котором вас просят. Участвуйте во всех возможных мероприятиях, связанных с Python, и находите людей, которые работают над интересными проектами. Изучите новые проекты, которые были сделаны другими людьми, кстати, Github — отличное место для этой цели. Узнайте о новых и следите за обновлениями в теме — все это определенно будет способствовать повышению уровня вашей игры!

Вы, возможно, спросите: «Почему я должен погрузиться в сферу машинного обучения? возможно, уже есть много других хороших специалистов.

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

Согласно закону Мура число транзисторов в интегральной схеме удваивается каждые 24 месяца. Это означает, что с каждым годом производительность наших компьютеров растет, а это означает, что ранее недоступные границы знаний снова «сдвигаются вправо» — есть место для изучения больших данных и алгоритмов машинного обучения!

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

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

Поскольку Python в последние годы приобрел большую популярность в отрасли Data Science, я хотел бы изложить некоторые из его наиболее полезных библиотек для работы с данными.

Все библиотеки с открытым исходным кодом и поэтому мы сравним их по таким показателям как количество коммитов, вкладов и запросов на Github, а также Google Trends. Эти данные можно будет использовать как метрики популярности библиотек.

Основные библиотеки

1. NumPy (коммиты: 16348, контрибьюторы: 540)

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

Математические алгоритмы, реализованные на Python, часто работают гораздо медленнее тех же алгоритмов, реализованных на компилируемых языках (например, Фортран, Си, Java). Библиотека NumPy предоставляет реализации вычислительных алгоритмов (в виде функций и операторов), оптимизированные для работы с многомерными массивами. В результате любой алгоритм, который может быть выражен в виде последовательности операций над массивами (матрицами) и реализованный с использованием NumPy, работает так же быстро, как эквивалентный код, выполняемый в MATLAB.

2. SciPy (коммиты: 17509, контрибьюторы: 510)

SciPy – это открытая библиотека высококачественных научных инструментов для языка программирования Python. SciPy содержит модули для оптимизации, интегрирования, специальных функций, обработки сигналов, обработки изображений, генетических алгоритмов, решения обыкновенных дифференциальных уравнений и других задач, обычно решаемых в науке и при инженерной разработке. Библиотека разрабатывается для той же аудитории, что MATLAB и Scilab. Для визуализации при использовании SciPy часто применяют библиотеку Matplotlib, являющуюся аналогом средств вывода графики MATLAB. В настоящее время SciPy распространяется под лицензией BSD и его разработчики спонсируются Enthought.

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

3. Pandas (коммиты: 15418, контрибьюторы: 848)

Pandas – это библиотека Python,которая является мощным инструментом для анализа данных. Пакет дает возможность строить сводные таблицы, выполнять группировки, предоставляет удобный доступ к табличным данным, а при наличии пакета matplotlib дает возможность рисовать графики на полученных наборах данных. Далее будут показаны основы работы с пакетом, такие как загрузка данных, обращение к полям, фильтрация и построение сводных.

Основные возможности библиотеки:

  • Объект DataFrame для манипулирования индексированными массивами двумерных данных
  • Инструменты для обмена данными между структурами в памяти и файлами различных форматов
  • Встроенные средства совмещения данных и способы обработки отсутствующей информации
  • Переформатирование наборов данных, в том числе создание сводных таблиц
  • Срез данных по значениям индекса, расширенные возможности индексирования, выборка из больших наборов данных
  • Вставка и удаление столбцов данных
  • Возможности группировки позволяют выполнять трёхэтапные операции типа «разделение, изменение, объединение» (англ. split-apply-combine).
  • Слияние и объединение наборов данных
  • Иерархическое индексирование позволяет работать с данными высокой размерности в структурах меньшей размерности
  • Работа с временными рядами: формирование временных периодов и изменение интервалов и т. д.

Статистика Google Trends

История запросов на GitHub

Визуализация

4. Matplotlib (коммиты: 22235, контрибьюторы: 616)

Matplotlib — это библиотека Python для построения качественных двумерных графиков. Matplotlib является гибким, легко конфигурируемым пакетом, который вместе с NumPy, SciPy и IPython предоставляет возможности, подобные MATLAB. В настоящее время пакет работает с несколькими графическими библиотеками, включая wxWindows и PyGTK.

Пакет поддерживает многие виды графиков и диаграмм:

  • Графики (line plot)
  • Диаграммы разброса (scatter plot)
  • Столбчатые диаграммы (bar chart) и гистограммы (histogram)
  • Круговые диаграммы (pie chart)
  • Ствол-лист диаграммы (stem plot)
  • Контурные графики (contour plot)
  • Поля градиентов (quiver)
  • Спектральные диаграммы (spectrogram)
Читайте также:  Вентиляторы для кулера процессора

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

Несложные трёхмерные графики можно строить с помощью набора инструментов (toolkit) mplot3d. Есть и другие наборы инструментов: для картографии, для работы с Excel, утилиты для GTK и другие.

5. Bokeh (коммиты: 16121, контрибьюторы: 243)

Bokeh — это мощная библиотека с открытым исходным кодом, которая позволяет визуализировать данные для веб-приложений, не написав ни строчки на javascript. Изучение библиотек для визуализации вроде d3.js может оказаться полезным, но гораздо легче написать несколько строк кода на Python, чтобы решить задачу.

С Bokeh мы можем создавать поразительно детальные интерактивные визуализации или же более простые вещи, вроде столбчатых диаграмм.

6. Plotly (коммиты: 2593, контрибьюторы: 38)

Plotly – это библиотека, с помощью, которой достаточно легко строить интерактивные графики в Jupyter Notebook’e. В Python есть много библиотек для визуализации, среди них и те, которые позволяют строить интерактивные графики, например, bokeh, pygal и plotly, о котором собственно идет речь.

Plotly позицинируется как online-платформа, где можно создавать и публиковать свои графики. Однако, эту библиотеку можно использовать и просто в Jupyter Notebook’e. К тому же у библиотеки есть offline-mode, который позволяет использовать ее без регистрации и публикации данных и графиков на сервер plotly.

7. SciKit-Learn (коммиты: 22096, контрибьюторы: 898)

Scikit-learn это библиотека для машинного обучения на языке программирования Python с открытым исходным кодом. С помощью нее можно реализовать различныеалгоритмы классификации, регрессии и кластеризации, в том числе алгоритмы SVM,случайного леса, k-ближайших соседей и DBSCAN, которые построены на взаимодействии библиотек NumPyи SciPy с Python.

Достоинствами данной библиотеки являются:

  • Простые и эффективные инструменты для data mining и data analysis;
  • Удобный доступ к необходимым компонентам;
  • Построен на NumPy, SciPy и Matplotlib;
  • Открытый исходный код, лицензия BSD.

Статистика Google Trends

История запросов на GitHub

Machine Learning

8. Theano (коммиты: 26580, контрибьюторы: 313)

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

  • тесная интеграция с NumPy;
  • прозрачное использование GPU;
  • эффективное дифференцирование переменных;
  • быстрая и стабильная оптимизация;
  • динамическая генерация кода на C;
  • расширенные возможности юнит-тестирования и самопроверок;

9. TensorFlow (коммиты: 19862, контрибьюторы: 956)

Проект TensorFlow масштабнее, чем вам может показаться. Тот факт, что это библиотека для глубинного обучения, и его связь с Гуглом помогли проекту TensorFlow привлечь много внимания. Но если забыть про ажиотаж, некоторые его уникальные детали заслуживают более глубокого изучения:

  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

10. Keras (коммиты: 3745, контрибьюторы: 493)

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

Изначально Keras вырос как удобная надстройка над Theano. Отсюда и его греческое имя — κέρας, что значит “рог” по-гречески, что, в свою очередь, является отсылкой к Одиссее Гомера. Хотя, с тех пор утекло много воды, и Keras стал сначала поддерживать Tensorflow, а потом и вовсе стал его частью. Впрочем, наш рассказ будет посвящен не сложной судьбе этого фреймворка, а его возможностям. Если вам интересно, добро пожаловать под кат.

Статистика Google Trends

История запросов на GitHub

Обработка естественного языка

11. NLTK (коммиты: 12629, контрибьюторы: 201)

Библиотека NLTK, или NLTK — пакет библиотек и программ для символьной и статистической обработки естественного языка, написанных на языке программирования Python. Содержит графические представления и примеры данных. Сопровождается обширной документацией, включая книгу с объяснением основных концепций, стоящих за теми задачами обработки естественного языка, которые можно выполнять с помощью данного пакета.

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

12. Gensim (коммиты: 2878, контрибьюторы: 179)

Python-библиотека Gensim — популярный инструмент для автоматической обработки языка, основанный на машинном обучении и используемый как коммерческими компаниями, так и академическими исследователями. В Gensim реализованы алгоритмы дистрибутивной семантики word2vec и doc2vec, он позволяет решать задачи тематического моделирования (topic modeling) и выделять основные темы текста или документа.

Целевая аудитория является обработка естественного языка (НЛП) и IR сообщество. В Gensim реализованы популярные алгоритмы НЛП.

Например, word2vec. Большинство реализаций алгоритмов умеет использовать несколько ядер.

Статистика Google Trends

История запросов на GitHub

Data Mining

13. Scrapy (коммиты: 6409, контрибьюторы: 251)

Scrapy – одна из наиболее популярных и производительных библиотек Python для получения данных с веб-страниц, которая включает в себя большинство общих функциональных возможностей. Это значит, что вам не придётся самостоятельно прописывать многие функции. Scrapy позволяет быстро и без труда создать «веб-паука».

Пакет Scrapy (как и большинство других пакетов Python) можно найти в PyPI (Python Package Index, также известен как pip) – это поддерживаемый сообществом репозиторий для всех вышедших пакетов Python.

Изучайте веб разработку, с помощью онлайн уроков, каждый понедельник и среду в 20:00, на канале: Быстрый старт в веб-разработке (на странице проекта доступны записи всех уроков).

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *