Малоизвестные библиотеки Python для анализа данных, которые сделают вашу жизнь проще |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2024-04-20 14:47 Автор статьи: Виктория Ляликова Привет Хабр! В этой статье мы рассмотрим некоторые полезные библиотеки Python для задач обработки данных, с которыми, возможно, вы еще не знакомы. Хотя для задач машинного обучения на ум приходят такие библиотеки, как pandas, numpy, scikit-learn, keras, tensorflow, matplotlib и т.д., но всегда полезно знать о других предложениях Python, особенно если это поможет улучшить ваши проекты. 1. Sketch Для тех, кто использует библиотеку pandas модуль Sketch может стать хорошим помощником в написании кода с использованием искусственного интеллекта. Sketch использует алгоритмы машинного обучения для понимания контекста пользовательских данных и предоставляет соответствующие предложения по коду. Также Sketch может автоматизировать повторяющиеся задачи, находить ошибки и предлагать исправления, анализировать кодовую базу и предлагать предложения по оптимизации. Это все может значительно сократить время и усилия, необходимые для выполнения задач, связанных с данными. Библиотека имеет следующие методы:
Установка или Теперь импортируем Sketch и Pandas, поработаем с библиотекой: Возьмем набор данных, который содержит сводную статистику с 2015 по 2020 год по мировому счастью и восприятию коррупции. В наборе 792 записи, которые имеют такие характеристики как: страна, индекс счастья (оценка от 0 до 10), ВВП на душу населения, семья, здоровье, щедрость, доверие правительству, остаточная дистопия, континент, год, социальная поддержка, индекс коррупции. Загружаем набор данных .sketch.ask Начнем с простых вопросов. Можно попросить описать датасет: Результат: Узнаем какие столбцы имеют категориальный тип данных: Результат: Узнаем основные характеристики набора данных: Результат: Или, например, узнаем какие столбцы наиболее значимы в датафрейме: Результат: Узнаем какие алгоритмы можно применить для предсказания уровня счастья: Результат: А теперь попробуем сравнить вопросы на английском и русском языке. Например узнаем о том, какая страна имеет хорошую социальную поддержку. Спросим на английском языке. Результат: А теперь на русском Результат Видим, что задавая один и тот же вопрос на разных языках, мы получаем разные ответы. Посмотрим теперь на данные по Финляндии: Видим расхождения в полученных значениях. Пока не совсем понятно откуда у Норвегии уровень социальной поддержки 1.644. Видимо sketch вычисляет уровень Иногда модель вместо ответа может просто дать рекомендации: Результат: Или узнаем как можно визуализировать данные: Результат: Наверное все-таки функцию ask лучше использовать для получения советов, а не для получения численных значений. .sketch.howto Узнаем как получить статистическую сводку по нашим данным: Результат: Попробуем узнать как нормализовать данные: Результат: Только прежде, чем пользоваться советом по нормализации данных, необходимо убедиться, что все столбцы имеют численный формат, иначе будут ошибки. Поэтому сначала лучше узнать, какие столбцы можно нормализовать без предварительной обработки. Можно узнать как построить гистограмму уровня счастья Результат: Что интересно, Sketch даже сам указывает какие библиотеки необходимо подключить, чтобы получить желаемый результат Узнаем как построить диаграмму рассеяния: Результат: Sketch предлагает построить диаграмму рассеяния зависимости уровня счастья от ввп на душу населения Попросим построить модель линейной регрессии для предсказания уровня счастья: Результат: Да, алгоритм построения модели предложен, даже удален целевой столбец из датафрейма. Не хватает только импортирования модуля для разделения данных на выборку для обучения и тестовую. И так же не учитывается, что не все данные имеют числовые признаки. Но с другой стороны, мы спросили, модуль предложил, а дальше это наша проблема как мы будем применять этот алгоритм. Можно, наверное, более аккуратно и четко формулировать вопросы, чтобы получать правильные ответы. В целом ощущения от работы с библиотекой положительные. Да, есть нюансы, но… Просто, чтобы можно было извлечь пользу от использования библиотеки надо понимать принципы работы и предназначение различных методов, то есть необходимы знания по работе с данными и алгоритмами. Sketch может помочь неопытным разработчика, которые только начинают свой путь в анализе данных или машинном обучении и придет на помощь в изучении новых методов и практик. При этом для опытных разработчиков библиотека тоже может стать полезным инструментом, который поможет сэкономить драгоценное время и сосредоточиться на более сложных проблемах. Наверное самое главное помнить, что ты работаешь с искусственным интеллектом и полагаться надо на себя, тщательно обдумывая предложенные варианты решений. И главное, чтобы получить желаемый ответ, надо формулировать запрос на языке машины. И не забывать, что язык библиотеки - английский. 2. MLxtend БиблиотекуMLxtend можно использовать как основной инструмент для задач машинного обучения или в качестве дополнения и вспомогательного инструмента к другим более известным библиотекам по анализу данных. MLxtend включает такие модули как классификатор, кластеризатор, методы оценки, извлечение признаков,предварительная обработка, методы визуализации и т.д Модуль классификации MLxtend предоставляет различные алгоритмы классификации и регрессии, включая многослойные персептроны, классификаторы, стекирования, логистическую регрессию и др. Модуль рисования mlxtend предоставляет различные инструменты рисования на основе машинного обучения, такие как диаграммы разброса классификации, тепловые карты, диаграммы границ решений, диаграммы матрицы путаницы с несколькими классами и так далее. Модуль предварительной обработки Установка: или Возьмем набор данных о вине, который содержит 13 атрибутов алкоголя для трех видов вина. Здесь имеем дело с набором данных многоклассовой классификации. Начнем с более интересного примера, такого как, построение границы решения классификатора с помощью метода Визуализация работает только с двумя признаками одновременно, поэтому создадим массив со свойствами ‘Flavanoids’ и ‘Color’ Создаем классификатор Байеса, подгоняем данные и получаем визуализацию границ решений: Еще одна интересная функция - это круг корреляции анализа главных компонент (PCA). Анализ главных компонент или PCA - обычно используют для уменьшения размерности путем использования каждой точки данных только для первых нескольких основных компонентов (в большинстве случаев первого и второго измерений) для получения данных меньшей размерности с сохранением как можно большего разнообразия данных. Как раз круг корреляции PCA покажет насколько исходные переменные коррелируют с первыми двумя главными компонентами. Помним, что в PCA нормализация очень важна, потому что PCA проецирует исходные данные в направлениях, которые максимизируют дисперсию Используем метод Можно рассмотреть еще такую функцию как разложение дисперсии смещения. Компромисс смещения и дисперсии поможет показать производительность модели. В обучении с учителем цель часто состоит в том, чтобы минимизировать как ошибку смещения (чтобы предотвратить недостаточную подгонку), так и дисперсию (чтобы предотвратить переобучение), чтобы модель могла обобщать за пределами обучающей выборки. Этот процесс известен как компромисс между смещением и дисперсией. В разложении на самом деле есть и третья компонента - случайный шум в данных. Поэтому мы можем использовать разложение смещения-дисперсии, чтобы разложить ошибку обобщения на сумму 1) смещения, 2) дисперсии и 3) неснижаемой ошибки . Декомпозиция смещения-дисперсии может быть реализована с помощью метода Результат: Мне кажется, что в библиотеке MLxtend можно найти достаточно много полезных функций и методов по работе с данными. 3. SciencePlots SciencePlots - это библиотека, которая предоставляет стили для библиотеки Matplotlib, чтобы получить профессиональные графики для презентаций, исследовательских работ и т.д. Установка: или Со списком доступных стилей можно ознакомиться следующим образом: Результат Попробуем построить несколько графиков, используя комбинацию стилей ‘fivethirtyeight’ и ‘dark_background’. Или построим гистограмму индекса массы тела человека, предварительно взяв данные из датафрейма. Если необходимы профессиональные графики с использованием Matplotlib и не хочется тратить слишком много энергии, чтобы настроить стили рисования, SciencePlots, как мне кажется, является очень хорошим выбором. 4. Ftfy Библиотека ftfy исправляет Unicode, который был поврежден различными способами. Функции, выполняемые библиотекой:
Установка:: или Самая интересная поломка, которую сможет исправить ftfy - это когда кто-то закодировал Unicode одним стандартом, а декодировал его другим. Это часто проявляется в виде символов, которые превращаются в бессмысленные последовательности (так называемые «моджибаке»). Попробуем это исправить: Результат: 5. Pgeocode Модуль геокодирования pgeocode Python создан для обработки географических данных и помогает объединять и сопоставлять различные данные. С помощью модуля pgeocode можно получать и предоставлять информацию, связанную с регионом или областью, используя информацию о почтовом индексе. Также поддерживаются расстояния между двумя почтовыми индексами. База данных включает почтовые индексы 83 стран, но к сожалению, поддерживаются запросы только внутри одной страны. Установка: или Импортируем модуль: Посмотрим какие данные выдаст нам модуль при запросе страны случайного почтового кода: Результат: Или можно получить геоинформацию сразу для нескольких почтовых индексов: Рассмотрим еще одну интересную функцию, которую предоставляет модуль геокодирования, - это возможность найти георасстояние между двумя почтовыми индексами. Это можно сделать с помощью метода Яндекс карты утверждают, что такое расстояние равно приблизительно 520 километров, то есть небольшая погрешность в измерениях есть. Или можно вычислить расстояние сразу между несколькими почтовыми индексами Результат: 6. Pendulum Модуль Pendulum является заменой встроенного модуля datetime. Модуль поддерживает часовые пояса и предоставляет полезные методы для форматирования, синтаксического анализа и манипуляций с датой и временем, такие как добавление интервалов, вычитание дат и преобразование между часовыми поясами. Установка или Импортируем модуль: Создать экземпляр даты и времени можно, используя различные методы, такие как Результат: Можно использовать функции Метод Результат: Метод Результат: Pendulum предлагает методы для преобразования даты и времени в строку стандартного формата, а также имеет функцию Результат: Рассмотрим еще метод Результат: Pendulum тоже интересная библиотека, на которую стоит обратить внимание. Библиотека упрощает проблему сложных манипуляций с датами, связанных с часовыми поясами, которые неправильно обрабатываются в собственных экземплярах datetime. 7. Rembg Библиотека rembg - это ещё одна полезная библиотека, которая легко поможет удалить фон с изображений. Она использует модели глубокого обучения, предварительно обученные на больших наборах данных. Часто в задачах компьютерного зрения удаление фона изображения с целью вырезания избыточной информации позволяет повысить производительность модели. Однако это может быть довольно утомительно, но использование такой библиотеки как rembg позволит сделать всего за пару строк кода. Основные возможности библиотеки:
Установка: Попробуем работу библиотеки на некоторых изображениях. Стоит обратить внимание, что при первом запуске библиотеки сначала загружается модель сети, поэтому это может занять некоторое время, зато после завершения, удаление фона не будет занимать много времени. Результат: Простое использование библиотеки rembg делают ее полезным инструментом для различных задач. Надеюсь, что какие-то из этих библиотек привлекли ваше внимание в качестве дополнительного инструмента к основным библиотекам машинного обучения. Больше про машинное обучение и Data Science коллеги из OTUS рассказывают в рамках онлайн-курсов, подробнее о которых вы можете узнать в данном каталоге. Источник: habr.com Комментарии: |
|