ML: Modell trainieren
Beschreibung
Abschnitt betitelt „Beschreibung“Der Schritt ML: Modell trainieren trainiert ein scikit-learn-Modell auf einer Quelltabelle und schreibt das Ergebnis als Modelltabelle. Die Modelltabelle läuft wie jede andere Tabelle durch den Workflow: Übergeben Sie sie an einen ML: Bewerten-Schritt, um einer Datentabelle Vorhersagen hinzuzufügen, oder fragen Sie sie direkt ab, um die Trainingskennzahlen einzusehen. Der Schritt läuft als verwalteter PlaidCloud-Job (wie der LLM-Schritt), sodass das Training nicht mit dem Rest des Workflows um Ressourcen konkurriert.
Registerkarte „Modell”
Abschnitt betitelt „Registerkarte „Modell”“Quelle und Ausgabe
Abschnitt betitelt „Quelle und Ausgabe“- Trainingstabelle – die Tabelle, auf der trainiert wird. Zeilen mit leerem Zielwert werden vom Training ausgeschlossen.
- Modelltabelle – die Ausgabetabelle, die den Modelldatensatz erhält.
-
Algorithmus – das zu trainierende Modell:
Algorithmus Wert Familie Logistische Regression logistic_regressionKlassifikation Entscheidungsbaum-Klassifikator decision_treeKlassifikation Random-Forest-Klassifikator random_forestKlassifikation Gradient-Boosting-Klassifikator (XGBoost-artig) xgb_classifierKlassifikation Lineare Regression linear_regressionRegression Entscheidungsbaum-Regressor decision_tree_regressorRegression Random-Forest-Regressor random_forest_regressorRegression Der XGBoost-artige Algorithmus ist ein scikit-learn-
HistGradientBoostingClassifier– ein statistisch gleichwertiger Ersatz für XGBoost, kein Wrapper darum. Siehe Grenzen und Einschränkungen. -
Zielspalte – die Spalte, die vorhergesagt werden soll. Sie ist erforderlich, außer bei den unüberwachten Algorithmen und
sota, bei denen die Klassenspalte optional ist. Klassifikationsziele werden als Text-Labels behandelt; Regressionsziele werden in Zahlen umgewandelt, und Zeilen, deren Ziel sich nicht als Zahl interpretieren lässt, werden ausgeschlossen.
Weitere Algorithmen
Abschnitt betitelt „Weitere Algorithmen“Die Liste Algorithmus bietet auch diese Algorithmen an. Konvertierte KNIME-Workflows verwenden sie ebenfalls.
| Algorithmen | Was sie sind |
|---|---|
xgboost_classifier, xgboost_regressor, xgboost_linear_classifier, xgboost_linear_regressor |
XGBoost selbst, mit Baum- oder linearem Booster |
gradient_boosting_classifier, gradient_boosting_regressor |
scikit-learn-Gradient-Boosting |
svm, svm_regressor, mlp, mlp_regressor, dummy, dummy_regressor |
scikit-learn-Support-Vector-Machines, mehrschichtige Perzeptronen und Baseline-Modelle |
knime_decision_tree, knime_tree_ensemble, naive_bayes, knn, lda, pnn_dda, fuzzy_rules, sota |
die eigenen Lernverfahren von KNIME, die KNIMEs Ergebnisse liefern; ihre Hyperparameter sind die Einstellungen von KNIME |
kmeans, dbscan, optics, pca, mds, tsne, isolation_forest, apriori, fp_growth |
die unüberwachten Algorithmen von KNIME: keine Zielspalte, und die Merkmalsspalten sind die numerischen Spalten (bei apriori und fp_growth die eine Spalte mit Artikellisten) |
kmedoids, fuzzy_cmeans, hierarchical, hierarchical_tree, silhouette, h2o_pca, mds_projection, smote, target_shuffling, knn_distance, prediction_fusion, al_uncertainty, al_combiner, al_selector, al_density, al_density_table, distribution_creator, distribution_splitter, weak_label, als, rule_table, optics_table, dose_response |
KNIMEs Knoten für Clustering, Sampling, Active Learning, Empfehlungen (als: die Merkmalsspalten sind Benutzer und Produkt, das Ziel ist die Bewertung), Assoziationsregeln und Dosis-Wirkungs-Analyse |
dbscan, mds, tsne und die anderen Algorithmen, die abgesehen von ihren Daten kein Modell haben, behalten ihre Einstellungen in der Modelltabelle, und ML: Bewerten legt die übergebene Tabelle aus.
Hyperparameter
Abschnitt betitelt „Hyperparameter“Ein optionales JSON-Objekt mit scikit-learn-Hyperparametern für den gewählten Algorithmus – zum Beispiel {"max_depth": 5, "n_estimators": 200}. Unbekannte Schlüssel werden beim Speichern des Schritts abgelehnt, sodass ein falsch geschriebener Parameter sofort fehlschlägt, statt stillschweigend ignoriert zu werden. Aus Alteryx konvertierte Workflows können außerdem Sentinel-Schlüssel im Alteryx-Stil wie max_depth_none enthalten; diese werden für Sie übersetzt.
Einige veraltete Parameter, die scikit-learn entfernt hat, werden akzeptiert, aber nicht angewendet (zum Beispiel presort oder die unter Grenzen und Einschränkungen aufgeführten XGBoost-Baumparameter); alles, was auf diese Weise verworfen wird, wird in params_json der Modelltabelle unter dropped_params festgehalten, sodass nichts stillschweigend verschwindet.
Registerkarte „Merkmale”
Abschnitt betitelt „Registerkarte „Merkmale”“Die Registerkarte „Merkmale” zeigt eine Zeile pro Spalte der Quelltabelle:
- Merkmal – aktivieren Sie die Spalten, auf denen trainiert werden soll. Lassen Sie alle Kontrollkästchen deaktiviert, um auf jeder Spalte außer dem Ziel zu trainieren. Sind alle Kontrollkästchen deaktiviert, trainiert der Schritt auf den Spalten, die die Tabelle bei der Ausführung hat; führen Sie Spalten unter Spalten ausschließen (
exclude_columns) auf, um einige davon auszulassen. - Typüberschreibung – erzwingt für eine Spalte die Behandlung als Numerisch oder Kategorial, oder belassen Sie die Einstellung auf (ableiten), um den Typ vom Typ der Tabellenspalte abzuleiten.
Die Merkmalsaufbereitung entspricht Alteryx Assisted Modeling: Numerische Merkmale werden in Zahlen umgewandelt (nicht interpretierbare Werte werden zu fehlenden Werten), und fehlende Werte werden mit dem Median ersetzt; kategoriale Merkmale werden als Text behandelt, mit dem häufigsten Wert ersetzt und One-Hot-kodiert. Werte, die ein kategoriales Merkmal beim Training nie gesehen hat, werden beim Bewerten ignoriert.
Die Modelltabelle
Abschnitt betitelt „Die Modelltabelle“Die Modelltabelle hat diese Spalten:
| Spalte | Inhalt |
|---|---|
model_pickle_b64 |
Die trainierte scikit-learn-Pipeline (gepickelt, komprimiert, Base64-kodiert). Große Modelle werden auf mehrere Zeilen verteilt – siehe So wird das Modell gespeichert. |
chunk_index |
Die Position des Modellabschnitts dieser Zeile, bei 0 beginnend. |
algorithm |
Der Algorithmuswert, zum Beispiel logistic_regression. |
params_json |
JSON: die angewendeten scikit-learn-Parameter, die verwendeten Merkmalstypen und alle dropped_params. |
feature_names_json |
JSON-Array: die geordneten Merkmalsspalten, die das Modell beim Bewerten erwartet. |
class_labels_json |
JSON-Array mit Klassen-Labels (Klassifikatoren) oder null (Regressoren). |
metrics_json |
JSON-Trainingskennzahlen – siehe unten. |
trained_at |
UTC-Zeitstempel der Trainingsausführung. |
Da das Modell eine gewöhnliche Tabelle ist, können Sie es wie eine solche abfragen – extrahieren Sie zum Beispiel metrics_json in einem nachgelagerten Schritt, um einen Workflow von der Modellqualität abhängig zu machen.
metrics_json enthält den Schlüssel kind (classification oder regression), train_accuracy für Klassifikatoren bzw. train_r2 und train_rmse für Regressoren sowie n_training_rows.
So wird das Modell gespeichert
Abschnitt betitelt „So wird das Modell gespeichert“Ein trainiertes Modell kann groß sein – ein Random Forest mit der Standardeinstellung von hundert Bäumen kann Hunderte von Megabyte umfassen –, und das ist mehr, als ein Warehouse als einzelnen Wert akzeptiert. Das Modell wird daher komprimiert und, falls es für eine Zeile immer noch zu groß ist, auf so viele Zeilen verteilt wie nötig. Jede Zeile wiederholt die oben genannten Spalten, sodass jede einzelne von ihnen Algorithmus, Parameter, Merkmale und Kennzahlen verrät; nur model_pickle_b64 und chunk_index unterscheiden sich zwischen den Zeilen.
Das ist an zwei Stellen von Bedeutung:
- Kennzahlen lesen. Eine Modelltabelle kann mehr als eine Zeile enthalten. Lesen Sie die Kennzahlen daher aus einer einzelnen Zeile, statt anzunehmen, dass es nur eine gibt – zum Beispiel mit
WHERE chunk_index = 0. - Das Modell selbst wieder zusammensetzen. Wenn Sie
model_pickle_b64außerhalb von PlaidCloud lesen, verketten Sie die Teile in der Reihenfolge vonchunk_index, dekodieren Sie Base64 und dekomprimieren Sie, bevor Sie unpickeln.
Ein ML: Bewerten-Schritt erledigt all das für Sie. Er prüft außerdem, ob alle Teile vorhanden sind, und bricht mit einem Fehler ab, wenn eines fehlt, statt mit einem unvollständigen Modell zu bewerten.
Grenzen und Einschränkungen
Abschnitt betitelt „Grenzen und Einschränkungen“- Trainingskennzahlen werden auf dem Trainingsset berechnet – in dieser Version gibt es weder eine Holdout-Aufteilung noch Kreuzvalidierung. Betrachten Sie sie als Prüfung der Anpassung, nicht als Schätzung der Leistung außerhalb der Stichprobe.
- Arbeitsset im Arbeitsspeicher – die Trainingstabelle wird in den Arbeitsspeicher gelesen, daher ist der Schritt auf etwa eine Million Zeilen ausgelegt. Nehmen Sie bei größeren Tabellen zuerst eine Stichprobe oder aggregieren Sie.
- Maximale Modellgröße – ein trainiertes Modell wird abgelehnt, wenn es komprimiert mehr als 128 MB umfasst, und der Schritt bricht unmittelbar nach dem Training mit einer Meldung ab, die Größe und Limit nennt. Zum Vergleich: Ein Random Forest mit hundert Bäumen über 17.000 Zeilen und 17 Merkmalen kommt auf etwa 56 MB, das Limit liegt also bei etwa dem Doppelten. Wenn Sie es erreichen, trainieren Sie weniger Bäume (
n_estimators) oder begrenzen Siemax_depth. - XGBoost-Näherung –
xgb_classifiertrainiert einen scikit-learn-HistGradientBoostingClassifier; diexgboost_*-Algorithmen führen XGBoost selbst aus. Die XGBoost-spezifischen Baumparametergamma,min_child_weight,subsampleund diecolsample_*-Familie haben kein Äquivalent und werden verworfen (festgehalten indropped_paramssowie in den Zuordnungshinweisen des Schritts, wenn er aus Alteryx konvertiert wurde). Validieren Sie die Modellkennzahlen gegen Ihre Referenzausführung, bevor Sie sich auf Übereinstimmung verlassen. - Die AutoML-Konvertierung wählt einen Algorithmus, keine Suche – ein Alteryx-AutoML-Tool wird auf dieselbe Weise zu diesem Schritt verschmolzen wie Classification und Regression, aber AutoML hält nie fest, welcher seiner Kandidatenalgorithmen zur Alteryx-Laufzeit tatsächlich gewonnen hat. Die Konvertierung wählt den ersten markierten Algorithmus, den dieser Schritt unterstützt, und vermerkt die Wahl, statt eine automatisierte Suche nachzubilden – hier läuft keine Modellauswahlschleife. Vergleichen Sie einen konvertierten AutoML-Schritt mit Ihren eigenen Alteryx-Ergebnissen.
Verwandte Themen
Abschnitt betitelt „Verwandte Themen“- ML: Bewerten – bewerten Sie eine Datentabelle mit dem trainierten Modell.
- Alteryx-Workflows migrieren – wie Alteryx-Assisted-Modeling-Pipelines, einschließlich AutoML, in diesen Schritt konvertiert werden.