Python-modell összetevő létrehozása
Ez a cikk az Azure Machine Learning designer egy összetevőjét ismerteti.
Megtudhatja, hogyan hozhat létre nem betanított 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 designer-környezetben.
A modell létrehozása után a Modell betanítása segítségével betaníthatja a modellt egy adatkészleten, mint az Azure Machine Learning bármely más tanulója. A betanított modell átadható a Score Modelnek 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 pontszámának á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özbenső 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-csomaglistát az Execute Python Scriptben.
Feljegyzés
A szkript írásakor legyen nagyon óvatos, és győződjön meg arról, hogy nincs szintaxishiba, például nem deklarált objektum vagy nem importált összetevő használata.
Feljegyzés
Emellett további figyelmet fordíthat az előre telepített összetevők listájára az Execute Python Scriptben. Csak előre telepített összetevők importálása. Ne telepítsen további csomagokat, például "pip install xgboost" (pip install xgboost) ebben a szkriptben, ellenkező esetben hibák lépnek fel a modellek le streamelt összetevőkben való olvasása során.
Ez a cikk bemutatja, hogyan használható a Python-modell létrehozása egyszerű folyamattal. Íme egy diagram a folyamatról:
- 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.
Feljegyzés
Ügyeljen a szkript mintakódjában szereplő megjegyzésekre, és győződjön meg arról, hogy a szkript szigorúan megfelel a követelménynek, beleértve az osztály nevét, a metódusokat és a metódusok aláírását. A szabálysértés kivételeket eredményez. A Python-modell létrehozása csak a Betanított modell használatával betanított sklearn-alapú modell 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]}
)
Csatlakoztassa az imént létrehozott Python-modell létrehozása összetevőt a modell betanítása és a modell pontszámának betanítása érdekében.
Ha ki kell értékelnie a modellt, adjon hozzá egy Python-szkript-összetevőt , és szerkessze a Python-szkriptet.
A következő szkript a 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.