Componente Criar Modelo Python

Este artigo descreve o componente no designer do Azure Machine Learning.

Saiba como usar o componente Criar Modelo python para criar um modelo não treinado de um script Python. Você pode basear o modelo em qualquer aluno incluído em um pacote python no ambiente Azure Machine Learning designer.

Após criar o modelo, use o Modelo de Treinamento para treinar o modelo em um conjunto de dados, como qualquer outro aprendiz no Machine Learning do Azure. O modelo treinado pode ser passado para Modelo de pontuação, para usar o modelo para fazer previsões. Em seguida, você pode salvar o modelo treinado e publicar o fluxo de trabalho de pontuação como um serviço Web.

Aviso

Atualmente, não é possível conectar este componente ao componente Ajustar Hiperparâmetros de Modelo ou passar os resultados com pontuação de um modelo Python para Avaliar Modelo. Se você precisar ajustar os hiperparâmetros ou avaliar um modelo, poderá escrever um script Python personalizado usando o componente Executar Script Python.

Configurar o componente

O uso deste componente requer conhecimento intermediário ou especialista do Python. O componente dá suporte ao uso de qualquer aluno incluído nos pacotes do Python já instalados no Azure Machine Learning. Consulte a lista de pacotes do Python pré-instalado em Executar Script Python.

Observação

Tenha muito cuidado ao escrever seu script e verifique se não há nenhum erro de sintaxe, como usar um objeto não declarado ou um componente não importado.

Observação

Além disso, preste atenção extra à lista de componentes pré-instalados em Executar Script Python. Importe apenas componentes pré-instalados. Não instale pacotes extras, como "pip install xgboost" neste script, caso contrário, erros serão gerados durante a leitura de modelos em componentes de fluxo down.

Este artigo mostra como usar Criar Modelo python com um pipeline simples. Aqui está o diagrama do pipeline:

Diagrama de criação de modelo do Python

  1. Selecione Criar Modelo Pythone edite o script para implementar seu processo de modelagem ou gerenciamento de dados. Você pode basear o modelo em qualquer aluno que esteja incluído em um pacote Python no ambiente do Azure Machine Learning.

Observação

Preste atenção extra aos comentários no código de exemplo do script e verifique se o script segue estritamente o requisito, incluindo o nome da classe, os métodos, bem como a assinatura do método. A violação levará a exceções. Criar modelo Python é compatível apenas com a criação de modelo baseado no sklearn para ser treinado com Treinar modelo.

O seguinte código de exemplo do classificador Naive Bayes de duas classes usa o popular pacote sklearn:


# 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. Conecte o componente Criar Modelo do Python que você acabou de criar para Treinar Modelo e Pontuação de Modelo.

  2. Se você precisar avaliar o modelo, adicione um componente Executar Script Python e edite o script Python.

    O script a seguir é um código de avaliação de exemplo:

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

Próximas etapas

Confira o conjunto de componentes disponíveis no Azure Machine Learning.