Наука о данных
Автоматизация науки о данных с dabl
Действительно ли нужны специалисты по человеческим данным?
Dabl расшифровывается как Базовая библиотека анализа данных. Идея dabl состоит в том, чтобы сделать контролируемое обучение автоматизированным для сокращения шаблонов для общих задач. Это означает, что при построении любой прогнозной модели данные должны быть очищены, проанализированы и пропущены через множество моделей с различной настройкой параметров, чтобы получить максимальную точность, которая требует нескольких строк кода и рабочего времени, все эти задачи будут обрабатываться dabl с очень мало строк кода, экономя время и деньги тех, кто обрабатывает тонны данных каждый день.
Основная идея, лежащая в основе разработки библиотеки, состоит в том, чтобы позволить специалистам по данным тратить больше времени на обдумывание формулировки проблемы и создание большего количества настраиваемого анализа вместо того, чтобы каждый раз повторять одни и те же повторяющиеся традиционные шаги. dabl черпает вдохновение в scikit-learn и auto-sklearn. Давайте погрузимся.
Установка и импорт
Нам просто нужно импортировать одну библиотеку, в которой есть все необходимые задачи.
!pip install dabl import dabl
Получение данных
В dabl есть несколько DataFrame, которые можно загружать напрямую и использовать. Мы также можем использовать обычный стиль Pandas для чтения любых внешних данных. Мы будем работать над DataFrame, содержащим набор данных переписи взрослого населения.
df = dabl.datasets.load_adult() df.head()
Очистка данных
Все мы знаем, что самый первый шаг - это очистка данных. dabl пытается определить типы данных в наборе данных и применить соответствующие преобразования. Цель dabl - очистить данные в достаточной степени для их визуализации и моделирования. При необходимости мы также можем выполнить индивидуальную очистку.
dabl.clean
(X, type_hints = None, return_types = False, target_col = None, verbose = 0)
X: DataFrame
type_hinta: если обнаружение семантических типов (непрерывный, категориальный, порядковый, текстовый и т. д.) не удается
return_type: возвращать ли выведенные типы
target_colstring: Целевые столбцы никогда не удаляются
data_clean = dabl.clean(df, type_hints={"capital-gain": "continuous"}) data_clean
Описание набора данных
Традиционно мы применяем .info () к набору данных, чтобы получить начальное представление, дополнительно мы можем использовать dabl.data_types (), который предсказывает тип данных каждого столбца.
dabl.detect_types
(X, type_hints = None, max_int_cardinality = 'auto', dirty_float_threshold = 0.9, near_constant_threshold = 0,95, target_col = None, verbose = 0)
Подробности смотрите в документации.
dabl.detect_types(df)
Исследовательский анализ данных
Dabl.plot () даст вам быстрое представление о данных. Однако dabl не гарантирует предоставление всех интересных аспектов данных. Он дает очень подробные сведения, такие как важные функции, их взаимодействие и уровень сложности проблемы. Для конкретного анализа необходимо снова выполнить традиционное пользовательское построение графиков.
dabl.plot
(X, y = None, target_col = None, type_hints = None, scatter_alpha = 'auto', scatter_size = 'auto', verbose = 10, plot_pairwise = True, ** kwargs)
dabl.plot(df, target_col="income")
Поразительно, не правда ли, мы получаем довольно хорошее понимание всего лишь с половиной строки кода.
Построение модели
SimpleClassifier пытается найти наиболее подходящую модель. Он применяет несколько базовых показателей к данным с подвыборкой. Поскольку dabl вдохновлен scikit-learn, он позволяет нам указывать данные, которые будут соответствовать стилю scikit-learn. Это можно сделать двумя способами.
model = dabl.SimpleClassifier(random_state=0) X = data_clean.drop("income", axis=1) y = data_clean.income model.fit(X, y)
or
model = dabl.SimpleClassifier(random_state=0).fit(data_clean, target_col="income")
выход:
Как мы видим, он применил несколько моделей с различной настройкой параметров, чтобы найти наиболее подходящую модель и показатель точности. SimpleClassifier также выполняет предварительную обработку, такую как вменение пропущенных значений и быстрое кодирование. Мы можем проверить модель с помощью dabl.explain ()
dabl.explain(model)
Действительно ли нужны специалисты по человеческим данным?
dabl действительно интересен и автоматизирован, но он все еще находится в стадии разработки с очень минимальными функциями и функциями. Предлагаю вам просмотреть список API, предоставленный dabl. Лично я считаю, что развертывание полнофункциональной и многофункциональной версии по-прежнему занимает много времени, и когда это произойдет, отрасль должна доверять ей и принять ее. Наука о данных - это такая область, каждый день в отрасли генерируется уникальный набор данных и постановка проблемы / требования, поэтому в какой-то момент необходимо вмешательство человека. Все, что я пытаюсь сказать, это то, что будущее за автоматизированной наукой о данных, но не в ближайшее время, поэтому вы можете сосредоточиться на повышении квалификации или изучении науки о данных. Помните, всегда повышайте свои навыки сами, воспринимайте эту статью как тревожный сигнал каждый раз, когда вы думаете, что у вас достаточно знаний, и вы можете перестать осваивать новые навыки.
Ограничения dabl
Прямо сейчас (на момент написания статьи) dabl не занимается текстовыми данными, данными временных рядов, моделями нейронных сетей. Изображение, аудио и видео данные полностью выходят за рамки.
Будущие цели (на момент написания этой статьи)
- Готовые визуализации
- Диагностика модели
- Эффективный поиск модели
- Определение типа
- Автоматическая предварительная обработка
- Портфели хорошо работающих трубопроводов