Поскольку 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 есть несколько примеров записных книжек, с которыми вы можете поэкспериментировать и извлечь из них уроки.
Примечание.Код взят для лучшего ознакомления и не принадлежит мне.