##前提
・jupyter notebookでazure machine learningの実験を実行
・azureのワークスペースの作成などは省略
・動作環境はmacOS
##手順
###1.jupyter notebookを起動
1-1.仮想環境を作成 conda -n create 仮想環境名
1-2.仮想環境を有効化 conda activate 仮想環境名
1-3.upyter notebookを起動 jupyter notebook
###2.準備
2-1.Azure mlのパッケージをインストール
pip install azureml
,pip install sklearn
2-2.Azureのワークスペースをimport
この時、Azureのワークスペースでconfigファイルをダウンロードして、ipynobファイルと同じフォルダに格納しておく
from azureml.core.workspace import Workspace
ws = Workspace.from_config()
%matplotlib inline
import matplotlib.pyplot as plt
import sklearn
from sklearn import preprocessing, metrics, model_selection
from sklearn.preprocessing import MinMaxScaler, StandardScaler, LabelEncoder, OneHotEncoder, LabelBinarizer
from sklearn.model_selection import KFold, StratifiedKFold, GridSearchCV, train_test_split
from datetime import datetime, date, timezone, timedelta
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import os, gc
###3.データの読み込み
PATH = '/Users/〇〇/Desktop/jupyter/〇〇/'
## ファイル読み込み
data = pd.read_csv(PATH+'〇〇.csv')
## 学習、バリデーション、テストデータに分割
from sklearn.model_selection import train_test_split
train_data, test_data = train_test_split(data, test_size=0.4 ,shuffle=False)
train_data, validation_data = train_test_split(train_data, train_size=0.66 ,shuffle=False)
## 不要なデータを削除
no_label = "CO"
train_data = train_data.drop(no_label,axis=1)
test_data = test_data.drop(no_label,axis=1)
validation_data = validation_data.drop(no_label,axis=1)
## ターゲットカラムを選択
label = "NOX"
test_labels = test_data.pop(label).values
###4.モデル作成
モデル作成のプログラムを示します。
今回はタスクを回帰にしたかったので、task='regression'
を指定
(分類タスクなら'classification'、時系列解析なら'forecasting')
その他、AzureのGUIで変更できない設定を変えられるところが魅力です。
ちなみに私はデータ分割を指定したかったためjupyter notebookより実行しています。
(デフォルトでは行数に応じた分割数の交差検証)
from azureml.train.automl import AutoMLConfig
automl_config = AutoMLConfig(task='regression',
primary_metric='r2_score',
experiment_timeout_minutes=60,
training_data=train_data,
label_column_name=label,
validation_data = validation_data,
debug_log='automated_ml_errors.log')
実験の開始(モデルの作成と検証)
from azureml.core.experiment import Experiment
experiment = Experiment(ws, "〇〇")
local_run = experiment.submit(automl_config, show_output=True)
〇〇には任意の実験名を入れてください
##最後に
私は、モデル作成の際の設定で参照できるサイトが少なく、時間を使ってしまったので、同じことを実装したい方がすぐにできるよう、一例としてコード付きで記事を書かせていただきました。
ライブラリのバージョン管理やpythonのインポートのパスを通す作業にも少し手こずりました。
まだまだエンジニアとしてわからないことが多いですが、少しずつ勉強していきます。^ ^
##参考サイト
microsoftドキュメント
・https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-configure-cross-validation-data-splits
・https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-auto-train-forecast
ブログ記事
・https://www.simpletraveler.jp/2019/12/08/tried-azuremachinelearning-on-local-jupyter/