Snowpark ML Modeling: Entwicklung von ML-Modellen

Snowpark ML Modeling ist eine Sammlung von Python-APIs für die Vorverarbeitung von Daten und das Trainieren von Modellen. Wenn Sie diese Aufgaben in Snowflake mithilfe von Snowpark ML Modeling ausführen, haben Sie folgende Möglichkeiten:

  • Transformieren Ihrer Daten und trainieren Ihrer Modelle, ohne Daten aus Snowflake an andere Systeme übergeben zu müssen

  • Verwenden von APIs, die denen ähneln, die Sie bereits kennen, z. B. scikit-learn.

  • Ausführen Ihrer ML-Pipeline innerhalb des Sicherheits- und Governance-Frameworks von Snowflake

  • Profitieren von der Leistungsfähigkeit und Skalierbarkeit der Data Warehouses von Snowflake

Das unter diesem Thema beschriebene Snowpark ML Modeling-Paket bietet Schätz- und Transformationsfunktionen, die mit denen der Bibliotheken scikit-learn, xgboost und lightgbm kompatibel sind. Sie können diese APIs verwenden, um Machine Learning-Modelle in Snowflake zu erstellen und zu trainieren.

Eine kurze Einführung in Snowpark ML Modeling finden Sie in unserem Quickstart.

Bemerkung

Bei diesem Thema wird vorausgesetzt, dass Sie das Snowpark ML-Modul bereits installiert haben. Wenn dies nicht der Fall ist, finden Sie weitere Informationen unter Installieren von Snowpark ML.

Snowpark ML Modeling-Klassen

Alle Modellierungs- und Vorverarbeitungsklassen von Snowpark ML Modeling befinden sich im Namespace snowflake.ml.modeling. Die Module von Snowpark ML haben dieselben Namen wie die entsprechenden Module im sklearn-Namespace. Beispielsweise ist das Snowpark ML-Modul, das sklearn.calibration entspricht, snowflake.ml.modeling.calibration.

Die Module xgboost und lightgbm entsprechen den Modulen snowflake.ml.modeling.xgboost bzw. snowflake.ml.modeling.lightgbm.

Nicht alle Klassen von scikit-learn werden in Snowpark ML unterstützt. Die folgende Tabelle zeigt, welche Klassen unterstützt werden. Klassen, die mit einem Sternchen Klassen (*) gekennzeichnet sind, unterstützen die verteilte Ausführung.

Tipp

Alle Informationen zur Modellierungs-API finden Sie in der API-Referenz für Snowpark ML.

Snowpark ML-Modulname

Klassen

snowflake.ml.modeling.calibration

  • CalibratedClassifierCV

snowflake.ml.modeling.cluster

  • AgglomerativeClustering

  • AffinityPropagation

  • Birch

  • DBSCAN

  • FeatureAgglomeration

  • KMeans

  • MeanShift

  • MiniBatchKMeans

  • OPTICS

  • SpectralBiclustering

  • SpectralClustering

  • SpectralCoclustering

snowflake.ml.modeling.compose

  • ColumnTransformer

  • TransformedTargetRegressor

snowflake.ml.modeling.covariance

  • EllipticEnvelope

  • EmpiricalCovariance

  • GraphicalLasso

  • GraphicalLassoCV

  • LedoitWolf

  • MinCovDet

  • OAS

  • ShrunkCovariance

snowflake.ml.modeling.decomposition

  • DictionaryLearning

  • FactorAnalysis

  • FastICA

  • IncrementalPCA

  • KernelPCA

  • MiniBatchDictionaryLearning

  • MiniBatchSparsePca

  • PCA

  • SparsePCA

  • TruncatedSVD

snowflake.ml.modeling.discriminant_analysis

  • LinearDiscriminantAnalysis

  • QuadraticDiscriminantAnalysis

snowflake.ml.modeling.ensemble

  • AdaBoostClassifier

  • AdaBoostRegressor

  • BaggingClassifier

  • BaggingRegressor

  • ExtraTreesClassifier

  • ExtraTreesRegressor

  • GradientBoostingClassifier

  • GradientBoostingRegressor

  • IsolationForest

  • RandomForestClassifier

  • RandomForestRegressor

  • StackingRegressor

  • VotingClassifier

  • VotingRegressor

snowflake.ml.modeling.feature_selection

  • GenericUnivariateSelect

  • SelectFdr

  • SelectFpr

  • SelectFwe

  • SelectKBest

  • SelectPercentile

  • SequentialFeatureSelector

  • VarianceThreshold

snowflake.ml.modeling.gaussian_process

  • GaussianProcessClassifier

  • GaussianProcessRegressor

snowflake.ml.modeling.impute

  • IterativeImputer

  • KNNImputer

  • MissingIndicator

  • SimpleImputer *

snowflake.ml.modeling.kernel_approximation

  • AdditiveChi2Sampler

  • Nystroem

  • PolynomialCountSketch

  • RBFSampler

  • SkewedChi2Sampler

snowflake.ml.modeling.kernel_ridge

  • KernelRidge

snowflake.ml.modeling.lightgbm

  • LGBMClassifier

  • LGBMRegressor

snowflake.ml.modeling.linear_model

  • ARDRegression

  • BayesianRidge

  • ElasticNet

  • ElasticNetCV

  • GammaRegressor

  • HuberRegressor

  • Lars

  • LarsCV

  • Lasso

  • LassoCV

  • LassoLars

  • LassoLarsCV

  • LassoLarsIC

  • LinearRegression

  • LogisticRegression

  • LogisticRegressionCV

  • MultiTaskElasticNet

  • MultiTaskElasticNetCV

  • MultiTaskLasso

  • MultiTaskLassoCV

  • OrthogonalMatchingPursuit

  • PassiveAggressiveClassifier

  • PassiveAggressiveRegressor

  • Perceptron

  • PoissonRegressor

  • RANSACRegressor

  • Ridge

  • RidgeClassifier

  • RidgeClassifierCV

  • RidgeCV

  • SGDClassifier

  • SGDOneClassSvm

  • SGDRegressor

  • TheilSenRegressor

  • TweedieRegressor

snowflake.ml.modeling.manifold

  • Isomap

  • MDS

  • SpectralEmbedding

  • TSNE

snowflake.ml.modeling.metrics

correlation:

  • correlation *

covariance:

  • covariance *

classification:

  • accuracy_score *

  • confusion_matrix *

  • f1_score

  • fbeta_score

  • log_loss

  • precision_recall_fscore_support

  • precision_score

  • recall_score

ranking:

  • precision_recall_curve

  • roc_auc_score

  • roc_curve

regression:

  • d2_absolute_error_score

  • d2_pinball_score

  • explained_variance_score

  • mean_absolute_error

  • mean_absolute_percentage_error

  • mean_squared_error

  • r2_score *

snowflake.ml.modeling.mixture

  • BayesianGaussianMixture

  • GaussianMixture

snowflake.ml.modeling.model_selection

  • GridSearchCV

  • RandomizedSearchCV

snowflake.ml.modeling.multiclass

  • OneVsOneClassifier

  • OneVsRestClassifier

  • OutputCodeClassifier

snowflake.ml.modeling.naive_bayes

  • BernoulliNB

  • CategoricalNB

  • ComplementNB

  • GaussianNB

  • MultinomialNB

snowflake.ml.modeling.neighbors

  • KernelDensity

  • KNeighborsClassifier

  • KNeighborsRegressor

  • LocalOutlierFactor

  • NearestCentroid

  • NearestNeighbors

  • NeighborhoodComponentsAnalysis

  • RadiusNeighborsClassifier

  • RadiusNeighborsRegressor

snowflake.ml.modeling.neural_network

  • BernoulliRBM

  • MLPClassifier

  • MLPRegressor

snowflake.ml.modeling.preprocessing

  • Binarizer *

  • KBInsDiscretizer *

  • LabelEncoder *

  • MaxAbsScaler *

  • MinMaxScaler *

  • Normalizer *

  • OneHotEncoder *

  • OrdinalEncoder *

  • RobustScaler *

  • StandardScaler *

snowflake.ml.modeling.semi_supervised

  • LabelPropagation

  • LabelSpreading

snowflake.ml.modeling.svm

  • LinearSVC

  • LinearSVR

  • NuSVC

  • NuSVR

  • SVC

  • SVR

snowflake.ml.modeling.tree

  • DecisionTreeClassifier

  • DecisionTreeRegressor

  • ExtraTreeClassifier

  • ExtraTreeRegressor

snowflake.ml.modeling.xgboost

  • XGBClassifier

  • XGBRegressor

  • XGBRFClassifier

  • XGBRFRegressor

Allgemeine Unterschiede der API

Tipp

