Согласно опросу 80 специалистов по данным, проведенному CrowdFlower, специалисты по данным тратят 60% своего времени на очистку и организацию данных по сравнению с другими задачами, такими как сбор данных, обучение моделей, уточнение алгоритмов или развертывание моделей.

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

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

Итак, давайте начнем.

Что такое Mito и какие проблемы он решает?

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

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

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

  • Исследуйте данные
  • Создание сводных таблиц
  • Применение формул электронной таблицы
  • Создайте исследовательские графики
  • Фильтровать столбцы

Полезные функции от Mito

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

1. Импорт данных в Mito

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

Примечание. Mito автоматически сгенерирует соответствующий код Python для импорта ваших данных во фрейм данных.

2. Создайте сводные таблицы

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

3. Показать сводную статистику

Вы можете быстро понять данные столбца, проверив его статистику. Это покажет такие показатели, как количество, среднее значение, стандартное отклонение, минимум, максимум и другие статистические данные, используя функцию .describe pandas.

4. Создайте графики

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

  • Разброс
  • Линия
  • Бар
  • Гистограмма
  • Коробка
  • Скрипка
  • Полоска
  • ECDF (эмпирическая кумулятивная функция распределения)
  • Тепловая карта плотности
  • Контур плотности

5. Формат столбцов из электронной таблицы

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

Как установить Мито

Mito требует, чтобы у вас был Python 3.6 или выше. Вы можете запустить следующую команду, чтобы увидеть свою версию Python.

python —- version

Выполните следующую команду в своем терминале, чтобы загрузить установщик Mito.

python -m pip install mitoinstaller

Затем запустите установщик Mito, чтобы установить его на свой компьютер.

python -m mitoinstaller install

Примечание. Процесс установки и настройки Mito на вашем компьютере может занять некоторое время.

Наконец, вы можете запустить лабораторию Jupyter. Если на вашем компьютере его нет, вы можете следовать инструкциям в Документации Jupyterlab, чтобы установить Jupyter lab.

Чтобы проверить, все ли установлено успешно, запустите следующий код Python в новом блокноте, чтобы инициализировать Mitosheet.

# Run this cell to render a Mitosheet
import mitosheet
mitosheet.sheet()

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

Как выполнить EDA с помощью Mito

В этом разделе вы собираетесь изучить и проанализировать набор данных о статусе банковского кредита с помощью Mito.

Набор данных можно скачать с kaggle.com.

Загрузите набор данных

Чтобы добавить свой набор данных в Mitosheet, просто нажмите кнопку импорта и выберите загруженный набор данных о статусе банковского кредита.

Как видите, после импорта набора данных Mito автоматически генерирует код Python в ячейке под Mitosheet. Каждое действие, которое вы выполняете на листе Mito, будет выражено соответствующим кодом Python ниже. Mitosheet показывает, что наш набор данных имеет 19 столбцов и 100 514 строк данных.

График графика

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

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

График показывает, что более 77 тысяч клиентов полностью выплатили свой кредит, а около 22 тысяч клиентов списали свои кредиты.

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

Показать сводную статистику

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

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

Создание сводных таблиц

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

В области задач вы можете

  1. Выберите строки, столбцы и столбец значений для сводной таблицы.
  2. Выберите функцию агрегирования для столбца значений. Вы можете выбрать различные параметры, такие как: среднее, количество, сумма, медиана, максимум, минимум и стандартное отклонение.

Вы также можете просмотреть сгенерированный код Python для созданной сводной таблицы.

# Pivoted Bank_Loan__Status_Dataset into df2
unused_columns = Bank_Loan__Status_Dataset.columns.difference(set([‘Term’]).union(set([‘Loan Status’])).union(set({‘Loan Status’})))
tmp_df = Bank_Loan__Status_Dataset.drop(unused_columns, axis=1)
pivot_table = tmp_df.pivot_table(
 index=[‘Term’],
 columns=[‘Loan Status’],
 values=[‘Loan Status’],
 aggfunc={‘Loan Status’: [‘count’]}
)
pivot_table.set_axis([flatten_column_header(col) for col in pivot_table.keys()], axis=1, inplace=True)
Bank_Loan__Status_Dataset_pivot_1 = pivot_table.reset_index()

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

Удалить столбцы

Изучив и проанализировав набор данных, вы также можете использовать Mito для удаления столбцов, которые не имеют отношения к цели вашего проекта. Например, в этом наборе банковских данных вы можете удалить столбцы Loan ID и Customer ID, так как они не требуются при создании модели машинного обучения.

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

Вышеприведенный Mitosheet показывает, что количество столбцов было уменьшено до 17 столбцов после удаления двух столбцов, а именно идентификатора кредита и идентификатора клиента.

Подготовьте данные для обучения модели ML

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

Обработка пропущенных значений

Если в наборе данных есть пропущенные значения, вы можете проверить количество пропущенных значений, используя следующий код:

#check missing values 
Bank_Loan__Status_Dataset.isnull().sum()

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

  1. Заполнение отсутствующих значений в категориальных столбцах с использованием наиболее часто встречающегося значения в каждом категориальном столбце.
  2. Заполнение пропущенных значений в числовом столбце с использованием среднего значения каждого числового столбца.
