Komponen Create Python Model

Artikel ini menjelaskan komponen dalam perancang Azure Machine Learning.

Pelajari cara menggunakan komponen Create Python Model untuk membuat model yang tidak terlatih dari skrip Python. Anda dapat mendasarkan model pada pembelajar mana pun yang disertakan dalam paket Python di lingkungan perancang Azure Machine Learning.

Setelah membuat model, Anda dapat menggunakan Train Model untuk melatih model pada himpunan data, seperti pembelajar lainnya di Azure Machine Learning. Model terlatih dapat diteruskan ke Score Model untuk membuat prediksi. Anda kemudian dapat menyimpan model terlatih dan menerbitkan alur kerja penilaian sebagai layanan web.

Peringatan

Saat ini, komponen ini tidak dapat dihubungkan ke komponen Tune Model Hyperparameters atau meneruskan hasil skor model Python ke Model Evaluasi. Jika Anda perlu menyetel hyperparameters atau mengevaluasi model, Anda dapat menulis skrip Python kustom dengan menggunakan komponen Execute Python Script.

Konfigurasikan komponen

Penggunaan komponen ini membutuhkan pengetahuan tingkat menengah atau ahli tentang Python. Komponen mendukung penggunaan setiap pelajar yang disertakan dalam paket Python yang sudah diinstal di Azure Machine Learning. Lihat daftar paket Python yang telah dipasang sebelumnya di Execute Python Script.

Catatan

Perlu berhati-hati saat menulis skrip Anda dan pastikan tidak ada galat sintaksis, seperti menggunakan objek yang tidak dideklarasikan atau komponen yang tidak diimpor.

Catatan

Perhatikan juga daftar komponen pra-instal di Execute Python Script. Hanya impor komponen pra-instal. Jangan menginstal paket tambahan seperti "pip install xgboost" dalam skrip ini, jika tidak, kesalahan akan muncul saat membaca model di komponen down-stream.

Artikel ini memperlihatkan cara menggunakan Create Python Model dengan alur sederhana. Berikut adalah diagram alur:

Diagram Create Python Model

  1. Pilih Create Python Model dan edit skrip untuk menerapkan proses pemodelan atau manajemen data Anda. Anda dapat mendasarkan model pada pembelajar mana pun yang disertakan dalam paket Python di lingkungan Azure Machine Learning.

Catatan

Harap perhatikan komentar tambahan dalam kode sampel skrip dan pastikan skrip Anda benar-benar mengikuti persyaratan, termasuk nama kelas, metode, serta tanda tangan metode. Pelanggaran akan mengarah pada pengecualian. Create Python Model hanya mendukung pembuatan model berbasis sklearn untuk dilatih menggunakan Train Model.

Kode sampel pengklasifikasi Naive Bayes dua kelas berikut menggunakan paket sklearn populer:


# 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. Hubungkan komponen Create Python Model yang baru saja Anda buat ke Latih Model dan Model Skor.

  2. Jika Anda perlu mengevaluasi model, tambahkan komponen Execute Python Script dan edit skrip Python.

    Skrip berikut adalah contoh kode evaluasi:

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

Langkah berikutnya

Lihat set komponen yang tersedia untuk Azure Machine Learning.