Als ich versuchte, Azure Machine Learning auf einem lokalen Computer zu verwenden, wurde es trotz offizieller Dokumentation und Informationen mehrmals gepackt und die Ausführung dauerte lange. Daher werde ich eine Notiz als Memorandum erstellen.
Dieses Mal werde ich vom Setup von Ubuntu, auf dem Azure ML ausgeführt wird, bis zur Ausführung von Azure ML zusammenfassen.
Richten Sie Ihre Ubuntu 18.04-Umgebung mit dem Docker-Image auf Ihrem Mac ein. Ich werde die Erfassung des Docker-Images und des Ausführungsteils weglassen.
Darüber hinaus müssen Sie ein Azure-Konto und einen Arbeitsbereich erstellen, um Azure ML ausführen zu können. Ich werde die Arbeit weglassen.
apt-get update
apt-get upgrade
Es gibt einige Dinge, die das Docker-Image nicht ausreicht. Lesen Sie daher hier (https://qiita.com/manabuishiirb/items/26de8c9740a1d2c7cfdd) und installieren Sie die erforderlichen.
apt-get install -y iputils-ping net-tools wget curl vim build-essential
Dieses Mal werde ich es mit einem Befehl installieren und Anaconda wie folgt herunterladen, indem ich darauf verweise (https://www.virment.com/setup-anaconda-python-jupyter-ubuntu/).
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
Installieren Sie wie folgt.
bash Anaconda3-2019.10-Linux-x86_64.sh
Führen Sie conda in it
aus, um den Befehl conda
zu aktivieren.
Nachdem Sie es in / root /
installiert haben, führen Sie den folgenden Befehl aus:
/root/anaconda3/bin/conda init
source /root/.bashrc
Installieren Sie azure-ml anhand des offiziellen Dokuments (https://docs.microsoft.com/ja-jp/azure/machine-learning/service/how-to-configure-environment#local). Erstellen Sie zunächst eine virtuelle Anaconda-Umgebung.
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)"
Installieren Sie als Nächstes die für die Authentifizierung usw. erforderliche Azure-CLI. Ich habe darauf hingewiesen (https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-apt?view=azure-cli-latest).
curl -sL https://aka.ms/InstallAzureCLIDeb | bash
Installieren Sie abschließend das Azure ML SDK.
pip install azureml-sdk[notebooks,automl]
Der folgende Fehler erscheint auf dem Weg, aber es gab kein Problem.
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.
Authentifizieren Sie sich zunächst mit dem Befehl "az login". Greifen Sie mit einem Webbrowser auf die URL zu, die nach dem Ausführen des Befehls angezeigt wird, und geben Sie den Code ein.
az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code GPVMUVTKF to authenticate.
Erstellen Sie ein Python-Programm (auth.py), um Arbeitsbereichsinformationen zu erstellen.
auth.py
from azureml.core import Workspace
subscription_id = '<Abonnement-ID>'
resource_group = '<Name der Ressourcengruppe>'
workspace_name = '<Name des Arbeitsbereichs>'
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')
Bei der Ausführung wird eine Konfigurationsdatei für die Verbindung zum Arbeitsbereich in ".azureml / config.json" im aktuellen Verzeichnis erstellt.
Erstellen Sie ein Python-Programm (run.py), um maschinelles Lernen durchzuführen. Für die Daten verwenden wir die Brustkrebsdaten von scicit-learn. Weitere Informationen zu Datensätzen finden Sie hier (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
#Arbeitsbereichskonfiguration gelesen
ws = Workspace.from_config()
#Lade Daten
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)
#Einstellungen für maschinelles Lernen
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)
#Lauf
experiment = Experiment(ws, "my-experiment")
local_run = experiment.submit(automl_config, show_output=True)
Der in automl_settings
eingestellte Teil wird entsprechend den Daten und dem Problem beschrieben. Da dies ein binäres Klassifizierungsproblem ist, wird der Optimierungsindex auf AUC und die Klassifizierung auf "Task" von "AutoMLConfig" gesetzt.
Klicken Sie hier für Details (https://docs.microsoft.com/ja-jp/azure/machine-learning/service/how-to-configure-auto-train).
Bei der Ausführung werden einige Modelle und Ensembles nach einem einfachen Feature-Quantity-Engineering erstellt.
python run.py
(Kürzung)
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.
Die AUC ist mit 0,99 ziemlich hoch, daher scheint etwas zu lecken, aber dieses Mal werde ich es ignorieren.
Ich habe den Ablauf für die Ausführung von Azure ML in der lokalen Umgebung zusammengefasst. Obwohl ich Azure ML für praktisch halte, wünschte ich mir, die offizielle Azure-Dokumentation wäre etwas einfacher zu verstehen ...
Recommended Posts