Version 1.1#
Für eine kurze Beschreibung der wichtigsten Highlights des Releases verweisen wir auf Release Highlights für scikit-learn 1.1.
Legende für Changelogs
Hauptmerkmal etwas Großes, das Sie vorher nicht tun konnten.
Merkmal etwas, das Sie vorher nicht tun konnten.
Effizienz Ein bestehendes Merkmal erfordert nun möglicherweise weniger Rechenleistung oder Speicher.
Verbesserung eine sonstige kleinere Verbesserung.
Korrektur Etwas, das zuvor nicht wie dokumentiert – oder nach vernünftigen Erwartungen – funktionierte, sollte nun funktionieren.
API-Änderung Sie müssen Ihren Code ändern, um in Zukunft die gleiche Wirkung zu erzielen; oder ein Merkmal wird in Zukunft entfernt.
Version 1.1.3#
Oktober 2022
Dieses Bugfix-Release enthält nur Korrekturen zur Kompatibilität mit der neuesten SciPy-Version >= 1.9.2. Bemerkenswerte Änderungen sind
Fix `msvcp140.dll` in die scikit-learn Wheels einfügen, da es aus den neuesten SciPy Wheels entfernt wurde. #24631 von Chiara Marmo.
Enhancement Wheels für Python 3.11 erstellen. #24446 von Chiara Marmo.
Weitere Fehlerkorrekturen werden in der nächsten 1.2-Version verfügbar sein, die in den kommenden Wochen veröffentlicht wird.
Beachten Sie, dass die Unterstützung für 32-Bit-Python unter Windows in dieser Version eingestellt wurde. Dies liegt daran, dass SciPy 1.9.2 ebenfalls die Unterstützung für diese Plattform eingestellt hat. Windows-Benutzern wird empfohlen, stattdessen die 64-Bit-Version von Python zu installieren.
Version 1.1.2#
August 2022
Geänderte Modelle#
Die folgenden Schätzer und Funktionen können, wenn sie mit denselben Daten und Parametern angepasst werden, andere Modelle als in der vorherigen Version ergeben. Dies geschieht häufig aufgrund von Änderungen in der Modellierungslogik (Fehlerbehebungen oder Verbesserungen) oder in zufälligen Stichprobenverfahren.
Fix `manifold.TSNE` löst nun einen `ValueError` aus, wenn es mit `perplexity>=n_samples` gefittet wird, um die mathematische Korrektheit des Algorithmus zu gewährleisten. #10805 von Mathias Andersen und #23471 von Meekail Zain.
Änderungsprotokoll#
Fix Eine Standard-HTML-Darstellung wird für Meta-Estimators mit ungültigen Parametern angezeigt. #24015 von Thomas Fan.
Fix Unterstützung für F-kontinuierliche Arrays für Estimators und Funktionen, deren Backends in 1.1 geändert wurden. #23990 von Julien Jerphanion.
Fix Wheels sind nun für MacOS 10.9 und höher verfügbar. #23833 von Thomas Fan.
sklearn.base#
Fix Die Methode `get_params` der Klasse `base.BaseEstimator` unterstützt nun Estimators mit Parametern vom Typ `type`, die die Methode `get_params` haben. #24017 von Henry Sorsky.
sklearn.cluster#
Fix Ein Fehler in `cluster.Birch`, der einen Fehler auslösen konnte, wenn ein Knoten aufgeteilt wird und Duplikate im Datensatz vorhanden sind, wurde behoben. #23395 von Jérémie du Boisberranger.
sklearn.feature_selection#
Fix `feature_selection.SelectFromModel` wählt standardmäßig den Schwellenwert 1e-5, wenn der Estimator entweder `linear_model.ElasticNet` oder `linear_model.ElasticNetCV` mit `l1_ratio` gleich 1 oder `linear_model.LassoCV` ist. #23636 von Hao Chun Chang.
sklearn.impute#
Fix `impute.SimpleImputer` verwendet den beim `fit` gesehenen `dtype` für `transform`, wenn der `dtype` object ist. #22063 von Thomas Fan.
sklearn.linear_model#
Fix Dtype-bewusste Toleranzen für die Validierung von Gram-Matrizen (vom Benutzer übergeben oder vorab berechnet) verwenden. #22059 von Malte S. Kurz.
Fix Ein Fehler in `linear_model.LogisticRegression` mit `solver="newton-cg"`, `fit_intercept=True` und einem einzelnen Feature wurde behoben. #23608 von Tom Dupre la Tour.
sklearn.manifold#
Fix `manifold.TSNE` löst nun einen `ValueError` aus, wenn es mit `perplexity>=n_samples` gefittet wird, um die mathematische Korrektheit des Algorithmus zu gewährleisten. #10805 von Mathias Andersen und #23471 von Meekail Zain.
sklearn.metrics#
Fix Fehlermeldung von `metrics.coverage_error` für 1D-Array-Input behoben. #23548 von Hao Chun Chang.
sklearn.preprocessing#
Fix `preprocessing.OrdinalEncoder.inverse_transform` behandelt Fälle, in denen `unknown_value` oder `encoded_missing_value` `nan` ist, korrekt. #24087 von Thomas Fan.
sklearn.tree#
Fix Ein Fehler mit ungültigem Speicherzugriff während des `fit` in `tree.DecisionTreeRegressor` und `tree.DecisionTreeClassifier` wurde behoben. #23273 von Thomas Fan.
Version 1.1.1#
Mai 2022
Änderungsprotokoll#
Enhancement Die Fehlermeldung wird verbessert, wenn `model_selection.HalvingGridSearchCV`, `model_selection.HalvingRandomSearchCV` oder `impute.IterativeImputer` ohne den experimentellen Flag importiert werden. #23194 von Thomas Fan.
Enhancement Eine Erweiterung in doc/conf.py wurde hinzugefügt, um automatisch die Liste der Estimators zu generieren, die NaN-Werte verarbeiten. #23198 von Lise Kleiber, Zhehao Liu und Chiara Marmo.
sklearn.datasets#
Fix Timeouts in `datasets.fetch_openml` werden vermieden, indem kein `timeout`-Argument übergeben wird. #23358 von Loïc Estève.
sklearn.decomposition#
sklearn.feature_selection#
sklearn.metrics#
Fix `metrics.precision_recall_curve` wird nun so korrigiert, dass die Precision-Recall bei 100% Recall berechnet wird. Die Precision-Recall-Kurve zeigt nun den letzten Punkt an, der einem Klassifikator entspricht, der immer die positive Klasse vorhersagt: Recall=100% und Precision=Klassenbalance. #23214 von Stéphane Collot und Max Baak.
sklearn.preprocessing#
Fix `preprocessing.PolynomialFeatures` mit `degree` gleich 0 löst einen Fehler aus, wenn `include_bias` auf `False` gesetzt ist, und gibt ein einzelnes konstantes Array aus, wenn `include_bias` auf `True` gesetzt ist. #23370 von Zhehao Liu.
sklearn.tree#
Fix Eine Performance-Regression bei Merkmalen mit geringer Kardinalität für `tree.DecisionTreeClassifier`, `tree.DecisionTreeRegressor`, `ensemble.RandomForestClassifier`, `ensemble.RandomForestRegressor`, `ensemble.GradientBoostingClassifier` und `ensemble.GradientBoostingRegressor` wurde behoben. #23410 von Loïc Estève.
sklearn.utils#
Version 1.1.0#
Mai 2022
Minimale Abhängigkeiten#
Version 1.1.0 von scikit-learn erfordert Python 3.8+, NumPy 1.17.3+ und SciPy 1.3.2+. Optionale minimale Abhängigkeit ist Matplotlib 3.1.2+.
Geänderte Modelle#
Die folgenden Schätzer und Funktionen können, wenn sie mit denselben Daten und Parametern angepasst werden, andere Modelle als in der vorherigen Version ergeben. Dies geschieht häufig aufgrund von Änderungen in der Modellierungslogik (Fehlerbehebungen oder Verbesserungen) oder in zufälligen Stichprobenverfahren.
Efficiency `cluster.KMeans` verwendet nun standardmäßig `algorithm="lloyd"` anstelle von `algorithm="auto"`, was äquivalent zu `algorithm="elkan"` war. Lloyd's Algorithmus und Elkan's Algorithmus konvergieren zum selben Ergebnis, abgesehen von numerischen Rundungsfehlern, aber im Allgemeinen benötigt Lloyd's Algorithmus viel weniger Speicher und ist oft schneller.
Efficiency Das Fitten von `tree.DecisionTreeClassifier`, `tree.DecisionTreeRegressor`, `ensemble.RandomForestClassifier`, `ensemble.RandomForestRegressor`, `ensemble.GradientBoostingClassifier` und `ensemble.GradientBoostingRegressor` ist dank eines neuen Sortieralgorithmus zur Ermittlung der besten Teilung im Durchschnitt 15% schneller als in früheren Versionen. Modelle können sich aufgrund einer anderen Handhabung von Teilungen mit gleichwertigen Kriteriumswerten unterscheiden: Sowohl der alte als auch der neue Sortieralgorithmus sind instabile Sortieralgorithmen. #22868 von Thomas Fan.
Fix Die Eigenvektor-Initialisierung für `cluster.SpectralClustering` und `manifold.SpectralEmbedding` sampliert nun aus einer Gauß-Verteilung, wenn der Solver `'amg'` oder `'lobpcg'` verwendet wird. Diese Änderung verbessert die numerische Stabilität des Solvers, kann aber zu einem anderen Modell führen.
Fix `feature_selection.f_regression` und `feature_selection.r_regression` geben nun standardmäßig einen endlichen Score zurück anstelle von `np.nan` und `np.inf` für einige Eckfälle. Sie können `force_finite=False` verwenden, wenn Sie wirklich nicht-endliche Werte erhalten und das alte Verhalten beibehalten möchten.
Fix Pandas DataFrames mit nur Nicht-String-Spalten, wie z. B. ein MultiIndex, geben keine Warnung mehr aus, wenn sie in einen Estimator übergeben werden. Estimators ignorieren weiterhin die Spaltennamen in DataFrames mit Nicht-String-Spalten. Damit `feature_names_in_` definiert ist, müssen alle Spalten Strings sein. #22410 von Thomas Fan.
Fix `preprocessing.KBinsDiscretizer` hat die Handhabung von Bin-Grenzen geringfügig geändert, was zu einer anderen Kodierung mit denselben Daten führen kann.
Fix `calibration.calibration_curve` hat die Handhabung von Bin-Grenzen geringfügig geändert, was zu einer anderen Kurve bei denselben Daten führen kann.
Fix `discriminant_analysis.LinearDiscriminantAnalysis` verwendet nun den korrekten Varianzskalierungskoeffizienten, was zu einem anderen Modellverhalten führen kann.
Fix `feature_selection.SelectFromModel.fit` und `feature_selection.SelectFromModel.partial_fit` können nun mit `prefit=True` aufgerufen werden. `estimators_` wird eine tiefe Kopie von `estimator` sein, wenn `prefit=True` gesetzt ist. #23271 von Guillaume Lemaitre.
Changelog#
Efficiency Low-level Routinen für Reduktionen auf paarweisen Distanzen für dichte float64 Datensätze wurden refaktoriert. Die folgenden Funktionen und Estimators profitieren nun von verbesserten Leistungen in Bezug auf Hardware-Skalierbarkeit und Beschleunigung.
Beispielsweise können `sklearn.neighbors.NearestNeighbors.kneighbors` und `sklearn.neighbors.NearestNeighbors.radius_neighbors` auf einem Laptop bis zu 20-mal bzw. 5-mal schneller sein als zuvor.
Darüber hinaus sind die Implementierungen dieser beiden Algorithmen nun für Maschinen mit vielen Kernen geeignet, wodurch sie für Datensätze mit Millionen von Stichproben nutzbar sind.
#21987, #22064, #22065, #22288 und #22320 von Julien Jerphanion.
Enhancement Alle scikit-learn Modelle generieren nun eine informativere Fehlermeldung, wenn die Eingabe unerwartete `NaN`- oder unendliche Werte enthält. Insbesondere die Meldung enthält den Namen der Eingabe ("X", "y" oder "sample_weight") und wenn ein unerwarteter `NaN`-Wert in `X` gefunden wird, schlägt die Fehlermeldung mögliche Lösungen vor. #21219 von Olivier Grisel.
Enhancement Alle scikit-learn Modelle generieren nun eine informativere Fehlermeldung, wenn ungültige Hyperparameter mit `set_params` gesetzt werden. #21542 von Olivier Grisel.
Enhancement Zufällige eindeutige Identifikatoren in der HTML-Darstellung wurden entfernt. Mit dieser Änderung sind Jupyter Notebooks reproduzierbar, solange die Zellen in der gleichen Reihenfolge ausgeführt werden. #23098 von Thomas Fan.
Fix Estimators mit dem Tag `non_deterministic`, der auf `True` gesetzt ist, überspringen sowohl die Tests `check_methods_sample_order_invariance` als auch `check_methods_subset_invariance`. #22318 von Zhehao Liu.
API Change Die Option zur Verwendung des Log-Loss, auch bekannt als binomiale oder multinomielle Devianz, über den `loss`-Parameter wurde konsistenter gestaltet. Der bevorzugte Weg ist, den Wert auf `"log_loss"` zu setzen. Alte Optionsnamen sind weiterhin gültig und erzeugen die gleichen Modelle, sind aber veraltet und werden in Version 1.3 entfernt.
Für `ensemble.GradientBoostingClassifier` ist der Parametername `loss` "deviance" veraltet zugunsten des neuen Namens "log_loss", der nun der Standard ist. #23036 von Christian Lorentzen.
Für `ensemble.HistGradientBoostingClassifier` sind die Parameternamen `loss` "auto", "binary_crossentropy" und "categorical_crossentropy" veraltet zugunsten des neuen Namens "log_loss", der nun der Standard ist. #23040 von Christian Lorentzen.
Für `linear_model.SGDClassifier` ist der Parametername `loss` "log" veraltet zugunsten des neuen Namens "log_loss". #23046 von Christian Lorentzen.
API Change Die Rich-HTML-Darstellung von Estimators ist nun standardmäßig in Jupyter Notebooks aktiviert. Sie kann durch Setzen von `display='text'` in `sklearn.set_config` deaktiviert werden. #22856 von Jérémie du Boisberranger.
sklearn.calibration#
Enhancement `calibration.calibration_curve` akzeptiert einen Parameter `pos_label`, um die positive Klassenbezeichnung anzugeben. #21032 von Guillaume Lemaitre.
Enhancement `calibration.CalibratedClassifierCV.fit` unterstützt nun das Übergeben von `fit_params`, die an den `base_estimator` weitergeleitet werden. #18170 von Benjamin Bossan.
Enhancement `calibration.CalibrationDisplay` akzeptiert einen Parameter `pos_label`, um diese Information dem Plot hinzuzufügen. #21038 von Guillaume Lemaitre.
Fix `calibration.calibration_curve` behandelt Bin-Grenzen nun konsistenter. #14975 von Andreas Müller und #22526 von Meekail Zain.
API Change Der Parameter `normalize` von `calibration.calibration_curve` ist nun veraltet und wird in Version 1.3 entfernt. Es wird empfohlen, eine korrekte Wahrscheinlichkeit (d. h. die `predict_proba`-positive Klasse eines Klassifikators) für `y_prob` zu verwenden. #23095 von Jordan Silke.
sklearn.cluster#
Major Feature `cluster.BisectingKMeans` führt den Bisecting K-Means-Algorithmus ein. #20031 von Michal Krawczyk, Tom Dupre la Tour und Jérémie du Boisberranger.
Enhancement `cluster.SpectralClustering` und `cluster.spectral_clustering` enthalten nun die neue Methode `'cluster_qr'`, die Stichproben im Einbettungsraum clustert, als Alternative zu den bestehenden Methoden `'kmeans'` und `'discrete'`. Weitere Details finden Sie unter `cluster.spectral_clustering`. #21148 von Andrew Knyazev.
Erweiterung Fügt get_feature_names_out zu
cluster.Birch,cluster.FeatureAgglomeration,cluster.KMeans,cluster.MiniBatchKMeanshinzu. #22255 von Thomas Fan.Erweiterung
cluster.SpectralClusteringlöst nun konsistente Fehlermeldungen aus, wenn ungültige Werte fürn_clusters,n_init,gamma,n_neighbors,eigen_toloderdegreeübergeben werden. #21881 von Hugo Vassard.Erweiterung
cluster.AffinityPropagationgibt nun Cluster-Zentren und Labels zurück, falls diese existieren, auch wenn das Modell nicht vollständig konvergiert ist. Bei der Rückgabe dieser potenziell degenerierten Cluster-Zentren und Labels wird eine neue Warnmeldung angezeigt. Wenn keine Cluster-Zentren konstruiert wurden, bleiben die Cluster-Zentren eine leere Liste, die Labels werden auf-1gesetzt und die ursprüngliche Warnmeldung wird angezeigt. #22217 von Meekail Zain.Effizienz In
cluster.KMeansist der Standardwert füralgorithmnun"lloyd", was dem vollständigen klassischen EM-artigen Algorithmus entspricht. Sowohl"auto"als auch"full"sind veraltet und werden in Version 1.3 entfernt. Sie sind nun Aliase für"lloyd". Der vorherige Standard war"auto", das auf Elkan's Algorithmus zurückgriff. Lloyd's Algorithmus benötigt weniger Speicher als Elkan's, ist bei vielen Datensätzen schneller und liefert identische Ergebnisse, daher die Änderung. #21735 von Aurélien Geron.Korrektur Der Parameter
initvoncluster.KMeansunterstützt nun korrekt Array-ähnliche Eingaben und NumPy-String-Skalare. #22154 von Thomas Fan.
sklearn.compose#
Korrektur
compose.ColumnTransformerentfernt nun Validierungsfehler aus den Methoden__init__undset_params. #22537 von iofall und Arisa Y..Korrektur Die Funktionalität get_feature_names_out in
compose.ColumnTransformerwar fehlerhaft, wenn Spalten mitslicespezifiziert wurden. Dies wird in #22775 und #22913 von randomgeek78 behoben. #22775 und #22913 von randomgeek78.
sklearn.covariance#
Korrektur
covariance.GraphicalLassoCVakzeptiert nun NumPy-Arrays für den Parameteralphas. #22493 von Guillaume Lemaitre.
sklearn.cross_decomposition#
Erweiterung Die Methode
inverse_transformvoncross_decomposition.PLSRegression,cross_decomposition.PLSCanonicalundcross_decomposition.CCAerlaubt nun die Rekonstruktion einesX-Ziels, wenn einY-Parameter gegeben ist. #19680 von Robin Thibaut.Erweiterung Fügt get_feature_names_out zu allen Transformer im Modul
cross_decompositionhinzu:cross_decomposition.CCA,cross_decomposition.PLSSVD,cross_decomposition.PLSRegressionundcross_decomposition.PLSCanonical. #22119 von Thomas Fan.Korrektur Die Form des Attributs coef_ von
cross_decomposition.CCA,cross_decomposition.PLSCanonicalundcross_decomposition.PLSRegressionändert sich in Version 1.3 von(n_features, n_targets)zu(n_targets, n_features), um konsistent mit anderen linearen Modellen zu sein und um mit Schnittstellen, die eine bestimmte Form fürcoef_erwarten (z.B.feature_selection.RFE), zu funktionieren. #22016 von Guillaume Lemaitre.API-Änderung Fügt das gefittete Attribut
intercept_zucross_decomposition.PLSCanonical,cross_decomposition.PLSRegressionundcross_decomposition.CCAhinzu. Die Methodepredictist äquivalent zuY = X @ coef_ + intercept_. #22015 von Guillaume Lemaitre.
sklearn.datasets#
Funktion
datasets.load_filesakzeptiert nun eine Ignorierliste und eine Zulassungsliste basierend auf Dateierweiterungen. #19747 von Tony Attalla und #22498 von Meekail Zain.Erweiterung
datasets.make_swiss_rollunterstützt nun das optionale Argument `hole`; wenn auf `True` gesetzt, gibt es den Swiss-Hole-Datensatz zurück. #21482 von Sebastian Pujalte.Erweiterung
datasets.make_blobskopiert während des Generierungsprozesses keine Daten mehr, wodurch weniger Speicher verbraucht wird. #22412 von Zhehao Liu.Erweiterung
datasets.load_diabetesakzeptiert nun den Parameterscaled, um das Laden unskalierter Daten zu ermöglichen. Die skalierte Version dieses Datensatzes wird nun aus den unskalierten Daten berechnet und kann leicht von früheren Versionen abweichen (innerhalb einer absoluten Toleranz von 1e-4). #16605 von Mandy Gu.Erweiterung
datasets.fetch_openmlverfügt nun über zwei optionale Argumenten_retriesunddelay. Standardmäßig wirddatasets.fetch_openmlim Falle eines Netzwerkfehlers dreimal mit einer Verzögerung zwischen den Versuchen wiederholt. #21901 von Rileran.Korrektur
datasets.fetch_covtypeist nun nebenläufigkeits-sicher: Daten werden in ein temporäres Verzeichnis heruntergeladen, bevor sie in das Datenverzeichnis verschoben werden. #23113 von Ilion Beyst.API-Änderung
datasets.make_sparse_coded_signalakzeptiert nun einen Parameterdata_transposed, um die Form der MatrixXexplizit anzugeben. Das StandardverhaltenTruegibt eine transponierte MatrixXzurück, die einer Form von(n_features, n_samples)entspricht. Der Standardwert wird in Version 1.3 zuFalsegeändert. #21425 von Gabriel Stefanini Vicente.
sklearn.decomposition#
Hauptfunktion Ein neuer Schätzer
decomposition.MiniBatchNMFwurde hinzugefügt. Es handelt sich um eine schnellere, aber weniger genaue Version der nicht-negativen Matrixfaktorisierung, die besser für große Datensätze geeignet ist. #16948 von Chiara Marmo, Patricio Cerda und Jérémie du Boisberranger.Erweiterung
decomposition.dict_learning,decomposition.dict_learning_onlineunddecomposition.sparse_encodebehalten den dtype fürnumpy.float32bei.decomposition.DictionaryLearning,decomposition.MiniBatchDictionaryLearningunddecomposition.SparseCoderbehalten den dtype fürnumpy.float32bei. #22002 von Takeshi Oura.Erweiterung
decomposition.PCAgibt den Parametern_oversamplesfrei, umutils.extmath.randomized_svdzu optimieren und genaue Ergebnisse zu erzielen, wenn die Anzahl der Merkmale groß ist. #21109 von Smile.Erweiterung
decomposition.MiniBatchDictionaryLearningunddecomposition.dict_learning_onlinewurden refaktoriert und haben nun ein Stoppkriterium basierend auf einer geringen Änderung des Wörterbuchs oder der Zielfunktion, gesteuert durch die neuen Parametermax_iter,tolundmax_no_improvement. Zusätzlich sind einige ihrer Parameter und Attribute veraltet.Der Parameter
n_itervon beiden ist veraltet. Verwenden Sie stattdessenmax_iter.Die Parameter
iter_offset,return_inner_stats,inner_statsundreturn_n_itervondecomposition.dict_learning_onlinedienen internen Zwecken und sind veraltet.Die Attribute
inner_stats_,iter_offset_undrandom_state_vondecomposition.MiniBatchDictionaryLearningdienen internen Zwecken und sind veraltet.Der Standardwert des Parameters
batch_sizevon beiden wird in Version 1.3 von 3 auf 256 geändert.
Erweiterung
decomposition.SparsePCAunddecomposition.MiniBatchSparsePCAbehalten den dtype fürnumpy.float32bei. #22111 von Takeshi Oura.Erweiterung
decomposition.TruncatedSVDerlaubt nunn_components == n_features, wennalgorithm='randomized'. #22181 von Zach Deane-Mayer.Erweiterung Fügt get_feature_names_out zu allen Transformer im Modul
decompositionhinzu:decomposition.DictionaryLearning,decomposition.FactorAnalysis,decomposition.FastICA,decomposition.IncrementalPCA,decomposition.KernelPCA,decomposition.LatentDirichletAllocation,decomposition.MiniBatchDictionaryLearning,decomposition.MiniBatchSparsePCA,decomposition.NMF,decomposition.PCA,decomposition.SparsePCAunddecomposition.TruncatedSVD. #21334 von Thomas Fan.Erweiterung
decomposition.TruncatedSVDgibt die Parametern_oversamplesundpower_iteration_normalizerfrei, umutils.extmath.randomized_svdzu optimieren und genaue Ergebnisse zu erzielen, wenn die Anzahl der Merkmale groß ist, der Rang der Matrix hoch ist oder andere Merkmale der Matrix eine niedrigrangige Approximation schwierig machen. #21705 von Jay S. Stanley III.Erweiterung
decomposition.PCAgibt den Parameterpower_iteration_normalizerfrei, umutils.extmath.randomized_svdzu optimieren und genauere Ergebnisse zu erzielen, wenn niedrigrangige Approximationen schwierig sind. #21705 von Jay S. Stanley III.Korrektur
decomposition.FastICAvalidiert nun Eingabeparameter infitanstatt in__init__. #21432 von Hannah Bohle und Maren Westermann.Korrektur
decomposition.FastICAakzeptiert nunnp.float32Daten ohne stille Aufwärtskonvertierung. Der dtype wird vonfitundfit_transformbeibehalten, und die wichtigsten gefitteten Attribute verwenden einen dtype mit derselben Präzision wie die Trainingsdaten. #22806 von Jihane Bennis und Olivier Grisel.Korrektur
decomposition.FactorAnalysisvalidiert nun Eingabeparameter infitanstatt in__init__. #21713 von Haya und Krum Arnaudov.Korrektur
decomposition.KernelPCAvalidiert nun Eingabeparameter infitanstatt in__init__. #21567 von Maggie Chege.Korrektur
decomposition.PCAunddecomposition.IncrementalPCAberechnen die Präzision sicherer durch die Inverse der Kovarianzmatrix, wennself.noise_variance_null ist. #22300 von Meekail Zain und #15948 von @sysuresh.Korrektur Der Spitzen-Speicherverbrauch bei
decomposition.PCAbeim Aufruf vonfitoderfit_transformwurde stark reduziert. #22553 von Meekail Zain.API-Änderung
decomposition.FastICAunterstützt nun Einheitsvarianz für das Whitening. Der Standardwert seines Argumentswhitenwird in Version 1.3 vonTrue(was wie'arbitrary-variance'funktioniert) zu'unit-variance'geändert. #19490 von Facundo Ferrin und Julien Jerphanion.
sklearn.discriminant_analysis#
Verbesserung Fügt get_feature_names_out zu
discriminant_analysis.LinearDiscriminantAnalysishinzu. #22120 von Thomas Fan.Korrektur
discriminant_analysis.LinearDiscriminantAnalysisverwendet nun den korrekten Varianz-Skalierungskoeffizienten, was zu einem anderen Modellverhalten führen kann. #15984 von Okon Samuel und #22696 von Meekail Zain.
sklearn.dummy#
Korrektur
dummy.DummyRegressorüberschreibt den Parameterconstantwährendfitnicht mehr. #22486 von Thomas Fan.
sklearn.ensemble#
Hauptfunktion Option
loss="quantile"wurde zuensemble.HistGradientBoostingRegressorfür die Modellierung von Quantilen hinzugefügt. Die Quantilstufe kann mit dem neuen Parameterquantileangegeben werden. #21800 und #20567 von Christian Lorentzen.Effizienz Das
fitvonensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressorruft nunutils.check_arraymit dem Parameterforce_all_finite=Falsefür nicht initiale Warm-Start-Durchläufe auf, da dies bereits zuvor geprüft wurde. #22159 von Geoffrey Paris.Verbesserung
ensemble.HistGradientBoostingClassifierist dank des neuen privaten Loss-Funktionsmoduls schneller, insbesondere für binäre und multiklasse Probleme. #20811, #20567 und #21814 von Christian Lorentzen.Verbesserung Fügt Unterstützung für die Verwendung von vortrainierten Modellen mit
cv="prefit"inensemble.StackingClassifierundensemble.StackingRegressorhinzu. #16748 von Siqi He und #22215 von Meekail Zain.Verbesserung
ensemble.RandomForestClassifierundensemble.ExtraTreesClassifierhaben das neuecriterion="log_loss", was äquivalent zucriterion="entropy"ist. #23047 von Christian Lorentzen.Verbesserung Fügt get_feature_names_out zu
ensemble.VotingClassifier,ensemble.VotingRegressor,ensemble.StackingClassifierundensemble.StackingRegressorhinzu. #22695 und #22697 von Thomas Fan.Verbesserung
ensemble.RandomTreesEmbeddinghat nun eine informative get_feature_names_out-Funktion, die sowohl den Baum-Index als auch den Blatt-Index in den Ausgabemerkmalsnamen enthält. #21762 von Zhehao Liu und Thomas Fan.Effizienz Das Anpassen von
ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifier,ensemble.ExtraTreesRegressorundensemble.RandomTreesEmbeddingist nun in einer Multiprocessing-Umgebung schneller, insbesondere bei nachfolgenden Fits mit aktiviertemwarm_start. #22106 von Pieter Gijsbers.Korrektur Der Parameter
validation_fractioninensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressorwurde geändert, sodass ein Fehler ausgelöst wird, wenn etwas anderes als ein Float als Argument übergeben wird. #21632 von Genesis Valencia.Korrektur Eine potenzielle Quelle für CPU-Überlastung in
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorwurde entfernt, wenn die CPU-Ressourcennutzung begrenzt ist, z.B. durch cgroups-Quoten in einem Docker-Container. #22566 von Jérémie du Boisberranger.Korrektur
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorgeben keine Warnungen mehr aus, wenn sie auf einem Pandas DataFrame mit einem nicht standardmäßigenscoring-Parameter und aktiviertemearly_stoppingtrainiert werden. #22908 von Thomas Fan.Korrektur HTML-Repräsentationen für
ensemble.StackingClassifierundensemble.StackingRegressorkorrigiert. #23097 von Thomas Fan.API-Änderung Das Attribut
loss_vonensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressorwurde als veraltet markiert und wird in Version 1.3 entfernt. #23079 von Christian Lorentzen.API-Änderung Der Standardwert von
max_featureswurde fürensemble.RandomForestRegressorauf 1.0 und fürensemble.RandomForestClassifierauf"sqrt"geändert. Beachten Sie, dass dies die gleichen Fit-Ergebnisse wie zuvor liefert, aber leichter verständlich ist. Der alte Standardwert"auto"wurde als veraltet markiert und wird in Version 1.3 entfernt. Die gleichen Änderungen werden auch fürensemble.ExtraTreesRegressorundensemble.ExtraTreesClassifierübernommen. #20803 von Brian Sun.Effizienz Laufzeitleistung von
ensemble.IsolationForestverbessert, indem wiederholte Eingabeprüfungen übersprungen werden. #23149 von Zhehao Liu.
sklearn.feature_extraction#
Funktion
feature_extraction.FeatureHasherunterstützt nun PyPy. #23023 von Thomas Fan.Korrektur
feature_extraction.FeatureHashervalidiert nun die Eingabeparameter intransformanstatt in__init__. #21573 von Hannah Bohle und Maren Westermann.Korrektur
feature_extraction.text.TfidfVectorizererstellt nun keinfeature_extraction.text.TfidfTransformerin__init__, wie es unsere API verlangt. #21832 von Guillaume Lemaitre.
sklearn.feature_selection#
Funktion Der automatische Modus wurde zu
feature_selection.SequentialFeatureSelectorhinzugefügt. Wenn das Argumentn_features_to_select'auto'ist, werden Merkmale ausgewählt, bis die Punktverbesserung das Argumenttolnicht überschreitet. Der Standardwert vonn_features_to_selecthat sich vonNonezu'warn'in 1.1 geändert und wird in 1.3 zu'auto'.Noneund'warn'werden in 1.3 entfernt. #20145 von murata-yu.Funktion Die Möglichkeit, Callables an den Parameter
max_featuresvonfeature_selection.SelectFromModelzu übergeben, wurde hinzugefügt. Außerdem wurde das neue Attributmax_features_eingeführt, das ausmax_featuresund den Daten währendfitabgeleitet wird. Wennmax_featureseine Ganzzahl ist, dann istmax_features_ = max_features. Wennmax_featuresein Callable ist, dann istmax_features_ = max_features(X). #22356 von Meekail Zain.Verbesserung
feature_selection.GenericUnivariateSelectbehält den Float32-Datentyp bei. #18482 von Thierry Gameiro und Daniel Kharsa und #22370 von Meekail Zain.Verbesserung Fügt den Parameter
force_finitezufeature_selection.f_regressionundfeature_selection.r_regressionhinzu. Dieser Parameter erlaubt es, die Ausgabe endlich zu erzwingen, falls ein Merkmal oder das Ziel konstant ist oder das Merkmal und das Ziel perfekt korreliert sind (nur für die F-Statistik). #17819 von Juan Carlos Alfaro Jiménez.Effizienz Laufzeitleistung von
feature_selection.chi2mit Booleschen Arrays verbessert. #22235 von Thomas Fan.Effizienz Speicherverbrauch von
feature_selection.chi2reduziert. #21837 von Louis Wagner.
sklearn.gaussian_process#
Korrektur Die Methoden
predictundsample_yvongaussian_process.GaussianProcessRegressorgeben nun Arrays der korrekten Form für Ein- und Mehrziel-Fälle sowie fürnormalize_y=Falseundnormalize_y=Truezurück. #22199 von Guillaume Lemaitre, Aidar Shakerimoff und Tenavi Nakamura-Zimmerer.Korrektur
gaussian_process.GaussianProcessClassifierlöst einen informativeren Fehler aus, wennCompoundKernelüberkernelübergeben wird. #22223 von MarcoM.
sklearn.impute#
Verbesserung
impute.SimpleImputergibt nun mit Merkmalsnamen eine Warnung aus, wenn Merkmale übersprungen werden, da im Trainingsdatensatz keine beobachteten Werte vorhanden sind. #21617 von Christian Ritter.Verbesserung Unterstützung für
pd.NAinimpute.SimpleImputerhinzugefügt. #21114 von Ying Xiong.Verbesserung Fügt get_feature_names_out zu
impute.SimpleImputer,impute.KNNImputer,impute.IterativeImputerundimpute.MissingIndicatorhinzu. #21078 von Thomas Fan.API-Änderung Der Parameter
verbosewurde fürimpute.SimpleImputerals veraltet markiert. Eine Warnung wird immer ausgegeben, wenn leere Spalten entfernt werden. #21448 von Oleh Kozynets und Christian Ritter.
sklearn.inspection#
Funktion Ein Diagramm zur Darstellung der Entscheidungsgrenze eines Klassifikators durch Verwendung der Methode
inspection.DecisionBoundaryDisplay.from_estimatorhinzugefügt. #16061 von Thomas Fan.Verbesserung In
inspection.PartialDependenceDisplay.from_estimatordarfkindeine Liste von Strings akzeptieren, um anzugeben, welcher Diagrammtyp für jede Merkmalsinteraktion gezeichnet werden soll. #19438 von Guillaume Lemaitre.Verbesserung
inspection.PartialDependenceDisplay.from_estimator,inspection.PartialDependenceDisplay.plotundinspection.plot_partial_dependenceunterstützen nun das Zeichnen von zentrierten Individual Conditional Expectation (cICE)- und zentrierten PDP-Kurven, gesteuert durch Setzen des Parameterscentered. #18310 von Johannes Elfner und Guillaume Lemaitre.
sklearn.isotonic#
Verbesserung Fügt get_feature_names_out zu
isotonic.IsotonicRegressionhinzu. #22249 von Thomas Fan.
sklearn.kernel_approximation#
sklearn.linear_model#
Funktion
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lassoundlinear_model.LassoCVunterstützensample_weightfür spärliche EingabenX. #22808 von Christian Lorentzen.Funktion
linear_model.Ridgemitsolver="lsqr"unterstützt nun das Anpassen spärlicher Eingaben mitfit_intercept=True. #22950 von Christian Lorentzen.Verbesserung
linear_model.QuantileRegressorunterstützt spärliche Eingaben für die Highs-basierten Löser. #21086 von Venkatachalam Natchiappan. Zusätzlich verwenden diese Löser nun von Anfang an die CSC-Matrix, was das Anpassen beschleunigt. #22206 von Christian Lorentzen.Verbesserung
linear_model.LogisticRegressionist schneller fürsolvers="lbfgs"undsolver="newton-cg", für binäre und insbesondere für Multiklassenprobleme dank der neuen privaten Verlustfunktionsmodule. Im Multiklassenfall wurde auch der Speicherverbrauch für diese Löser reduziert, da das Ziel nun Label-kodiert (auf ganze Zahlen abgebildet) anstatt Label-binarisiert (One-Hot-kodiert) ist. Je mehr Klassen, desto größer der Vorteil. #21808, #20567 und #21814 von Christian Lorentzen.Verbesserung
linear_model.GammaRegressor,linear_model.PoissonRegressorundlinear_model.TweedieRegressorsind schneller fürsolvers="lbfgs". #22548, #21808 und #20567 von Christian Lorentzen.Verbesserung Umbenennung des Parameters
base_estimatorzuestimatorinlinear_model.RANSACRegressorzur Verbesserung der Lesbarkeit und Konsistenz.base_estimatorist veraltet und wird in Version 1.3 entfernt. #22062 von Adrian Trujillo.Verbesserung
linear_model.ElasticNetund andere lineare Modellklassen, die Coordinate Descent verwenden, zeigen Fehlermeldungen, wenn nicht-endliche Parametergewichte erzeugt werden. #22148 von Christian Ritter und Norbert Preining.Verbesserung
linear_model.ElasticNetundlinear_model.Lassogeben nun konsistente Fehlermeldungen aus, wenn ungültige Werte fürl1_ratio,alpha,max_iterundtolübergeben werden. #22240 von Arturo Amor.Verbesserung
linear_model.BayesianRidgeundlinear_model.ARDRegressionbehalten nun den float32 dtype. #9087 von Arthur Imbert und #22525 von Meekail Zain.Verbesserung
linear_model.RidgeClassifierunterstützt nun Multilabel-Klassifizierung. #19689 von Guillaume Lemaitre.Verbesserung
linear_model.RidgeCVundlinear_model.RidgeClassifierCVgeben nun eine konsistente Fehlermeldung aus, wenn ungültige Werte füralphasübergeben werden. #21606 von Arturo Amor.Verbesserung
linear_model.Ridgeundlinear_model.RidgeClassifiergeben nun eine konsistente Fehlermeldung aus, wenn ungültige Werte füralpha,max_iterundtolübergeben werden. #21341 von Arturo Amor.Verbesserung
linear_model.orthogonal_mp_grambehält den dtype fürnumpy.float32. #22002 von Takeshi Oura.Korrektur
linear_model.LassoLarsICberechnet nun korrekt AIC und BIC. Es wird nun ein Fehler ausgelöst, wennn_features > n_samplesund die Rauschvarianz nicht angegeben ist. #21481 von Guillaume Lemaitre und Andrés Babino.Korrektur
linear_model.TheilSenRegressorvalidiert nun den Eingabeparametermax_subpopulationinfitanstatt in__init__. #21767 von Maren Westermann.Korrektur
linear_model.ElasticNetCVgibt nun eine korrekte Warnung aus, wennl1_ratio=0ist. #21724 von Yar Khine Phyo.Korrektur
linear_model.LogisticRegressionundlinear_model.LogisticRegressionCVsetzen nun das Attributn_iter_mit einer Form, die der Dokumentation entspricht und konsistent mit der Form ist, die bei Verwendung der anderen Löser im One-vs-Rest-Setting erhalten wird. Zuvor wurde nur das Maximum der Iterationszahl für jedes binäre Teilproblem aufgezeichnet, nun werden alle aufgezeichnet. #21998 von Olivier Grisel.Korrektur Die Eigenschaft
familyvonlinear_model.TweedieRegressorwird nicht mehr in__init__validiert. Stattdessen ist diese (private) Eigenschaft inlinear_model.GammaRegressor,linear_model.PoissonRegressorundlinear_model.TweedieRegressorveraltet und wird in Version 1.3 entfernt. #22548 von Christian Lorentzen.Korrektur Die Attribute
coef_undintercept_vonlinear_model.LinearRegressionwerden nun korrekt berechnet, wenn Stichprobengewichte vorhanden sind und die Eingabe spärlich ist. #22891 von Jérémie du Boisberranger.Korrektur Die Attribute
coef_undintercept_vonlinear_model.Ridgemitsolver="sparse_cg"undsolver="lbfgs"werden nun korrekt berechnet, wenn Stichprobengewichte vorhanden sind und die Eingabe spärlich ist. #22899 von Jérémie du Boisberranger.Korrektur
linear_model.SGDRegressorundlinear_model.SGDClassifierberechnen nun den Validierungsfehler korrekt, wenn Early Stopping aktiviert ist. #23256 von Zhehao Liu.API-Änderung
linear_model.LassoLarsICmacht nunnoise_varianceals Parameter verfügbar, um eine Schätzung der Rauschvarianz bereitzustellen. Dies ist besonders relevant, wennn_features > n_samplesund der Schätzer der Rauschvarianz nicht berechnet werden kann. #21481 von Guillaume Lemaitre.
sklearn.manifold#
Funktion
manifold.Isomapunterstützt nun nachbarschaftsbasierten Radius über das Argumentradius. #19794 von Zhehao Liu.Verbesserung
manifold.spectral_embeddingundmanifold.SpectralEmbeddingunterstützennp.float32dtype und behalten diesen dtype bei. #21534 von Andrew Knyazev.Verbesserung Fügt get_feature_names_out zu
manifold.Isomapundmanifold.LocallyLinearEmbeddinghinzu. #22254 von Thomas Fan.Verbesserung
metric_paramszum Konstruktor vonmanifold.TSNEfür zusätzliche Parameter der Distanzmetrik zur Verwendung bei der Optimierung hinzugefügt. #21805 von Jeanne Dionisi und #22685 von Meekail Zain.Verbesserung
manifold.trustworthinesslöst einen Fehler aus, wennn_neighbours >= n_samples / 2, um eine korrekte Unterstützung für die Funktion sicherzustellen. #18832 von Hong Shao Yang und #23033 von Meekail Zain.Korrektur
manifold.spectral_embeddingverwendet nun Gaußsche statt der vorherigen gleichmäßigen Verteilung auf [0, 1] zufälliger Anfangsannäherungen an Eigenvektoren in den Eigenlösungsalgorithmenlobpcgundamg, um deren numerische Stabilität zu verbessern. #21565 von Andrew Knyazev.
sklearn.metrics#
Funktion
metrics.r2_scoreundmetrics.explained_variance_scorehaben einen neuen Parameterforce_finite. Wenn dieser Parameter aufFalsegesetzt wird, wird der tatsächliche nicht-endliche Score im Falle von perfekten Vorhersagen oder konstantemy_truezurückgegeben, anstatt der endlichen Annäherung (1.0bzw.0.0), die standardmäßig zurückgegeben wird. #17266 von Sylvain Marié.Funktion
metrics.d2_pinball_scoreundmetrics.d2_absolute_error_scoreberechnen den \(D^2\)-Regressions-Score für den Pinball-Verlust bzw. den absoluten Fehler.metrics.d2_absolute_error_scoreist ein Sonderfall vonmetrics.d2_pinball_scoremit einem festen Quantilparameteralpha=0.5zur einfacheren Verwendung und Auffindbarkeit. Die \(D^2\)-Scores sind Verallgemeinerungen desr2_scoreund können als der Anteil der erklärten Abweichung interpretiert werden. #22118 von Ohad Michel.Verbesserung
metrics.top_k_accuracy_scoregibt eine verbesserte Fehlermeldung aus, wenny_truebinär ist undy_score2D ist. #22284 von Thomas Fan.Verbesserung
metrics.roc_auc_scoreunterstützt nunaverage=Noneim Multiklassenfall, wennmulticlass='ovr'ist, was den Score pro Klasse zurückgibt. #19158 von Nicki Skafte.Verbesserung Fügt den Parameter
im_kwzumetrics.ConfusionMatrixDisplay.from_estimatormetrics.ConfusionMatrixDisplay.from_predictionsundmetrics.ConfusionMatrixDisplay.plothinzu. Der Parameterim_kwwird beim Plotten der Konfusionsmatrix an den Aufrufmatplotlib.pyplot.imshowübergeben. #20753 von Thomas Fan.Korrektur
metrics.silhouette_scoreunterstützt nun Ganzzahl-Eingaben für vorab berechnete Distanzen. #22108 von Thomas Fan.Korrektur Behebung eines Fehlers in
metrics.normalized_mutual_info_score, der unbegrenzte Werte zurückgeben konnte. #22635 von Jérémie du Boisberranger.Korrektur Korrekturen für
metrics.precision_recall_curveundmetrics.average_precision_score, wenn die wahren Labels alle negativ sind. #19085 von Varun Agrawal.API-Änderung
metrics.SCORERSist nun veraltet und wird in Version 1.3 entfernt. Verwenden Sie stattdessenmetrics.get_scorer_names, um die Namen aller verfügbaren Scorer abzurufen. #22866 von Adrin Jalali.API-Änderung Die Parameter
sample_weightundmultioutputvonmetrics.mean_absolute_percentage_errorsind nun gemäß SLEP009 nur noch als Schlüsselwortargumente zulässig. Ein Deprecationszyklus wurde eingeführt. #21576 von Paul-Emile Dugnat.API-Änderung Die Metrik
"wminkowski"vonmetrics.DistanceMetricist veraltet und wird in Version 1.3 entfernt. Stattdessen nimmt die bestehende"minkowski"-Metrik nun einen optionalenw-Parameter für Gewichte entgegen. Diese Deprecations zielt darauf ab, konsistent mit der SciPy 1.8-Konvention zu bleiben. #21873 von Yar Khine Phyo.API-Änderung
metrics.DistanceMetricwurde vonsklearn.neighborsnachsklearn.metricsverschoben. Die Verwendung vonneighbors.DistanceMetricfür Importe ist aus Gründen der Abwärtskompatibilität weiterhin gültig, aber dieser Alias wird in Version 1.3 entfernt. #21177 von Julien Jerphanion.
sklearn.mixture#
Enhancement
mixture.GaussianMixtureundmixture.BayesianGaussianMixturekönnen nun mit k-means++ und zufälligen Datenpunkten initialisiert werden. #20408 von Gordon Walsh, Alberto Ceballos und Andres Rios.Fix Behebt einen Fehler, der
precisions_cholesky_inmixture.GaussianMixturekorrekt initialisiert, wennprecisions_initangegeben wird, indem die Quadratwurzel davon genommen wird. #22058 von Guillaume Lemaitre.Fix
mixture.GaussianMixturenormalisiert nunweights_sicherer, was Rundungsfehler verhindert, wennmixture.GaussianMixture.samplemitn_components=1aufgerufen wird. #23034 von Meekail Zain.
sklearn.model_selection#
Enhancement Es ist nun möglich,
scoring="matthews_corrcoef"an alle Modellwerkzeuge mit einemscoring-Argument zu übergeben, um den Matthews-Korrelationskoeffizienten (MCC) zu verwenden. #22203 von Olivier Grisel.Enhancement Es wird ein Fehler während der Kreuzvalidierung ausgelöst, wenn die Fits für alle Splits fehlgeschlagen sind. Ebenso wird ein Fehler während der Grid-Suche ausgelöst, wenn die Fits für alle Modelle und alle Splits fehlgeschlagen sind. #21026 von Loïc Estève.
Fix
model_selection.GridSearchCVundmodel_selection.HalvingGridSearchCVvalidieren nun Eingabeparameter infitanstatt in__init__. #21880 von Mrinal Tyagi.Fix
model_selection.learning_curveunterstützt nunpartial_fitmit Regressoren. #22982 von Thomas Fan.
sklearn.multiclass#
Enhancement
multiclass.OneVsRestClassifierunterstützt nun einenverbose-Parameter, um den Fortschritt beim Anpassen anzuzeigen. #22508 von Chris Combs.Fix
multiclass.OneVsOneClassifier.predictgibt korrekte Vorhersagen zurück, wenn der innere Klassifikator nur eine predict_proba hat. #22604 von Thomas Fan.
sklearn.neighbors#
Enhancement Fügt get_feature_names_out zu
neighbors.RadiusNeighborsTransformer,neighbors.KNeighborsTransformerundneighbors.NeighborhoodComponentsAnalysishinzu. #22212 von Meekail Zain.Fix
neighbors.KernelDensityvalidiert nun Eingabeparameter infitanstatt in__init__. #21430 von Desislava Vasileva und Lucy Jimenez.Fix
neighbors.KNeighborsRegressor.predictfunktioniert nun ordnungsgemäß, wenn ein Array-ähnlicher Input übergeben wird, wennKNeighborsRegressorzuerst mit einer aufrufbaren Funktion für denweights-Parameter konstruiert wurde. #22687 von Meekail Zain.
sklearn.neural_network#
Enhancement
neural_network.MLPClassifierundneural_network.MLPRegressorzeigen Fehlermeldungen an, wenn Optimierer nicht-endliche Parametergewichte produzieren. #22150 von Christian Ritter und Norbert Preining.Enhancement Fügt get_feature_names_out zu
neural_network.BernoulliRBMhinzu. #22248 von Thomas Fan.
sklearn.pipeline#
Enhancement Unterstützt nun "passthrough" in
pipeline.FeatureUnion. Wenn ein Transformer auf "passthrough" gesetzt wird, werden die Features unverändert übergeben. #20860 von Shubhraneel Pal.Fix
pipeline.Pipelinevalidiert nun keine Hyperparameter mehr in__init__, sondern in.fit(). #21888 von iofall und Arisa Y..Fix
pipeline.FeatureUnionvalidiert keine Hyperparameter in__init__. Die Validierung wird nun in.fit()und.fit_transform()durchgeführt. #21954 von iofall und Arisa Y..Fix Definiert
__sklearn_is_fitted__inpipeline.FeatureUnion, um korrekte Ergebnisse mitutils.validation.check_is_fittedzu liefern. #22953 von randomgeek78.
sklearn.preprocessing#
Feature
preprocessing.OneHotEncoderunterstützt nun das Gruppieren von seltenen Kategorien zu einer einzigen Spalte. Das Gruppieren seltener Kategorien wird durch die Angabe, wie seltene Kategorien ausgewählt werden sollen, mitmin_frequencyodermax_categoriesaktiviert. #16018 von Thomas Fan.Enhancement Fügt einen
subsample-Parameter zupreprocessing.KBinsDiscretizerhinzu. Dies ermöglicht die Angabe einer maximalen Anzahl von Stichproben, die bei der Anpassung des Modells verwendet werden sollen. Die Option ist nur verfügbar, wennstrategyaufquantilegesetzt ist. #21445 von Felipe Bidu und Amanda Dsouza.Enhancement Fügt
encoded_missing_valuezupreprocessing.OrdinalEncoderhinzu, um den kodierten Wert für fehlende Daten zu konfigurieren. #21988 von Thomas Fan.Enhancement Fügt die Methode
get_feature_names_outund einen neuen Parameterfeature_names_outzupreprocessing.FunctionTransformerhinzu. Sie könnenfeature_names_outauf 'one-to-one' setzen, um die Eingabefeature-Namen als Ausgabefeature-Namen zu verwenden, oder Sie können es auf einen Aufrufbaren setzen, der die Ausgabefeature-Namen zurückgibt. Dies ist besonders nützlich, wenn der Transformer die Anzahl der Features ändert. Wennfeature_names_outNone ist (was der Standard ist), dann istget_output_feature_namesnicht definiert. #21569 von Aurélien Geron.Enhancement Fügt get_feature_names_out zu
preprocessing.Normalizer,preprocessing.KernelCenterer,preprocessing.OrdinalEncoderundpreprocessing.Binarizerhinzu. #21079 von Thomas Fan.Fix
preprocessing.PowerTransformermitmethod='yeo-johnson'unterstützt stark nicht-gaußsche Daten besser bei der Suche nach einem optimalen Lambda. #20653 von Thomas Fan.Fix
preprocessing.LabelBinarizervalidiert nun Eingabeparameter infitanstatt in__init__. #21434 von Krum Arnaudov.Fix
preprocessing.FunctionTransformermitcheck_inverse=Truegibt nun eine informative Fehlermeldung aus, wenn die Eingabe gemischte Datentypen aufweist. #19916 von Zhehao Liu.Fix
preprocessing.KBinsDiscretizerbehandelt Bin-Kanten nun konsistenter. #14975 von Andreas Müller und #22526 von Meekail Zain.Fix Fügt
preprocessing.KBinsDiscretizer.get_feature_names_out-Unterstützung hinzu, wennencode="ordinal"ist. #22735 von Thomas Fan.
sklearn.random_projection#
Enhancement Fügt eine Methode
inverse_transformund einen Parametercompute_inverse_transformzurandom_projection.GaussianRandomProjectionundrandom_projection.SparseRandomProjectionhinzu. Wenn der Parameter auf True gesetzt ist, wird die Pseudoinverse der Komponenten währendfitberechnet und alsinverse_components_gespeichert. #21701 von Aurélien Geron.Enhancement
random_projection.SparseRandomProjectionundrandom_projection.GaussianRandomProjectionerhalten den Datentyp fürnumpy.float32. #22114 von Takeshi Oura.Enhancement Fügt get_feature_names_out zu allen Transformer im Modul
sklearn.random_projectionhinzu:random_projection.GaussianRandomProjectionundrandom_projection.SparseRandomProjection. #21330 von Loïc Estève.
sklearn.svm#
Enhancement
svm.OneClassSVM,svm.NuSVC,svm.NuSVR,svm.SVCundsvm.SVRgeben nunn_iter_aus, die Anzahl der Iterationen der libsvm-Optimierungsroutine. #21408 von Juan Martín Loyola.Enhancement
svm.SVR,svm.SVC,svm.NuSVR,svm.OneClassSVM,svm.NuSVClösen nun einen Fehler aus, wenn die Schätzung des dualen Abstands nicht-endliche Parametergewichte ergibt. #22149 von Christian Ritter und Norbert Preining.Fix
svm.NuSVC,svm.NuSVR,svm.SVC,svm.SVR,svm.OneClassSVMvalidieren nun Eingabeparameter infitanstatt in__init__. #21436 von Haidar Almubarak.
sklearn.tree#
Enhancement
tree.DecisionTreeClassifierundtree.ExtraTreeClassifierhaben das neuecriterion="log_loss", das äquivalent zucriterion="entropy"ist. #23047 von Christian Lorentzen.Fix Behebt einen Fehler im Poisson-Splitting-Kriterium für
tree.DecisionTreeRegressor. #22191 von Christian Lorentzen.API Change Der Standardwert von
max_featureswurde auf 1.0 fürtree.ExtraTreeRegressorund auf"sqrt"fürtree.ExtraTreeClassifiergeändert, was das Fit-Ergebnis nicht ändern wird. Der ursprüngliche Standardwert"auto"wurde als veraltet markiert und wird in Version 1.3 entfernt. Das Setzen vonmax_featuresauf"auto"ist auch fürtree.DecisionTreeClassifierundtree.DecisionTreeRegressorveraltet. #22476 von Zhehao Liu.
sklearn.utils#
Enhancement
utils.check_arrayundutils.multiclass.type_of_targetakzeptieren nun einen Parameterinput_name, um die Fehlermeldung informativer zu gestalten, wenn ungültige Eingabedaten übergeben werden (z. B. mit NaN oder unendlichen Werten). #21219 von Olivier Grisel.Enhancement
utils.check_arraygibt ein Float-ndarray mitnp.nanzurück, wenn es mit einemFloat32- oderFloat64-Pandas-Erweiterungsarray mitpd.NAübergeben wird. #21278 von Thomas Fan.Enhancement
utils.estimator_html_reprzeigt eine hilfreichere Fehlermeldung an, wenn es in einem nicht vertrauenswürdigen Jupyter-Notebook ausgeführt wird. #21316 von Thomas Fan.Enhancement
utils.estimator_html_reprzeigt einen Pfeil in der oberen linken Ecke der HTML-Darstellung an, um zu zeigen, wie die Elemente klickbar sind. #21298 von Thomas Fan.Enhancement
utils.check_arraygibt mitdtype=Nonenumerische Arrays zurück, wenn es mit einem Pandas DataFrame mit gemischten Datentypen übergeben wird.dtype="numeric"wird auch den Datentyp besser ableiten, wenn der DataFrame gemischte Datentypen hat. #22237 von Thomas Fan.Enhancement
utils.check_scalarhat nun bessere Meldungen bei der Anzeige des Typs. #22218 von Thomas Fan.Fix Ändert die Fehlermeldung der
ValidationError, die vonutils.check_X_yausgelöst wird, wenn y None ist, so dass sie mit dercheck_requires_y_none-Estimator-Prüfung kompatibel ist. #22578 von Claudio Salvatore Arcidiacono.Fix
utils.class_weight.compute_class_weighterfordert nun nur noch, dass alle Klassen inyein Gewicht inclass_weighthaben. Eine Fehlermeldung wird weiterhin ausgelöst, wenn eine Klasse iny, aber nicht inclass_weightvorhanden ist. #22595 von Thomas Fan.Fix
utils.estimator_html_reprhat eine verbesserte Visualisierung für verschachtelte Meta-Estimator. #21310 von Thomas Fan.Fix
utils.check_scalarlöst einen Fehler aus, wenninclude_boundaries={"left", "right"}und die Grenzen nicht gesetzt sind. #22027 von Marie Lanternier.Fix
utils.metaestimators.available_ifgibt korrekt eine gebundene Methode zurück, die serialisiert werden kann. #23077 von Thomas Fan.API Change Das Argument von
utils.estimator_checks.check_estimatorheißt jetztestimator(der vorherige Name warEstimator). #22188 von Mathurin Massias.API Change
utils.metaestimators.if_delegate_has_methodist veraltet und wird in Version 1.3 entfernt. Verwenden Sie stattdessenutils.metaestimators.available_if. #22830 von Jérémie du Boisberranger.
Code- und Dokumentationsbeitragende
Vielen Dank an alle, die seit Version 1.0 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter
2357juan, Abhishek Gupta, adamgonzo, Adam Li, adijohar, Aditya Kumawat, Aditya Raghuwanshi, Aditya Singh, Adrian Trujillo Duron, Adrin Jalali, ahmadjubair33, AJ Druck, aj-white, Alan Peixinho, Alberto Mario Ceballos-Arroyo, Alek Lefebvre, Alex, Alexandr, Alexandre Gramfort, alexanmv, almeidayoel, Amanda Dsouza, Aman Sharma, Amar pratap singh, Amit, amrcode, András Simon, Andreas Grivas, Andreas Mueller, Andrew Knyazev, Andriy, Angus L’Herrou, Ankit Sharma, Anne Ducout, Arisa, Arth, arthurmello, Arturo Amor, ArturoAmor, Atharva Patil, aufarkari, Aurélien Geron, avm19, Ayan Bag, baam, Bardiya Ak, Behrouz B, Ben3940, Benjamin Bossan, Bharat Raghunathan, Bijil Subhash, bmreiniger, Brandon Truth, Brenden Kadota, Brian Sun, cdrig, Chalmer Lowe, Chiara Marmo, Chitteti Srinath Reddy, Chloe-Agathe Azencott, Christian Lorentzen, Christian Ritter, christopherlim98, Christoph T. Weidemann, Christos Aridas, Claudio Salvatore Arcidiacono, combscCode, Daniela Fernandes, darioka, Darren Nguyen, Dave Eargle, David Gilbertson, David Poznik, Dea María Léon, Dennis Osei, DessyVV, Dev514, Dimitri Papadopoulos Orfanos, Diwakar Gupta, Dr. Felix M. Riese, drskd, Emiko Sano, Emmanouil Gionanidis, EricEllwanger, Erich Schubert, Eric Larson, Eric Ndirangu, ErmolaevPA, Estefania Barreto-Ojeda, eyast, Fatima GASMI, Federico Luna, Felix Glushchenkov, fkaren27, Fortune Uwha, FPGAwesome, francoisgoupil, Frans Larsson, ftorres16, Gabor Berei, Gabor Kertesz, Gabriel Stefanini Vicente, Gabriel S Vicente, Gael Varoquaux, GAURAV CHOUDHARY, Gauthier I, genvalen, Geoffrey-Paris, Giancarlo Pablo, glennfrutiz, gpapadok, Guillaume Lemaitre, Guillermo Tomás Fernández Martín, Gustavo Oliveira, Haidar Almubarak, Hannah Bohle, Hansin Ahuja, Haoyin Xu, Haya, Helder Geovane Gomes de Lima, henrymooresc, Hideaki Imamura, Himanshu Kumar, Hind-M, hmasdev, hvassard, i-aki-y, iasoon, Inclusive Coding Bot, Ingela, iofall, Ishan Kumar, Jack Liu, Jake Cowton, jalexand3r, J Alexander, Jauhar, Jaya Surya Kommireddy, Jay Stanley, Jeff Hale, je-kr, JElfner, Jenny Vo, Jérémie du Boisberranger, Jihane, Jirka Borovec, Joel Nothman, Jon Haitz Legarreta Gorroño, Jordan Silke, Jorge Ciprián, Jorge Loayza, Joseph Chazalon, Joseph Schwartz-Messing, Jovan Stojanovic, JSchuerz, Juan Carlos Alfaro Jiménez, Juan Martin Loyola, Julien Jerphanion, katotten, Kaushik Roy Chowdhury, Ken4git, Kenneth Prabakaran, kernc, Kevin Doucet, KimAYoung, Koushik Joshi, Kranthi Sedamaki, krishna kumar, krumetoft, lesnee, Lisa Casino, Logan Thomas, Loic Esteve, Louis Wagner, LucieClair, Lucy Liu, Luiz Eduardo Amaral, Magali, MaggieChege, Mai, mandjevant, Mandy Gu, Manimaran, MarcoM, Marco Wurps, Maren Westermann, Maria Boerner, MarieS-WiMLDS, Martel Corentin, martin-kokos, mathurinm, Matías, matjansen, Matteo Francia, Maxwell, Meekail Zain, Megabyte, Mehrdad Moradizadeh, melemo2, Michael I Chen, michalkrawczyk, Micky774, milana2, millawell, Ming-Yang Ho, Mitzi, miwojc, Mizuki, mlant, Mohamed Haseeb, Mohit Sharma, Moonkyung94, mpoemsl, MrinalTyagi, Mr. Leu, msabatier, murata-yu, N, Nadirhan Şahin, Naipawat Poolsawat, NartayXD, nastegiano, nathansquan, nat-salt, Nicki Skafte Detlefsen, Nicolas Hug, Niket Jain, Nikhil Suresh, Nikita Titov, Nikolay Kondratyev, Ohad Michel, Oleksandr Husak, Olivier Grisel, partev, Patrick Ferreira, Paul, pelennor, PierreAttard, Piet Brömmel, Pieter Gijsbers, Pinky, poloso, Pramod Anantharam, puhuk, Purna Chandra Mansingh, QuadV, Rahil Parikh, Randall Boyes, randomgeek78, Raz Hoshia, Reshama Shaikh, Ricardo Ferreira, Richard Taylor, Rileran, Rishabh, Robin Thibaut, Rocco Meli, Roman Feldbauer, Roman Yurchak, Ross Barnowski, rsnegrin, Sachin Yadav, sakinaOuisrani, Sam Adam Day, Sanjay Marreddi, Sebastian Pujalte, SEELE, SELEE, Seyedsaman (Sam) Emami, ShanDeng123, Shao Yang Hong, sharmadharmpal, shaymerNaturalint, Shuangchi He, Shubhraneel Pal, siavrez, slishak, Smile, spikebh, sply88, Srinath Kailasa, Stéphane Collot, Sultan Orazbayev, Sumit Saha, Sven Eschlbeck, Sven Stehle, Swapnil Jha, Sylvain Marié, Takeshi Oura, Tamires Santana, Tenavi, teunpe, Theis Ferré Hjortkjær, Thiruvenkadam, Thomas J. Fan, t-jakubek, toastedyeast, Tom Dupré la Tour, Tom McTiernan, TONY GEORGE, Tyler Martin, Tyler Reddy, Udit Gupta, Ugo Marchand, Varun Agrawal, Venkatachalam N, Vera Komeyer, victoirelouis, Vikas Vishwakarma, Vikrant khedkar, Vladimir Chernyy, Vladimir Kim, WeijiaDu, Xiao Yuan, Yar Khine Phyo, Ying Xiong, yiyangq, Yosshi999, Yuki Koyama, Zach Deane-Mayer, Zeel B Patel, zempleni, zhenfisher, 赵丰 (Zhao Feng)