Skapa Python-modellkomponent
I den här artikeln beskrivs en komponent i Azure Mašinsko učenje designer.
Lär dig hur du använder komponenten Skapa Python-modell för att skapa en otränad modell från ett Python-skript. Du kan basera modellen på alla elever som ingår i ett Python-paket i Azure Mašinsko učenje designermiljö.
När du har skapat modellen kan du använda Träna modell för att träna modellen på en datauppsättning, precis som andra elever i Azure Mašinsko učenje. Den tränade modellen kan skickas till Poängsätta modell för att göra förutsägelser. Du kan sedan spara den tränade modellen och publicera bedömningsarbetsflödet som en webbtjänst.
Varning
För närvarande går det inte att ansluta den här komponenten till komponenten Tune Model Hyperparameters eller skicka de poängsatta resultaten från en Python-modell till Utvärdera modell. Om du behöver justera hyperparametrar eller utvärdera en modell kan du skriva ett anpassat Python-skript med hjälp av Komponenten Kör Python-skript .
Konfigurera komponenten
Användning av den här komponenten kräver mellanliggande eller expertkunskaper om Python. Komponenten stöder användning av alla elever som ingår i Python-paket som redan har installerats i Azure Mašinsko učenje. Se den förinstallerade Python-paketlistan i Kör Python-skript.
Kommentar
Var mycket försiktig när du skriver skriptet och se till att det inte finns något syntaxfel, till exempel att använda ett oförklarat objekt eller en oimporterad komponent.
Kommentar
Var också extra uppmärksam på listan över förinstallerade komponenter i Kör Python-skript. Importera endast förinstallerade komponenter. Installera inte extra paket som "pip install xgboost" i det här skriptet, annars uppstår fel vid läsning av modeller i nedströmskomponenter.
Den här artikeln visar hur du använder Skapa Python-modell med en enkel pipeline. Här är ett diagram över pipelinen:
- Välj Skapa Python-modell och redigera skriptet för att implementera din modellerings- eller datahanteringsprocess. Du kan basera modellen på alla elever som ingår i ett Python-paket i Azure Mašinsko učenje-miljön.
Kommentar
Var extra uppmärksam på kommentarerna i exempelkoden i skriptet och se till att skriptet strikt följer kravet, inklusive klassnamn, metoder samt metodsignatur. Överträdelse leder till undantag. Skapa Python-modell har endast stöd för att skapa en sklearnbaserad modell som ska tränas med hjälp av Träningsmodell.
Följande exempelkod för naive Bayes-klassificeraren med två klasser använder det populära sklearn-paketet :
# The script MUST define a class named Azure Machine LearningModel.
# This class MUST at least define the following three methods:
# __init__: in which self.model must be assigned,
# train: which trains self.model, the two input arguments must be pandas DataFrame,
# predict: which generates prediction result, the input argument and the prediction result MUST be pandas DataFrame.
# The signatures (method names and argument names) of all these methods MUST be exactly the same as the following example.
# Please do not install extra packages such as "pip install xgboost" in this script,
# otherwise errors will be raised when reading models in down-stream components.
import pandas as pd
from sklearn.naive_bayes import GaussianNB
class AzureMLModel:
def __init__(self):
self.model = GaussianNB()
self.feature_column_names = list()
def train(self, df_train, df_label):
# self.feature_column_names records the column names used for training.
# It is recommended to set this attribute before training so that the
# feature columns used in predict and train methods have the same names.
self.feature_column_names = df_train.columns.tolist()
self.model.fit(df_train, df_label)
def predict(self, df):
# The feature columns used for prediction MUST have the same names as the ones for training.
# The name of score column ("Scored Labels" in this case) MUST be different from any other columns in input data.
return pd.DataFrame(
{'Scored Labels': self.model.predict(df[self.feature_column_names]),
'probabilities': self.model.predict_proba(df[self.feature_column_names])[:, 1]}
)
Anslut komponenten Skapa Python-modell som du nyss skapade för att träna modell och poängsätta modell.
Om du behöver utvärdera modellen lägger du till en Execute Python Script-komponent och redigerar Python-skriptet.
Följande skript är exempel på utvärderingskod:
# The script MUST contain a function named azureml_main # which is the entry point for this component. # imports up here can be used to import pandas as pd # The entry point function MUST have two input arguments: # Param<dataframe1>: a pandas.DataFrame # Param<dataframe2>: a pandas.DataFrame def azureml_main(dataframe1 = None, dataframe2 = None): from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score, roc_curve import pandas as pd import numpy as np scores = dataframe1.ix[:, ("income", "Scored Labels", "probabilities")] ytrue = np.array([0 if val == '<=50K' else 1 for val in scores["income"]]) ypred = np.array([0 if val == '<=50K' else 1 for val in scores["Scored Labels"]]) probabilities = scores["probabilities"] accuracy, precision, recall, auc = \ accuracy_score(ytrue, ypred),\ precision_score(ytrue, ypred),\ recall_score(ytrue, ypred),\ roc_auc_score(ytrue, probabilities) metrics = pd.DataFrame(); metrics["Metric"] = ["Accuracy", "Precision", "Recall", "AUC"]; metrics["Value"] = [accuracy, precision, recall, auc] return metrics,
Nästa steg
Se den uppsättning komponenter som är tillgängliga för Azure Mašinsko učenje.