Alle Informationen zur Modellierungs-API finden Sie in der API-Referenz für Snowpark ML.

Snowpark ML Modeling umfasst Algorithmen zur Datenvorverarbeitung, Transformation und Vorhersage, die auf scikit-learn, xgboost und lightgbm basieren. Die Snowpark Python-Klassen sind Ersatz für die entsprechenden Klassen aus den Originalpaketen mit ähnlichen Signaturen. Diese APIs sind jedoch für Snowpark-DataFrames und nicht für NumPy-Arrays konzipiert.

Obwohl die Snowpark ML Modeling-API ähnlich wie scikit-learn ist, gibt es einige wichtige Unterschiede. In diesem Abschnitt wird erklärt, wie Sie die Methoden __init__ (Konstruktor), fit und predict für die in Snowpark ML bereitgestellten Schätzer- und Transformer-Klassen aufrufen.

  • Der Konstruktor aller Snowpark ML Python-Klassen akzeptiert zusätzliche zu den Parametern, die von den entsprechenden Klassen in scikit-learn, xgboost oder lightgbm akzeptiert werden, fünf weitere Parameter: input_cols, output_cols, sample_weight_col, label_cols und drop_input_cols. Dabei handelt es sich um Zeichenfolgen oder Sequenzen von Zeichenfolgen, die die Namen der Eingabespalten, der Ausgabespalten, der Spalte für die Gewichtung des Samples und der Beschriftungsspalten in einem Snowpark- oder Pandas-DataFrame angeben.

  • Die Methoden fit und predict in Snowpark ML akzeptieren einen einzigen DataFrame anstelle von separaten Arrays, die die Eingabedaten, Beschriftungen und Gewichtungen repräsentieren. Mit Snowpark ML geben Sie bei der Instanziierung der Klasse die Namen der Spalten an, die für diese Zwecke verwendet werden sollen. Diese Namen werden dann verwendet, um die benötigten Spalten im DataFrame zu finden, die Sie an fit oder predict übergeben. Weitere Informationen dazu finden Sie unter fit und predict.

  • Die Methoden transform und predict in Snowpark ML geben eine DataFrame zurück, das alle Spalten aus dem an die Methode übergebenen DataFrame enthält, wobei die Ausgabe der Vorhersage in zusätzlichen Spalten gespeichert wird. (Sie können die Umwandlung an Ort und Stelle vornehmen, indem Sie dieselben Namen der Eingabe- und Ausgabespalten angeben, oder Sie lassen die Eingabespalten weg, indem Sie drop_input_cols = True übergeben.) Die Äquivalenten zu scikit-learn, xgboost und lightgbm geben Arrays zurück, die nur die Ergebnisse enthalten.

  • Snowpark Python-Transformer verfügen nicht über eine fit_transform-Methode. Wie bei scikit-learn wird die Parametervalidierung jedoch nur in der Methode fit ausgeführt, sodass Sie fit irgendwann vor transform aufrufen müssen, auch wenn der Transformer keine Anpassung vornimmt. fit gibt den Transformer zurück, sodass die Methodenaufrufe verkettet werden können, z. B. Binarizer(threshold=0.5).fit(df).transform(df).

  • Snowpark ML-Transformer verfügen nicht über eine inverse_transform-Methode. Diese Methode ist bei Snowpark ML nicht notwendig, da die ursprüngliche Darstellung in den Eingabespalten des Eingabe-DataFrame erhalten bleibt, es sei denn, Sie führen explizit eine In-Place-Transformation aus, indem Sie die gleichen Namen für die Eingabe- und die Ausgabespalten angeben.

Erstellen eines Modells

Zusätzlich zu den Parametern, die von den einzelnen scikit-learn-Modellklassen akzeptiert werden, akzeptieren alle Snowpark ML Modeling-Klassen bei der Instanziierung fünf zusätzliche Parameter, die in der folgenden Tabelle aufgeführt sind.

Diese Parameter sind technisch gesehen alle optional, aber Sie werden oft entweder input_cols oder output_cols oder beides angeben wollen. label_cols und sample_weight_col sind in bestimmten, in der Tabelle aufgeführten Situationen erforderlich, können aber in anderen Fällen weggelassen werden.

Parameter

Beschreibung

input_cols

Eine Zeichenfolge oder eine Liste von Zeichenfolgen, die Spaltennamen darstellen, die Features enthalten.

