Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Tutorial: Modelle erstellen XGBoost
In diesem Tutorial erstellen Sie ein Modell mit Daten aus Amazon S3 und führen Prognoseabfragen mit dem Modell mithilfe von Amazon Redshift ML aus. Der XGBoost Algorithmus ist eine optimierte Implementierung des Gradient Boosted Trees-Algorithmus. XGBoost verarbeitet mehr Datentypen, Beziehungen und Verteilungen als andere Algorithmen für gradientengestützte Bäume. Sie können ihn XGBoost für Regressions-, binäre Klassifizierungs-, Mehrklassenklassifizierungs- und Rankingprobleme verwenden. Weitere Informationen zum XGBoost Algorithmus finden Sie unter XGBoostAlgorithmus im Amazon SageMaker AI Developer Guide.
Der Amazon Redshift CREATE MODEL
ML-Vorgang mit der AUTO OFF
Option unterstützt derzeit XGBoost als. MODEL_TYPE
Sie können relevante Informationen wie das Ziel und die Hyperparameter als Teil des Befehls CREATE MODEL
basierend auf Ihrem Anwendungsfall angeben.
In diesem Tutorial verwenden Sie den Banknotenauthentifizierungs-Datensatz
Beispielanwendungsfälle
Mit Amazon Redshift ML können Sie andere binäre Klassifikationsprobleme lösen, z. B. voraussagen, ob ein Patient gesund ist oder an einer Krankheit leidet. Sie können auch prognostizieren, ob es sich bei einer E-Mail um Spam handelt oder nicht.
Aufgaben
-
Voraussetzungen
-
Schritt 1: Laden von Daten aus Amazon S3 in Amazon Redshift
-
Schritt 2: Erstellen des Machine-Learning-Modells
-
Schritt 3: Erstellen von Prognosen mit dem Modell
Voraussetzungen
Zum Durchführen dieses Tutorials müssen Sie die administrative Einrichtung für Amazon Redshift ML abschließen.
Schritt 1: Laden von Daten aus Amazon S3 in Amazon Redshift
Verwenden Sie den Abfrage-Editor v2 von Amazon Redshift, um die folgenden Abfragen auszuführen.
Mit der folgenden Abfrage werden zwei Tabellen erstellt, die Daten aus Amazon S3 geladen und auf einen Trainingsatz und einen Testsatz aufgeteilt. Sie verwenden das Trainingsset, um Ihr Modell zu trainieren und die Voraussagefunktion zu erstellen. Anschließend testen Sie die Voraussagefunktion mit dem Testsatz.
--create training set table CREATE TABLE banknoteauthentication_train( variance FLOAT, skewness FLOAT, curtosis FLOAT, entropy FLOAT, class INT ); --Load into training table COPY banknoteauthentication_train FROM 's3://redshiftbucket-ml-sagemaker/banknote_authentication/train_data/' IAM_ROLE default REGION 'us-west-2' IGNOREHEADER 1 CSV; --create testing set table CREATE TABLE banknoteauthentication_test( variance FLOAT, skewness FLOAT, curtosis FLOAT, entropy FLOAT, class INT ); --Load data into testing table COPY banknoteauthentication_test FROM 's3://redshiftbucket-ml-sagemaker/banknote_authentication/test_data/' IAM_ROLE default REGION 'us-west-2' IGNOREHEADER 1 CSV;
Schritt 2: Erstellen des Machine-Learning-Modells
Die folgende Abfrage erstellt das XGBoost Modell in Amazon Redshift ML aus dem Trainingssatz, den Sie im vorherigen Schritt erstellt haben. Ersetzen Sie amzn-s3-demo-bucket
mit Ihrem eigenen S3_BUCKET
, in dem Ihre Eingabedatensätze und andere Redshift-ML-Artefakte gespeichert werden.
CREATE MODEL model_banknoteauthentication_xgboost_binary FROM banknoteauthentication_train TARGET class FUNCTION func_model_banknoteauthentication_xgboost_binary IAM_ROLE default AUTO OFF MODEL_TYPE xgboost OBJECTIVE 'binary:logistic' PREPROCESSORS 'none' HYPERPARAMETERS DEFAULT EXCEPT(NUM_ROUND '100') SETTINGS(S3_BUCKET 'amzn-s3-demo-bucket');
Anzeigen des Status des Modelltrainings (optional)
Sie können den Befehl SHOW MODEL verwenden, um festzustellen, wann Ihr Modell bereit ist.
Verwenden Sie die folgende Abfrage, um den Trainingsfortschritt des Modells zu überwachen.
SHOW MODEL model_banknoteauthentication_xgboost_binary;
Wenn das Modell READY
ist, bietet die Operation SHOW MODEL auch die train:error
-Metrik, wie im folgenden Beispiel für die Ausgabe gezeigt. Die train:error
-Metrik ist ein Maß für die Genauigkeit Ihres Modells, das bis zu sechs Dezimalstellen misst. Ein Wert von 0 ist am genauesten und ein Wert von 1 ist am wenigsten genau.
+--------------------------+--------------------------------------------------+ | Model Name | model_banknoteauthentication_xgboost_binary | +--------------------------+--------------------------------------------------+ | Schema Name | public | | Owner | awsuser | | Creation Time | Tue, 21.06.2022 19:07:35 | | Model State | READY | | train:error | 0.000000 | | Estimated Cost | 0.006197 | | | | | TRAINING DATA: | | | Query | SELECT * | | | FROM "BANKNOTEAUTHENTICATION_TRAIN" | | Target Column | CLASS | | | | | PARAMETERS: | | | Model Type | xgboost | | Training Job Name | redshiftml-20220621190735686935-xgboost | | Function Name | func_model_banknoteauthentication_xgboost_binary | | Function Parameters | variance skewness curtosis entropy | | Function Parameter Types | float8 float8 float8 float8 | | IAM Role | default-aws-iam-role | | S3 Bucket | amzn-s3-demo-bucket | | Max Runtime | 5400 | | | | | HYPERPARAMETERS: | | | num_round | 100 | | objective | binary:logistic | +--------------------------+--------------------------------------------------+
Schritt 3: Erstellen von Prognosen mit dem Modell
Überprüfen der Genauigkeit des Modells
Die folgende Voraussageabfrage verwendet die im vorherigen Schritt erstellte Prognosefunktion, um die Genauigkeit Ihres Modells zu überprüfen. Führen Sie diese Abfrage für den Testsatz aus, um sicherzustellen, dass das Modell dem Trainingssatz nicht zu genau entspricht. Diese enge Übereinstimmung wird auch als Überanpassung bezeichnet. Eine Überanpassung kann dazu führen, dass das Modell unzuverlässige Voraussagen trifft.
WITH predict_data AS ( SELECT class AS label, func_model_banknoteauthentication_xgboost_binary (variance, skewness, curtosis, entropy) AS predicted, CASE WHEN label IS NULL THEN 0 ELSE label END AS actual, CASE WHEN actual = predicted THEN 1 :: INT ELSE 0 :: INT END AS correct FROM banknoteauthentication_test ), aggr_data AS ( SELECT SUM(correct) AS num_correct, COUNT(*) AS total FROM predict_data ) SELECT (num_correct :: FLOAT / total :: FLOAT) AS accuracy FROM aggr_data;
Prognostizieren der Menge der echten und der gefälschten Banknoten
Die folgende Prognoseabfrage gibt die prognostizierte Anzahl der echten und gefälschten Banknoten im Testsatz zurück.
WITH predict_data AS ( SELECT func_model_banknoteauthentication_xgboost_binary(variance, skewness, curtosis, entropy) AS predicted FROM banknoteauthentication_test ) SELECT CASE WHEN predicted = '0' THEN 'Original banknote' WHEN predicted = '1' THEN 'Counterfeit banknote' ELSE 'NA' END AS banknote_authentication, COUNT(1) AS count FROM predict_data GROUP BY 1;
Ermitteln des Durchschnitts der Beobachtungen echter und gefälschter Banknoten
Die folgende Prognoseabfrage gibt den Durchschnittswert jedes Merkmals für Banknoten zurück, bei denen im Testsatz vorausgesagt wird, dass sie echt und gefälscht sind.
WITH predict_data AS ( SELECT func_model_banknoteauthentication_xgboost_binary(variance, skewness, curtosis, entropy) AS predicted, variance, skewness, curtosis, entropy FROM banknoteauthentication_test ) SELECT CASE WHEN predicted = '0' THEN 'Original banknote' WHEN predicted = '1' THEN 'Counterfeit banknote' ELSE 'NA' END AS banknote_authentication, TRUNC(AVG(variance), 2) AS avg_variance, TRUNC(AVG(skewness), 2) AS avg_skewness, TRUNC(AVG(curtosis), 2) AS avg_curtosis, TRUNC(AVG(entropy), 2) AS avg_entropy FROM predict_data GROUP BY 1 ORDER BY 2;
Verwandte Themen
Weitere Informationen zu Amazon Redshift ML finden Sie in der folgenden Dokumentation:
Weitere Informationen über Machine Learning finden Sie in der folgenden Dokumentation: