1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jupyter notebookでazure MLを動かす

Posted at

##前提
・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/

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?