Wenn Sie diesen Parameter weglassen, werden alle Spalten im Eingabe-DataFrame mit Ausnahme der durch die Parameter label_cols und sample-weight_col angegebenen Spalten als Eingabespalten betrachtet.

label_cols

Eine Zeichenfolge oder eine Liste von Zeichenfolgen, die Spaltennamen darstellen, die Beschriftungen enthalten.

Für Schätzer müssen Sie Beschriftungsspalten angeben, da ein Ableiten dieser Spalten nicht möglich ist. Wenn Sie diesen Parameter weglassen, gilt das Modell als Transformer und wird ohne Beschriftung angepasst.

output_cols

Eine Zeichenfolge oder eine Liste von Zeichenfolgen, die Spaltennamen darstellen, in denen die Ausgabe von predict- und transform-Operationen gespeichert wird. Die Länge von output_cols muss der erwarteten Anzahl von Ausgabespalten der verwendeten Prädiktor- oder Transformerklasse entsprechen.

Wenn Sie diesen Parameter weglassen, werden die Namen der Ausgabespalten durch Hinzufügen eines OUTPUT_-Präfixes zu den Namen der Beschriftungsspalten abgeleitet. Diese abgeleiteten Ausgabespaltennamen funktionieren für Prädiktoren, aber output_cols muss für Transformer explizit festgelegt werden. Die explizite Angabe von Ausgabespaltennamen ist übersichtlicher, insbesondere wenn Sie die Eingabespaltennamen nicht angeben.

Um die Umwandlung an Ort und Stelle vorzunehmen, übergeben Sie für input_cols und output_cols dieselben Namen.

sample_weight_col

Eine Zeichenfolge mit dem Namen der Spalte, die die Gewichtung der Beispiele enthält.

Dieses Argument ist für gewichtete Datensets erforderlich.

drop_input_cols

Ein boolescher Wert, der angibt, ob die Eingabespalten aus dem Ergebnis-DataFrameentfernt werden. Der Standardwert ist False.

Beispiel

Der DecisionTreeClassifier-Konstruktor hat in scikit-learn keine erforderlichen Argumente; alle Argumente haben Standardwerte. In scikit-learn könnten Sie also Folgendes schreiben:

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier()
Copy

In Snowpark ML müssen Sie die Spaltennamen angeben (oder die Standardwerte akzeptieren, indem Sie sie nicht angeben). Im diesem Beispiel werden sie explizit angegeben.

Sie können einen Snowpark ML-Klassifizierer DecisionTreeClassifier initialisieren, indem Sie die Argumente direkt an den Konstruktor übergeben oder indem Sie sie nach der Instanziierung als Attribute des Modells festlegen. (Die Attribute können jederzeit geändert werden.)

  • Als Konstruktor-Argumente:

    from snowflake.ml.modeling.tree import DecisionTreeClassifier
    
    model = DecisionTreeClassifier(
        input_cols=feature_column_names, label_cols=label_column_names, sample_weight_col=weight_column_name,
        output_cols=expected_output_column_names
    )
    
    Copy
  • Durch Einstellen von Modellattributen:

    from snowflake.ml.modeling.tree import DecisionTreeClassifier
    
    model = DecisionTreeClassifier()
    model.set_input_cols(feature_column_names)
    model.set_label_cols(label_column_names)
    model.set_sample_weight_col(weight_column_name)
    model.set_output_cols(output_column_names)
    
    Copy

fit

Der Methode fit eines Snowpark ML-Klassifikators wird ein einzelner Snowpark- oder Pandas-DataFrame mit allen Spalten, einschließlich Features, Labels und Gewichtungen übergeben. Dies unterscheidet sich von der Methode fit von scikit-learn, die separate Eingaben für Features, Labels und Gewichtungen benötigt.

In scikit-learn sieht der Aufruf der Methode DecisionTreeClassifier.fit wie folgt aus:

model.fit(
    X=df[feature_column_names], y=df[label_column_names], sample_weight=df[weight_column_name]
)
Copy

In Snowpark ML müssen Sie nur den DataFrame übergeben. Sie haben die Namen der Eingabe-, Beschriftungs- und Gewichtungsspalten bereits bei der Initialisierung oder mithilfe von Konstruktionsmethoden festgelegt, wie unter Erstellen eines Modells gezeigt.

model.fit(df)
Copy

predict

