Megosztás a következőn keresztül:


Python-modell összetevő létrehozása

Ez a cikk az Azure Machine Learning-tervező egy összetevőjét ismerteti.

Megtudhatja, hogyan hozhat létre betanítatlan modellt Python-szkriptből a Python-modell létrehozása összetevővel. A modellt bármely olyan tanulóra alapozhatja, aki szerepel egy Python-csomagban az Azure Machine Learning-tervezői környezetben.

A modell létrehozása után a Modell betanítása használatával betaníthatja a modellt egy adathalmazon, mint az Azure Machine Learning bármely más tanulója. A betanított modell átadható a Modell pontozása számára az előrejelzések készítéséhez. Ezután mentheti a betanított modellt, és közzéteheti a pontozási munkafolyamatot webszolgáltatásként.

Figyelmeztetés

Jelenleg nem lehet csatlakoztatni ezt az összetevőt a Modell hiperparaméterek összetevőjének finomhangolásához , vagy egy Python-modell pontozott eredményeinek átadásához a modell kiértékeléséhez. Ha hangolnia kell a hiperparamétereket, vagy ki kell értékelnie egy modellt, egyéni Python-szkriptet írhat a Python-szkript végrehajtása összetevővel.

Az összetevő konfigurálása

Ennek az összetevőnek a használatához a Python középfokú vagy szakértői ismerete szükséges. Az összetevő támogatja az Azure Machine Learningben már telepített Python-csomagokban szereplő tanulók használatát. Tekintse meg az előre telepített Python-csomagok listáját a Python-szkript végrehajtása című témakörben.

Megjegyzés

Legyen nagyon óvatos a szkript írásakor, és győződjön meg arról, hogy nincs szintaktikai hiba, például nem deklarált objektum vagy nem importált összetevő használata.

Megjegyzés

A Python-szkript végrehajtása szakaszban további figyelmet kell fordítani az előre telepített összetevők listájára is. Csak az előre telepített összetevők importálása. Ne telepítsen olyan további csomagokat, mint a "pip install xgboost" ebben a szkriptben, különben hibák lépnek fel, amikor a modelleket leolvassa a streameletlen összetevőkben.

Ez a cikk bemutatja, hogyan használható a Python-modell létrehozása egyszerű folyamattal. Íme egy diagram a folyamatról:

Python-modell létrehozásának ábrája

  1. Válassza a Python-modell létrehozása lehetőséget, és szerkessze a szkriptet a modellezési vagy adatkezelési folyamat implementálásához. A modellt bármely olyan tanulóra alapozhatja, aki szerepel egy Python-csomagban az Azure Machine Learning-környezetben.

Megjegyzés

Ügyeljen a szkript mintakódjában szereplő megjegyzésekre, és győződjön meg arról, hogy a szkript szigorúan követi a követelményt, beleértve az osztály nevét, a metódusokat és a metódus aláírását. A szabálysértés kivételeket eredményez. A Python-modell létrehozása csak a modell betanításával betanított sklearn-alapú modellek létrehozását támogatja.

A kétosztályos Naive Bayes-osztályozó alábbi mintakódja a népszerű sklearn-csomagot használja:


# 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]}
        )


  1. Csatlakoztassa az imént létrehozott Python-modell létrehozása összetevőt a Modell betanítása és a Modell pontozása elemhez.

  2. Ha ki kell értékelnie a modellt, adjon hozzá egy Python-szkript végrehajtása összetevőt, és szerkessze a Python-szkriptet.

    A következő szkript minta kiértékelési kód:

    
    
    # 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,
    
    

Következő lépések

Tekintse meg az Azure Machine Learning számára elérhető összetevőket .