Наука о данных

Автоматизация науки о данных с 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 не занимается текстовыми данными, данными временных рядов, моделями нейронных сетей. Изображение, аудио и видео данные полностью выходят за рамки.

Будущие цели (на момент написания этой статьи)

  • Готовые визуализации
  • Диагностика модели
  • Эффективный поиск модели
  • Определение типа
  • Автоматическая предварительная обработка
  • Портфели хорошо работающих трубопроводов