Der Methode predict einer Snowpark ML-Klasse wird ebenfalls ein einzelner Snowpark- oder Pandas-DataFrame mit allen Feature-Spalten übergeben. Das Ergebnis ist ein DataFrame, der alle Spalten des Eingabe-DataFrame unverändert enthält und an den die Ausgabespalten angehängt sind. Sie müssen die Ausgabespalten aus diesem DataFrame extrahieren. Dies unterscheidet sich von der Methode predict in scikit-learn, die nur die Ergebnisse zurückgibt.

Beispiel

In scikit-learn liefert predict nur die Vorhersageergebnisse:

prediction_results = model.predict(X=df[feature_column_names])
Copy

Um in Snowpark ML nur die Vorhersageergebnisse zu erhalten, extrahieren Sie die Ausgabespalten aus dem zurückgegebenen DataFrame. Hier ist output_column_names eine Liste mit den Namen der Ausgabespalten:

prediction_results = model.predict(df)[output_column_names]
Copy

Bereitstellen und Ausführen Ihres Modells

Das Ergebnis des Trainings eines Modells ist ein Snowpark ML-Python-Modellobjekt. Sie können das trainierte Modell für Vorhersagen verwenden, indem Sie die Methode predict des Modells aufrufen. Dadurch wird eine temporäre benutzerdefinierte Funktion zur Ausführung des Modells in Ihrem virtuellen Snowflake-Warehouse erstellt. Diese Funktion wird am Ende Ihrer Snowpark ML-Sitzung automatisch gelöscht (z. B. wenn Ihr Skript endet oder wenn Sie Ihr Jupyter-Notebook schließen).

Um die benutzerdefinierte Funktion nach dem Ende Ihrer Sitzung beizubehalten, können Sie sie auch manuell erstellen. Weitere Informationen dazu finden Sie im Quickstart zu diesem Thema.

Die Snowpark ML-Modellregistrierung, ein kommendes Feature, unterstützt ebenfalls persistente Modelle und erleichtert deren Suche und Bereitstellung. Für einen frühzeitigen Zugriff auf die Dokumentation zu diesem Feature wenden Sie sich an Ihren Snowflake-Vertreter.

Pipeline für mehrere Transformationen

Bei scikit-learn ist es üblich, eine Serie von Transformationen mithilfe einer Pipeline auszuführen. scikit-learn-Pipelines funktionieren nicht mit den Snowpark ML-Klassen, daher bietet Snowpark ML eine Snowpark Python-Version von sklearn.pipeline.Pipeline für die Ausführung einer Serie von Transformationen. Diese Klasse befindet sich im Paket snowflake.ml.modeling.pipeline und funktioniert genauso wie die Version von scikit-learn.

Bekannte Einschränkungen

  • Die Schätzer und Transformer von Snowpark ML unterstützen derzeit weder spärliche Eingaben noch spärliche Antworten. Wenn Sie spärliche Daten haben, konvertieren Sie diese in ein dichtes Format, bevor Sie sie an die Schätzer oder Transformer von Snowpark ML übergeben.

  • Das Snowpark ML-Paket unterstützt derzeit noch keine Matrix-Datentypen. Jede Operation auf Schätzern und Transformern, die eine Matrix als Ergebnis liefern würde, schlägt fehl.

  • Es ist nicht garantiert, dass die Reihenfolge der Zeilen in den Ergebnisdaten mit der Reihenfolge der Zeilen in den Eingabedaten übereinstimmt.

Problembehandlung

Hinzufügen weiterer Details für die Protokollierung

Snowpark ML verwendet die Protokollierung von Snowpark Python. Standardmäßig protokolliert Snowpark ML Meldungen der INFO-Ebene in der Standardausgabe. Um detailliertere Protokolle zu erhalten, die Ihnen bei der Problembehandlung mit Snowpark ML helfen, können Sie den Protokolliergrad auf eine der unterstützten Stufen ändern.

DEBUG erzeugt Protokolle mit den meisten Details. So setzen Sie den Protokolliergrad auf DEBUG:

import logging, sys

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
Copy

Lösungen für häufige Probleme

Die folgende Tabelle enthält einige Vorschläge zur Lösung möglicher Probleme mit Snowflake ML Modeling.

Problem oder Fehlermeldung

Mögliche Ursache

Lösung

NameError, wie „Name x ist nicht definiert“, ImportError oder ModuleNotFoundError

Typografischer Fehler im Modul- oder Klassennamen, oder Snowpark ML ist nicht installiert

