Lorsque j'ai essayé d'utiliser Azure Machine Learning sur une machine locale, bien qu'il y ait eu de la documentation et des informations officielles, il a été emballé plusieurs fois et cela a pris beaucoup de temps à exécuter, je vais donc faire une note en tant que mémorandum.
Cette fois, je vais résumer de la configuration d'Ubuntu qui exécute Azure ML à l'exécution d'Azure ML.
Configurez votre environnement Ubuntu 18.04 à l'aide de l'image docker sur votre Mac. J'omettrai l'acquisition de l'image du docker et la partie exécution.
En outre, vous devez créer un compte Azure et un espace de travail pour exécuter Azure ML. J'omettrai le travail.
apt-get update
apt-get upgrade
Il y a certaines choses que l'image docker ne suffit pas, alors référez-vous ici (https://qiita.com/manabuishiirb/items/26de8c9740a1d2c7cfdd) et installez les nécessaires.
apt-get install -y iputils-ping net-tools wget curl vim build-essential
Cette fois, je vais l'installer avec une commande et télécharger Anaconda comme suit en me référant à ceci (https://www.virment.com/setup-anaconda-python-jupyter-ubuntu/).
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
Installez comme suit.
bash Anaconda3-2019.10-Linux-x86_64.sh
Exécutez conda in it
pour activer la commande conda
.
Maintenant que vous l'avez installé dans / root /
, exécutez la commande suivante:
/root/anaconda3/bin/conda init
source /root/.bashrc
Installez azure-ml en vous référant au document officiel (https://docs.microsoft.com/ja-jp/azure/machine-learning/service/how-to-configure-environment#local). Tout d'abord, créez un environnement virtuel Anaconda.
conda create -n myenv python=3.6.5
conda activate myenv
conda install notebook ipykernel
ipython kernel install --user --name myenv --display-name "Python (myenv)"
Ensuite, installez Azure CLI requis pour l'authentification, etc. J'y ai fait référence (https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-apt?view=azure-cli-latest).
curl -sL https://aka.ms/InstallAzureCLIDeb | bash
Enfin, installez le SDK Azure ML.
pip install azureml-sdk[notebooks,automl]
L'erreur suivante apparaît en cours de route, mais il n'y a pas eu de problème.
ERROR: azureml-automl-runtime 1.0.81 has requirement azureml-automl-core==1.0.81, but you'll have azureml-automl-core 1.0.81.1 which is incompatible.
Tout d'abord, authentifiez-vous avec la commande ʻaz login`. Accédez à l'URL qui apparaît après avoir exécuté la commande avec un navigateur Web et entrez le code.
az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code GPVMUVTKF to authenticate.
Créez un programme Python (auth.py) pour créer des informations sur l'espace de travail.
auth.py
from azureml.core import Workspace
subscription_id = '<Identifiant d'abonnement>'
resource_group = '<Nom du groupe de ressources>'
workspace_name = '<Nom de l'espace de travail>'
try:
ws = Workspace(subscription_id = subscription_id, resource_group = resource_group, workspace_name = workspace_name)
ws.write_config()
print('Library configuration succeeded')
except:
print('Workspace not found')
Une fois exécuté, un fichier de configuration pour la connexion à l'espace de travail sera créé dans .azureml / config.json
dans le répertoire courant.
Créez un programme Python (run.py) pour effectuer un apprentissage automatique. Pour les données, nous utiliserons les données sur le cancer du sein fournies par scicit-learn. Pour plus d'informations sur les ensembles de données, veuillez consulter ici (https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html#sklearn.datasets.load_breast_cancer).
run.py
import logging
from azureml.core.workspace import Workspace
from azureml.train.automl import AutoMLConfig
from azureml.core.experiment import Experiment
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
#Lecture de la configuration de l'espace de travail
ws = Workspace.from_config()
#Chargement des données
data = load_breast_cancer()
df_X = pd.DataFrame(data.data, columns=data.feature_names)
df_y = pd.DataFrame(data.target, columns=['target'])
x_train, x_test, y_train, y_test = train_test_split(df_X, df_y, test_size=0.2, random_state=100)
#Paramètres d'apprentissage automatique
automl_settings = {
"iteration_timeout_minutes": 2,
"experiment_timeout_minutes": 20,
"enable_early_stopping": True,
"primary_metric": 'AUC_weighted',
"featurization": 'auto',
"verbosity": logging.INFO,
"n_cross_validations": 5
}
automl_config = AutoMLConfig(task='classification',
debug_log='automated_ml_errors.log',
X=x_train.values,
y=y_train.values.flatten(),
**automl_settings)
#Courir
experiment = Experiment(ws, "my-experiment")
local_run = experiment.submit(automl_config, show_output=True)
La partie définie dans ʻautoml_settings` est décrite en fonction des données et du problème. Puisqu'il s'agit d'un problème de classification binaire, l'indice d'optimisation est défini sur AUC, et la classification est définie sur «tâche» de «AutoMLConfig». Cliquez ici pour plus de détails (https://docs.microsoft.com/ja-jp/azure/machine-learning/service/how-to-configure-auto-train).
Une fois exécuté, il construira certains modèles et ensembles après une simple ingénierie de quantité de caractéristiques.
python run.py
(réduction)
Current status: DatasetFeaturization. Beginning to featurize the dataset.
Current status: DatasetEvaluation. Gathering dataset statistics.
Current status: FeaturesGeneration. Generating features for the dataset.
Current status: DatasetFeaturizationCompleted. Completed featurizing the dataset.
Current status: DatasetCrossValidationSplit. Generating individually featurized CV splits.
****************************************************************************************************
DATA GUARDRAILS:
TYPE: Class balancing detection
STATUS: PASSED
DESCRIPTION: Classes are balanced in the training data.
TYPE: Missing values imputation
STATUS: PASSED
DESCRIPTION: There were no missing values found in the training data.
TYPE: High cardinality feature detection
STATUS: PASSED
DESCRIPTION: Your inputs were analyzed, and no high cardinality features were detected.
****************************************************************************************************
Current status: ModelSelection. Beginning model selection.
****************************************************************************************************
ITERATION: The iteration being evaluated.
PIPELINE: A summary description of the pipeline being evaluated.
DURATION: Time taken for the current iteration.
METRIC: The result of computing score on the fitted pipeline.
BEST: The best observed score thus far.
****************************************************************************************************
ITERATION PIPELINE DURATION METRIC BEST
0 StandardScalerWrapper SGD 0:00:13 0.9940 0.9940
1 StandardScalerWrapper SGD 0:00:12 0.9958 0.9958
2 MinMaxScaler LightGBM 0:00:12 0.9888 0.9958
3 StandardScalerWrapper SGD 0:00:11 0.9936 0.9958
4 StandardScalerWrapper ExtremeRandomTrees 0:00:14 0.9908 0.9958
5 StandardScalerWrapper LightGBM 0:00:11 0.9887 0.9958
6 StandardScalerWrapper SGD 0:00:11 0.9956 0.9958
7 MinMaxScaler RandomForest 0:00:13 0.9814 0.9958
8 StandardScalerWrapper SGD 0:00:11 0.9851 0.9958
9 MinMaxScaler SGD 0:00:11 0.9441 0.9958
10 MinMaxScaler RandomForest 0:00:11 0.9802 0.9958
11 MaxAbsScaler LightGBM 0:00:11 0.9780 0.9958
12 MinMaxScaler LightGBM 0:00:12 0.9886 0.9958
13 MinMaxScaler ExtremeRandomTrees 0:00:11 0.9816 0.9958
14 MinMaxScaler LightGBM 0:00:11 0.9731 0.9958
15 StandardScalerWrapper BernoulliNaiveBayes 0:00:11 0.9705 0.9958
16 StandardScalerWrapper LogisticRegression 0:00:13 0.9959 0.9959
17 MaxAbsScaler ExtremeRandomTrees 0:00:28 0.9906 0.9959
18 RobustScaler LogisticRegression 0:00:13 0.9853 0.9959
19 RobustScaler LightGBM 0:00:12 0.9904 0.9959
20 StandardScalerWrapper LogisticRegression 0:00:11 0.5000 0.9959
21 MaxAbsScaler LinearSVM 0:00:12 0.9871 0.9959
22 StandardScalerWrapper SVM 0:00:12 0.9873 0.9959
23 RobustScaler LogisticRegression 0:00:14 0.9909 0.9959
24 MaxAbsScaler LightGBM 0:00:15 0.9901 0.9959
25 RobustScaler LogisticRegression 0:00:29 0.9894 0.9959
26 MaxAbsScaler LightGBM 0:00:13 0.9897 0.9959
27 MaxAbsScaler LightGBM 0:00:15 0.9907 0.9959
28 RobustScaler KNN 0:00:12 0.9887 0.9959
29 MaxAbsScaler LogisticRegression 0:00:13 0.9940 0.9959
30 VotingEnsemble 0:00:31 0.9965 0.9965
31 StackEnsemble 0:00:36 0.9960 0.9965
Stopping criteria reached at iteration 31. Ending experiment.
L'AUC est assez élevée à 0,99, il semble donc que quelque chose fuit, mais cette fois je l'ignorerai.
J'ai résumé le flux d'exécution d'Azure ML dans l'environnement local. Bien que je pense qu'Azure ML soit pratique, j'aimerais que la documentation officielle d'Azure soit un peu plus facile à comprendre ...
Recommended Posts