# fill missing values for categorical features
Bank_Loan__Status_Dataset[“Loan Status”].fillna(“Fully Paid”, inplace=True)
Bank_Loan__Status_Dataset[“Term”].fillna(“Short Term”, inplace=True)
Bank_Loan__Status_Dataset[“Years in current job”].fillna(“10+ years”,
 inplace=True)
Bank_Loan__Status_Dataset[“Home Ownership”].fillna(“Home Mortgage”,
 inplace=True)
Bank_Loan__Status_Dataset[“Purpose”].fillna(“Debt Consolidation”, inplace=True)
# fill missing values for integers features
intergers_columns = list(
 Bank_Loan__Status_Dataset.select_dtypes(include=[‘floating’]).columns)
for column in intergers_columns:
 Bank_Loan__Status_Dataset[column].fillna(
 Bank_Loan__Status_Dataset[column].mean(), inplace=True)

Предварительно обработать набор данных

Категориальные столбцы должны быть преобразованы в числовые значения перед обучением модели. Вы будете использовать LabelEncoder из sklearn для предварительной обработки двух двоичных категориальных столбцов, называемых «Статус кредита» и «Срок».

# preprocess binary categorical columns
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
binary_columns = [“Loan Status”, “Term”]
for column in binary_columns:
 Bank_Loan__Status_Dataset[column] = le.fit_transform(
 Bank_Loan__Status_Dataset[column])

Несколько категориальных столбцов можно предварительно обработать с помощью функции pd.get_dummies от pandas. Здесь вы преобразуете следующие несколько категориальных столбцов в числовые значения.

  • Годы на текущей работе
  • Домовладение
  • Цель
# preprocess multiple categorical columns 
Bank_Loan__Status_Dataset = pd.get_dummies(
 Bank_Loan__Status_Dataset,
 columns=[“Years in current job”, “Home Ownership”, “Purpose”])

Затем вы разделяете набор данных на функции и цели.

# split data into target and features 
target = Bank_Loan__Status_Dataset[“Loan Status”].values
features = Bank_Loan__Status_Dataset.drop(“Loan Status”,axis=1)

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

# scaling the dataset 
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
features = scaler.fit_transform(features)

Как обучить модель машинного обучения с помощью AIbro

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

Что такое Айбро?

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

Aibro поддерживает облачные платформы AWS и планирует поддерживать больше облачных платформ, таких как Microsoft Azure, Google Cloud, Alibaba Cloud и IBM Cloud. Он также будет поддерживать большинство популярных на рынке сред машинного обучения, таких как TensorFlow, Pytorch, Scikit-learn и XGboost.

Примечание. В настоящее время поддерживается только обучение модели на основе Keras. В будущем он будет поддерживать другие фреймворки, такие как Pytorch и Scikit.

Еще одним преимуществом использования Aibro является возможность снизить затраты на облако на 85 % с помощью эксклюзивной стратегии экономии, основанной на машинном обучении. После понимания Aibro и его услуг давайте обучим модель машинного обучения на основе набора данных о статусе банковского кредита, который вы проанализировали с помощью Mito.

Установить Айбро

Выполните следующую команду в своем терминале, чтобы установить AIbro на свой компьютер.

pip install aibro

Шаги для обучения модели в облаке

Следующий шаг поможет вам обучить модель машинного обучения в облаке с помощью Aibro.

Шаг 1: Разделите подготовленные данные

Первый шаг — разделить данные на наборы для обучения и проверки с помощью метода train_test_split из библиотеки scikit-learn.

# split data into train and validation set
from sklearn.model_selection import train_test_split
train_X, validation_X,train_Y, validation_Y = train_test_split(
 features, target, test_size=0.3, stratify=target, random_state=42)

Шаг 2. Создайте модель классификации TensorFlow.

Второй шаг — создать простую модель TensorFlow для классификации кредитного статуса клиента.

import tensorflow as tf
tf.random.set_seed(42)
inputs = tf.keras.Input(shape=(45,))
x =tf.keras.layers.Dense(256, activation=’relu’)(inputs)
x =tf.keras.layers.Dense(128, activation=’relu’)(x)
output = tf.keras.layers.Dense(1, activation=’sigmoid’)(x)
model = tf.keras.Model(inputs, output)
model.compile(
 loss=tf.keras.losses.binary_crossentropy,
 optimizer=tf.keras.optimizers.Adam(lr=0.03),
 metrics=[
   tf.keras.metrics.BinaryAccuracy(name=’accuracy’),
   tf.keras.metrics.Precision(name=’precision’),
   tf.keras.metrics.Recall(name=’recall’)
 ]
)

Шаг 3. Выберите облачную машину

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

Метод available_machine покажет список доступных облачных машин с другими важными деталями, такими как:

  • Его доступность (вероятность того, что указанный тип спотового инстанса будет успешно запущен)
  • Его емкость (относится к количеству запрашиваемых экземпляров)
  • Тип графического процессора
  • Тип процессора
  • Расходы
# select cloud machine
from aibro.training import available_machines
available_machines()

Пример вывода:

Шаг 4. Запуск учебного задания

Вам нужно использовать метод online_fit из объекта aibro.training, чтобы инициализировать облачную машину и начать обучение вашей модели. .

Метод online_fit получает следующие параметры для начала обучения модели:

  • Модель TensorFlow
  • Наборы обучающих данных (train_X и train_Y)
  • Наборы данных проверки (validation_X и validation_Y)
  • Облачный machine_id, который вы выбрали
  • Количество эпох
  • Простое описание, которое поможет вам определить работу
#train the model on the cloud machine
from aibro.training import Training
job_id, trained_model, history = Training.online_fit(
 model=model,
 train_X=train_X,
 train_Y=train_Y,
 validation_data=(validation_X, validation_Y),
 machine_ids=[“g4dn.4xlarge.od”],
 epochs=10,
 description=’training binary classification model’
 )

После того, как учебная работа началась, она будет выполнять 7 этапов для выполнения задачи.

1. [ЗАПУСК]
На первом этапе необходимо отправить запрос на облачную платформу для открытия экземпляра.

Already authenticated!
Please open https://aipaca.ai/training_jobs to track job status.
[LAUNCHING]: Starting training job: train_7260f2ff-430b-49c7–8b2f-8805a27f440f
[LAUNCHING]: Requesting g4dn.4xlarge.od to be ready…
[LAUNCHING]: g4dn.4xlarge.od server successfully requested, launching and building…
[LAUNCHING]: Tensorflow needs around 5 mins to gear up env on new machines (Any thought to reduce it? Contact us!)[LAUNCHING]:
[ Getting server ready in around: 6m 30s ]
Your g4dn.4xlarge.od is now ready 🎉

2. [ОТПРАВКА]
Второй этап — передача модели и данных экземпляру.

[SENDING]: Serializing your model…
[SENDING]: Serializing your data…
[SENDING]: Sending model and data to the server to start training
[SENDING]: |>>>>>>>>> | 97.39 % 7.88 / 8.09 MiB [avg: 4.78MiB/s][SENDING]: |>>>>>>>>>>| 100.00 % 8.09 / 8.09 MiB [avg: 4.72MiB/s]
2022–03–23 10:09:03.237618: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set
[SENDING]: Received model and data

3. [ЗЕРКАЛЬНОЕ ЗЕРКАЛО]
Третий этап — клонирование локальной среды глубокого обучения в облако.

[TRAINING]: GPU Devices: [PhysicalDevice(name=’/physical_device:GPU:0', device_type=’GPU’)]
2022–03–23 10:09:03.793867: I tensorflow/core/profiler/lib/profiler_session.cc:136] Profiler session initializing.
2022–03–23 10:09:03.793933: I tensorflow/core/profiler/lib/profiler_session.cc:155] Profiler session started.2022–03–23 10:09:03.798531: I tensorflow/core/profiler/lib/profiler_session.cc:172] Profiler session tear down.
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022–03–23 10:09:04.945947: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set
2022–03–23 10:09:06.102062: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)
2022–03–23 10:09:06.127457: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2500000000 Hz

4. [ОБУЧЕНИЕ]:
На этом этапе начнется обучение модели.

[TRAINING]: Loading the model
[TRAINING]: Loading the data
[TRAINING]: Finished loading the data
[TRAINING]: Open 107.23.193.207:8008 to view tensorboard[TRAINING]: Start model fit
[TRAINING]: Epoch 1/10
2022–03–23 10:09:07.895968: I tensorflow/core/profiler/lib/profiler_session.cc:155] Profiler session started.
2022–03–23 10:09:07.898925: I tensorflow/core/profiler/lib/profiler_session.cc:71] Profiler session collecting data.
2022–03–23 10:09:07.901233: I tensorflow/core/profiler/lib/profiler_session.cc:172] Profiler session tear down.

5. [ОБЗОР]

Пятый этап – возвращение краткого резюме о учебной работе.

[SUMMARY]: Best epoch was: epoch 1
[SUMMARY]: Lowest val_loss was: 0.4333568811416626

6. [ПОЛУЧЕНИЕ]
Наконец, обученная модель и другие результаты будут отправлены пользователю.

[RECEIVING]: Uploading training log and tensorboard log
[RECEIVING]: |█████████-| 100.0% 0.45MiB/0.45MiB [avg: 1.02MiB/s]

7. [ЗАКРЫТИЕ]

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

После завершения задания обучения оно вернет следующие объекты:

  • job_id
  • Обученная_модель
  • история

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

Проверьте производительность модели

Вы можете использовать объект истории, чтобы определить лучший результат в наборе поездов следующим образом.

training_best_score = max(history.history[‘accuracy’])
print(training_best_score)
>> 0.8196819424629211

Проверьте лучший результат на проверочном наборе.

validation_best_score = max(history.history[‘val_accuracy’])
print(validation_best_score)
>> 0.8208920359611511

Заключение

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

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

Если вы узнали что-то новое или вам понравилось читать эту статью, поделитесь ею, чтобы другие могли ее увидеть.

Пожалуйста, не стесняйтесь обращаться ко мне с любыми вопросами или запросами.