Den korrekten Namen des Moduls und der Klasse finden Sie in der Tabelle der Snowpark ML Modeling-Klassen. Stellen Sie sicher, dass das Snowpark ML-Modul installiert ist (siehe Installieren von Snowpark ML).

KeyError („not in index“ oder „none of [Index[..]] are in the [Spalten]“)

Inkorrekter Spaltenname

Überprüfen und korrigieren Sie den Spaltennamen.

SnowparkSQLException, „does not exist or not authorize“

Die Tabelle existiert nicht, oder Sie haben nicht die erforderlichen Berechtigungen für diese Tabelle.

Stellen Sie sicher, dass die Tabelle existiert und die Rolle des Benutzers die erforderlichen Berechtigungen hat.

SnowparkSQLException, „invalid identifier PETALLENGTH“

Inkorrekte Anzahl von Spalten (normalerweise eine fehlende Spalte).

Überprüfen Sie die Anzahl der Spalten, die Sie beim Erstellen der Modellklasse angegeben haben, und stellen Sie sicher, dass Sie die korrekte Anzahl übergeben.

InvalidParameterError

Es wurde ein ungeeigneter Typ oder Wert als Parameter übergeben.

Überprüfen Sie in einer interaktiven Python-Sitzung mit der Funktion help die Hilfe der Klasse oder Methode, und korrigieren Sie die Werte.

TypeError, „unexpected keyword argument“

Typographischer Fehler im benannten Argument

Überprüfen Sie in einer interaktiven Python-Sitzung mit der Funktion help die Hilfe der Klasse oder Methode, und korrigieren Sie den Argumentnamen.

ValueError, „array with 0 sample(s)“

Das Datenset, das Sie übergeben haben, ist leer.

Stellen Sie sicher, dass das Datenset nicht leer ist.

SnowparkSQLException, „authentication token has expired“

Die Sitzung ist abgelaufen.

Wenn Sie ein Jupyter-Notebook verwenden, starten Sie den Kernel neu, um eine neue Sitzung zu erstellen.

ValueError wie „cannot convert string to float“

Datentypen stimmen nicht überein.

Überprüfen Sie in einer interaktiven Python-Sitzung mit der Funktion help die Hilfe der Klasse oder Methode, und korrigieren Sie die Werte.

SnowparkSQLException, „cannot create temporary table“

Eine Modellklasse wird innerhalb einer gespeicherten Prozedur verwendet, die nicht mit Aufruferrechten ausgeführt wird.

Erstellen Sie die gespeicherte Prozedur mit Aufruferrechten statt mit Eigentümerrechten.

SnowparkSQLException, „function available memory exceeded“

Ihr Datenset ist größer als 5 GB in einem Standard-Warehouse.

Wechseln Sie zu einem Snowpark-optimierten Warehouse.

OSError, „no space left on device“

Ihr Modell ist größer als etwa 500 MB in einem Standard-Warehouse.

Wechseln Sie zu einem Snowpark-optimierten Warehouse.

Inkompatible xgboost-Version oder Fehler beim Importieren von xgboost

Sie haben für die Installation pip verwendet, das nicht gut mit Abhängigkeiten umgehen kann.

Führen Sie ein Upgrade oder Downgrade des Pakets durch, wie in der Fehlermeldung gefordert.

AttributeError mit to_sklearn, to_xgboost oder to_lightgbm

Sie versuchen, eine dieser Methoden auf ein Modell eines anderen Typs anzuwenden.

Verwenden Sie to_sklearn mit scikit-learn-basierten Modellen usw.

Weiterführende Informationen

In der Dokumentation der Originalbibliotheken finden Sie vollständige Informationen zu deren Funktionalität.

Quellenangabe

Einige Teile dieses Dokuments stammen aus der Scikit-learn-Dokumentation, die unter der BSD-3 „New“- oder „Revised“-Lizenz und Copyright © 2007-2023 The scikit-learn developers lizenziert ist. Alle Rechte vorbehalten.

Einige Teile dieses Dokuments stammen aus der XGboost-Dokumentation, die unter die Apache License 2.0, Januar 2004 und Copyright © 2019 fällt. Alle Rechte vorbehalten.

Einige Teile dieses Dokuments stammen aus der LightGBM-Dokumentation, die MIT-lizenziert ist und unter Copyright © Microsoft Corp. fällt. Alle Rechte vorbehalten.