Поскольку AI и ML стали модными терминами в сфере технологий, в течение последних 1–2 лет для нас важно создавать эффективные модели с более высокой точностью. Хотя все это может показаться немного сложным, я здесь, чтобы облегчить вам начало работы. Это инициатива Microsoft Student Partners (Индия) — инициатива Истории разработчиков MSP. Это руководство для начинающих по созданию и развертыванию моделей машинного обучения с помощью Azure.

Зачем использовать службы Azure?

Вы можете создавать и развертывать модели машинного обучения с помощью инструментов, которые вам нужны, независимо от уровня ваших навыков. Есть встроенные блокноты Jupyter, которыми могут легко пользоваться начинающие программисты. Вы также получаете встроенную поддержку инструментов и фреймворков с открытым исходным кодом для обучения модели машинного обучения, а также знакомые фреймворки, такие как TensorFlow, Scikit-Learn и PyTorch.

Приступим:

Создание блокнота Azure.

Шаг 1. Перейдите на https://notebooks.azure.com/ и войдите, используя свою учетную запись Microsoft.

Шаг 2. Нажмите «Мои проекты».

Шаг 3: нажмите «Новый проект» и дайте подходящее имя (например, Haimantika-test), а затем нажмите «Создать».

Шаг 4. После создания проекта. Перейдите к знаку «+» и выберите «Блокнот».

Шаг 5. Дайте блокноту подходящее имя (например, haimantika-test.ipynb) и выберите нужный язык. (например, Python 3.6). Примечание. В этом случае не забудьте добавить расширение (.ipynb).

Отлично! Ваша записная книжка создана, нажмите на нее и приступайте!

Примечание. Создав записную книжку на Azure, вам не нужно беспокоиться об установке зависимостей и использовании графического процессора.

Давайте запустим модель прогнозирования погоды и посмотрим, как она работает в записной книжке Azure.

Ключевой вывод. Блокноты Jupyter состоят из ячеек. Каждой ячейке назначается один из трех типов:

  • Markdown для ввода текста в формате уценки
  • Код для ввода кода, который выполняется в интерактивном режиме.
  • Raw NBConvert для встроенного ввода данных

Вы можете изменить ячейки с помощью кнопки «+».

Шаг 1. Загрузите данные из меню «Файл» и выберите «/project» в качестве папки назначения. Нажмите «Начать загрузку», чтобы загрузить файлы, и «ОК», когда это будет сделано.

Шаг 2. Импортируйте библиотеку pandas. (pandas — это пакет Python, предоставляющий быстрые, гибкие и выразительные структуры данных, предназначенные для того, чтобы сделать работу с «реляционными» или «помеченными» данными простой и интуитивно понятной.)

Шаг 3. Мы печатаем размерность нашего массива (количество строк и столбцов) с помощью функции .shape.

print('The shape of our features is:', features.shape)
Output:The shape of our features is: (348, 12)

Шаг 4. Pandas functions.describe() используется для просмотра некоторых основных статистических данных, таких как процентиль, среднее значение, стандартное значение и т. д. фрейма данных или ряда числовых значений.

Шаг 5: pd. get_dummies при применении к столбцу категорий, где у нас есть одна категория для каждого наблюдения, создаст новый столбец (переменную) для каждого уникального категориального значения. Он поместит один в столбец, соответствующий категориальному значению, присутствующему для этого наблюдения.

Шаг 6.Numpy — это библиотека, используемая для вычисления научных/математических данных. Другое использование находится в:

- Численный анализ
- Линейная алгебра
- Матричные вычисления

# Use numpy to convert to arrays
import numpy as np
# Labels are the values we want to predict
labels = np.array(features[‘actual’])
# Remove the labels from the features
# axis 1 refers to the columns
features= features.drop(‘actual’, axis = 1)
# Saving feature names for later use
feature_list = list(features.columns)
# Convert to numpy array
features = np.array(features)

Шаг 7.Scikit-learn предоставляет ряд контролируемых и неконтролируемых алгоритмов обучения через согласованный интерфейс в Python.

# above we converted the data set variable into numpy array (to make it easier to work with in pandas)
# Using Skicit-learn to split data into training and testing sets
from sklearn.model_selection import train_test_split
# Split the data into training and testing sets
train_features, test_features, train_labels, test_labels = train_test_split(features, labels, test_size = 0.25, random_state = 42)

Шаг 8.Основной структурой данных в NumPy является ndarray, сокращенное название N-мерного массива. При работе с NumPy данные в ndarray просто называются массивом.

Это массив фиксированного размера в памяти, который содержит данные одного типа, такие как целые числа или значения с плавающей запятой.

# we made training set i.e the set of data we train our model with and test set i.e the data set we test our data on
# it is important that the testing set is not known to model while training
# we calulate our accuracy with this only
# Use numpy to convert to arrays
import numpy as np
# Convert to numpy array
features = np.array(features)
Using Skicit-learn to split data into training and testing sets
from sklearn.model_selection import train_test_split
# Split the data into training and testing sets
train_features, test_features = train_test_split(features, test_size = 0.25, random_state = 42)

Шаг 9:

print(‘Training Features Shape:’, train_features.shape)
print(‘Training Labels Shape:’, train_labels.shape)
print(‘Testing Features Shape:’, test_features.shape)
print(‘Testing Labels Shape:’, test_labels.shape)
Output: Training Features Shape: (261, 17)
Training Labels Shape: (261,)
Testing Features Shape: (87, 17)
Testing Labels Shape: (87,)

Шаг 10. Базовый уровень обеспечивает точку сравнения для более продвинутых методов, которые вы оцените позже.

# The baseline predictions are the historical averages
baseline_preds = test_features[:, feature_list.index(‘average’)]
# Baseline errors, and display average baseline error
baseline_errors = abs(baseline_preds — test_labels)
print(‘Average baseline error: ‘, round(np.mean(baseline_errors), 2))
Output:Average baseline error:  5.06

Шаг 11.

# Import the model we are using
from sklearn.ensemble import RandomForestRegressor
# Instantiate model with 1000 decision trees
rf = RandomForestRegressor(n_estimators = 1000, random_state = 42)
# Train the model on training data
rf.fit(train_features, train_labels);

Шаг 12.

# we imported the model using sci-learn kit
# Use the forest's predict method on the test data
predictions = rf.predict(test_features)
# Calculate the absolute errors
errors = abs(predictions - test_labels)
# Print out the mean absolute error (mae)
print('Mean Absolute Error:', round(np.mean(errors), 2), 'degrees.')
Output: Mean Absolute Error: 3.87 degrees.

Шаг 13.

# Calculate mean absolute percentage error (MAPE)
mape = 100 * (errors / test_labels)
# Calculate and display accuracy
accuracy = 100 — np.mean(mape)
print(‘Accuracy:’, round(accuracy, 2), ‘%.’)
Output: Accuracy: 93.93 %.

Это была всего лишь демонстрация. С помощью Блокнотов Azure можно еще многое сделать и узнать, например интегрировать с Машинным обучением Azure и подключить блокнот к собственному источнику вычислений Azure. На веб-сайте Записные книжки Azure есть несколько примеров записных книжек, с которыми вы можете поэкспериментировать и извлечь из них уроки.

Примечание.Код взят для лучшего ознакомления и не принадлежит мне.