Data Science — 8 главных библиотек для Python программиста |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-05-31 15:32 Data science, или наука о данных, набирает все большую популярность среди самых востребованных профессий современного рынка. Специалист в этой области должен обладать глубокими разносторонними знаниями, как теоретическими, так и практическими. К услугам начинающих аналитиков данных предлагаются инструменты автоматизированного характера с уже заложенным функционалом, как, например, мощное программное обеспечение Weka. Однако, многие data scientist-ы, предпочитая широту и манёвренность действий, создают собственные инструменты и пайплайны. Язык программирования Python как нельзя лучше подходит для этих целей. Возможности Python позволяют написать программу для задач машинного обучения как с чистого листа, так и с использованием различных библиотек и инструментов. О последних мы и поговорим. Обработка больших данных с помощью библиотек Pandas, CSV и OpenPyXL Чаще всего в задачах для бизнеса исходные данные предоставляются в формате .xlsx или .xlsm, однако многие предпочитают формат .csv (файлы, в которых каждая строка представлена полями, разделенными каким-либо знаком — обычно запятой или точкой с запятой). Библиотека Pandas — один из самых популярных инструментов Python для работы с данными, она поддерживает различные текстовые, бинарные и sql форматы файлов, в том числе Модуль CSV содержит утилиты для работы исключительно с csv-файлами. Однако, детали нотации создания csv-файлов в разных программах могут различаться (как, например, в Excel), и модуль CSV позволяет корректно читать большинство различных реализаций .csv без необходимости учитывать, какой программой и как был сгенерирован файл. OpenPyXL — это библиотека для работы исключительно с Excel-файлами, такими как .xlsx, .xlsm, .xltx, .xltm для версий Excel от 2010 года и новее. OpenPyXL содержит инструменты для чтения, записи и обработки данных указанных форматов, а также для построения графиков. Разберем на примерах базовые возможности этих инструментов. Мы будем использовать данные с портала Kaggle об участниках Олимпийских игр за 120 лет. Считываем данные Python
или Python
Получим таблицу такого вида: Python
Обращаться к ячейками можно по индексу: Python
Python
Или по названию столбца: Python
Несколько строк в Pandas можно выделить через двоеточие: Python
Теперь откроем файлы с помощью библиотек CSV и OpenPyXL: Python
Однако, вывод при таком считывании придется делать обычным для Python способом, либо, например, подключать структуру data frame из Pandas. В нашем случае получаем длинный текст такого вида: Python
Python
Переменная open_data содержит объект класса рабочей книги excel со всеми существующими листами. Метод Python
Результат: Python
Python
Посмотрим значение ячейки на пересечении 2-ого столбца и 5-ой строки: Python
Результат: Python
Возьмем диапазон ячеек данного листа и отобразим значения: Python
Запишем извлечённые данные в файлы Pandas Python
CVS Python
OpenPyXL Python
Matplotlib и Seaborn — Визуализация данных Библиотеку Matplotlib написал Джон Хантер для создания различных графиков и работы с изображениями. Seaborn — как бы «надстройка» над Matplotlib, которая при всем функционале библиотеки Matplotlib предоставляет лучшую графику и большее количество возможностей её настройки. Рассмотрим применение этих библиотек на выборке (8000 образцов) из датасета об участниках олимпиады. Построим гистограмму распределения возрастов участников олимпиады: Python
И сделаем это же с помощью библиотеки Seaborn: Python
Как видно из этого примера, код при использовании библиотеки Seaborn выглядит намного короче и лаконичнее, к тому же distplot содержит много параметров по умолчанию, один из которых — построение кривой распределения (синяя линия на последнем графике), в то время как в Matplotlib её необходимо задавать отдельно (что требует ещё пары строчек кода и импорта дополнительного модуля из библиотеки). С другой стороны, Matplotlib дает большую манёвренность в плане стиля и надстроек над базовым графиком, поэтому возможности Matplotlib часто используются в совокупности с функциями модуля Seaborn. Python
С помощью средств Matplotlib мы сделали график заданного размера (figsize), повернули значение возраста на 45 градусов и сохранили картинку на компьютер. Машинное обучение в SciKit-Learn SciKit-Learn — это свободно распространяемая библиотека для работы с методами машинного обучения на Python. Она содержит реализации методов классификации, регрессии и кластеризации, а также нейронных сетей. SciKit предоставляет широкий набор инструментов для решения проблемы размерности данных, сравнения моделей машинного обучения и их производительности и для извлечения важных признаков. Рассмотрим реализацию линейной регрессии, например, для проверки гипотезы о том, что вес спортсмена и его возраст взаимосвязаны. Python
После импортирования необходимых библиотек избавимся от отсутствующих значений типа NA самым простым (но не самым лучшим) способом: удалим все строки, в которых в каком-либо столбце присутствуют NA: Python
Зададим переменные для модели, зависимость которых мы собираемся исследовать: Python
Построим модель: Python
И подсчитаем коэффициент линейной регрессии, чтобы оценить эффективность модели: Python
Результат: Python
Коэффициент детерминации (или R2) очень низкий (для приемлемой модели он должен быть не менее Для наглядности мы можем предсказать значение веса по возрасту, но как мы только что выяснили, доверять этой модели не стоит. Python
Генераторы и Lambda-функции — «фишки» языка Python Запутанные на первый взгляд, два этих инструмента Python полезны в любой из областей программирования, в том числе и в data science. Новички изучают их на курсах программирования на Python, например, на «Курсе по Python для веб-разработки полного цикла» в Skillfactory, но недооценивают лаконичность и эффективность этих методов. Каждый, кто хоть раз пробовал запрограммировать последовательность действий, знает, что для этого нужно использовать цикл for или while. Например, привычная реализация заполнения списка символами из строки на Python будет выглядеть так: Python
Результат: Python
Генераторы позволяют записать данную операцию в одну строчку: Python
Результат: Python
Для более сложных примеров генераторы бывают весьма полезны и удобны. Lambda-функции применяются с той же целью — сократить код — для функций. В случае, если функция содержит одну операцию или одно общее выражение, lambda-конструкция позволяет создать функцию без создания функции. Выглядит запутанно, поэтому разберём простейший пример. Допустим, мы хотим посчитать количество элементов списка: Python
Результат: Python
Теперь сделаем то же самое с помощью lambda: Python
Результат: Python
Мы рассмотрели только 8 средств языка Python: и профессиональные библиотеки, и инструменты, которые пригодятся любому программисту для работы с данными. Для знакомства с широтой возможностей языка Python вы можете прослушать любой из курсов SkillFactory и углубиться в интересное для вас направление, если что-то покажется особенно интересным. Источник: python-scripts.com Комментарии: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||