Version 1.6#
Eine kurze Beschreibung der wichtigsten Highlights des Releases finden Sie unter Release Highlights für scikit-learn 1.6.
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.6.1#
Januar 2025
Geänderte Modelle#
Fix Das Flag
tags.input_tags.sparsewurde für die Mehrheit der Schätzer korrigiert. Von Antoine Baker #30187
Änderungen, die viele Module betreffen#
Fix
_more_tags,_get_tagsund_safe_tagslösen jetzt eineDeprecationWarninganstelle einerFutureWarningaus, um nur Entwickler und nicht Endbenutzer zu benachrichtigen. Von Guillaume Lemaitre in #30573
sklearn.metrics#
Fix Regression behoben, bei der ein scikit-learn-Metrik, der auf PyTorch CPU-Tensoren aufgerufen wurde, einen Fehler auslöste (mit deaktivierter Array-API-Verteilung, was der Standard ist). Von Loïc Estève #30454
sklearn.model_selection#
Fix
cross_validate,cross_val_predictundcross_val_scoreakzeptieren jetztparams=None, wenn das Metadaten-Routing aktiviert ist. Von Adrin Jalali #30451
sklearn.tree#
Fix Verwenden Sie
log2anstelle vonlnzum Aufbau von Bäumen, um das Verhalten früherer Versionen beizubehalten. Von Thomas Fan #30557
sklearn.utils#
Enhancement
utils.estimator_checks.check_estimator_sparse_tagstellt sicher, dass der Estimator-Taginput_tags.sparsemit seinerfit-Methode konsistent ist (Akzeptieren von spärlichen EingabenXoder Auslösen des entsprechenden Fehlers). Von Antoine Baker #30187Fix Lösen Sie eine
DeprecationWarningaus, wenn keine konkrete Implementierung von__sklearn_tags__im MRO des Estimators vorhanden ist. Wir bitten darum, vonBaseEstimatorzu erben, das__sklearn_tags__implementiert. Von Guillaume Lemaitre #30516
Version 1.6.0#
Dezember 2024
Änderungen, die viele Module betreffen#
Enhancement
__sklearn_tags__wurde zur Einstellung von Tags in Estimators eingeführt. Weitere Details unter Estimator-Tags. Von Thomas Fan und Adrin Jalali #29677Enhancement Scikit-learn-Klassen und -Funktionen können verwendet werden, während nur eine
import sklearnImportzeile vorhanden ist. Zum Beispiel funktioniertimport sklearn; sklearn.svm.SVC()jetzt. Von Thomas Fan #29793Fix Die Klassen
metrics.ConfusionMatrixDisplay,metrics.RocCurveDisplay,calibration.CalibrationDisplay,metrics.PrecisionRecallDisplay,metrics.PredictionErrorDisplayundinspection.PartialDependenceDisplaybehandeln jetzt korrekt Matplotlib-Aliase für Stilparameter (z. B.cundcolor,lsundlinestyleusw.). Von Joseph Barbier #30023API Change
utils.validation.validate_datawurde eingeführt und ersetzt die bisher private Methodebase.BaseEstimator._validate_data. Dies ist für Entwickler von Drittanbieter-Estimators gedacht, die diese Funktion in den meisten Fällen anstelle vonutils.check_arrayundutils.check_X_yverwenden sollten. Von Adrin Jalali #29696
Unterstützung für Array API#
Zusätzliche Schätzer und Funktionen wurden aktualisiert, um Unterstützung für alle Array API-konformen Eingaben zu bieten.
Weitere Details finden Sie in Array API-Unterstützung (experimentell).
Feature
model_selection.GridSearchCV,model_selection.RandomizedSearchCV,model_selection.HalvingGridSearchCVundmodel_selection.HalvingRandomSearchCVunterstützen jetzt Array API-kompatible Eingaben, wenn ihre Basis-Estimators dies tun. Von Tim Head und Olivier Grisel #27096Feature
sklearn.metrics.f1_scoreunterstützt jetzt Array API-kompatible Eingaben. Von Omar Salman #27369Feature
preprocessing.LabelEncoderunterstützt jetzt Array API-kompatible Eingaben. Von Omar Salman #27381Feature
sklearn.metrics.mean_absolute_errorunterstützt jetzt Array API-kompatible Eingaben. Von Edoardo Abati #27736Feature
sklearn.metrics.mean_tweedie_devianceunterstützt jetzt Array API-kompatible Eingaben. Von Thomas Li #28106Feature
sklearn.metrics.pairwise.cosine_similarityunterstützt jetzt Array API-kompatible Eingaben. Von Edoardo Abati #29014Feature
sklearn.metrics.pairwise.paired_cosine_distancesunterstützt jetzt Array API-kompatible Eingaben. Von Edoardo Abati #29112Feature
sklearn.metrics.cluster.entropyunterstützt jetzt Array API-kompatible Eingaben. Von Yaroslav Korobko #29141Feature
sklearn.metrics.mean_squared_errorunterstützt jetzt Array API-kompatible Eingaben. Von Yaroslav Korobko #29142Feature
sklearn.metrics.pairwise.additive_chi2_kernelunterstützt jetzt Array API-kompatible Eingaben. Von Yaroslav Korobko #29144Feature
sklearn.metrics.d2_tweedie_scoreunterstützt jetzt Array API-kompatible Eingaben. Von Emily Chen #29207Feature
sklearn.metrics.max_errorunterstützt jetzt Array API-kompatible Eingaben. Von Edoardo Abati #29212Feature
sklearn.metrics.mean_poisson_devianceunterstützt jetzt Array API-kompatible Eingaben. Von Emily Chen #29227Feature
sklearn.metrics.mean_gamma_devianceunterstützt jetzt Array API-kompatible Eingaben. Von Emily Chen #29239Feature
sklearn.metrics.pairwise.cosine_distancesunterstützt jetzt Array API-kompatible Eingaben. Von Emily Chen #29265Feature
sklearn.metrics.pairwise.chi2_kernelunterstützt jetzt Array API-kompatible Eingaben. Von Yaroslav Korobko #29267Feature
sklearn.metrics.mean_absolute_percentage_errorunterstützt jetzt Array API-kompatible Eingaben. Von Emily Chen #29300Feature
sklearn.metrics.pairwise.paired_euclidean_distancesunterstützt jetzt Array API-kompatible Eingaben. Von Emily Chen #29389Feature
sklearn.metrics.pairwise.euclidean_distancesundsklearn.metrics.pairwise.rbf_kernelunterstützen jetzt Array API-kompatible Eingaben. Von Omar Salman #29433Feature
sklearn.metrics.pairwise.linear_kernel,sklearn.metrics.pairwise.sigmoid_kernelundsklearn.metrics.pairwise.polynomial_kernelunterstützen jetzt Array API-kompatible Eingaben. Von Omar Salman #29475Feature
sklearn.metrics.mean_squared_log_errorundsklearn.metrics.root_mean_squared_log_errorunterstützen jetzt Array API-kompatible Eingaben. Von Virgil Chan #29709Feature
preprocessing.MinMaxScalermitclip=Trueunterstützt jetzt Array API-kompatible Eingaben. Von Shreekant Nandiyawar #29751Die Unterstützung für das bald als veraltet geltende Modul
cupy.array_apiwurde zugunsten der direkten Unterstützung des Top-Level-Modulscupyentfernt, möglicherweise über den Kompatibilitäts-Wrapperarray_api_compat.cupy. Von Olivier Grisel #29639
Metadaten-Routing#
Weitere Details finden Sie in Metadaten-Routing Benutzerhandbuch.
Feature
semi_supervised.SelfTrainingClassifierunterstützt jetzt Metadaten-Routing. Die `fit`-Methode akzeptiert jetzt**fit_params, die über ihrefit-Methoden an die zugrundeliegenden Estimators weitergegeben werden. Darüber hinaus akzeptieren die Methodenpredict,predict_proba,predict_log_proba,scoreunddecision_functionebenfalls**params, die über ihre jeweiligen Methoden an die zugrundeliegenden Estimators weitergegeben werden. Von Adam Li #28494Feature
ensemble.StackingClassifierundensemble.StackingRegressorunterstützen jetzt Metadaten-Routing und geben**fit_paramsüber ihrefit-Methoden an die zugrundeliegenden Estimators weiter. Von Stefanie Senger #28701Feature
model_selection.learning_curveunterstützt jetzt Metadaten-Routing für diefit-Methode seines Estimators und für seinen zugrundeliegenden CV-Splitter und Scorer. Von Stefanie Senger #28975Feature
compose.TransformedTargetRegressorunterstützt jetzt Metadaten-Routing in seinen Methodenfitundpredictund leitet die entsprechenden Parameter an den zugrundeliegenden Regressor weiter. Von Omar Salman #29136Feature
feature_selection.SequentialFeatureSelectorunterstützt jetzt Metadaten-Routing in seinerfit-Methode und leitet die entsprechenden Parameter an die Funktionmodel_selection.cross_val_scoreweiter. Von Omar Salman #29260Feature
model_selection.permutation_test_scoreunterstützt jetzt Metadaten-Routing für diefit-Methode seines Estimators und für seinen zugrundeliegenden CV-Splitter und Scorer. Von Adam Li #29266Feature
feature_selection.RFEundfeature_selection.RFECVunterstützen jetzt Metadaten-Routing. Von Omar Salman #29312Feature
model_selection.validation_curveunterstützt jetzt Metadaten-Routing für diefit-Methode seines Estimators und für seinen zugrundeliegenden CV-Splitter und Scorer. Von Stefanie Senger #29329Fix Metadaten werden korrekt an gruppierte CV-Splitter über
linear_model.RidgeCVundlinear_model.RidgeClassifierCVweitergeleitet, undUnsetMetadataPassedErrorwurde fürlinear_model.RidgeClassifierCVmit Standard-Scoring behoben. Von Stefanie Senger #29634Fix Viele Methodenargumente, die nicht in den Routing-Mechanismus einbezogen werden sollten, sind jetzt ausgeschlossen und die Methoden
set_{method}_requestwerden für sie nicht mehr generiert. Von Adrin Jalali #29920
Offizielle Unterstützung für PyPy eingestellt#
Aufgrund begrenzter Wartungsressourcen und einer geringen Nutzerzahl wurde die offizielle PyPy-Unterstützung eingestellt. Einige Teile von scikit-learn funktionieren möglicherweise weiterhin, aber PyPy wird in der Continuous Integration von scikit-learn nicht mehr getestet. Von Loïc Estève #29128
Unterstützung für die Erstellung mit setuptools eingestellt#
Ab scikit-learn 1.6 wurde die Unterstützung für die Erstellung mit setuptools entfernt. Meson ist die einzig unterstützte Methode zum Erstellen von scikit-learn. Von Loïc Estève #29400
Unterstützung für freigethreadetes CPython 3.13#
scikit-learn hat eine vorläufige Unterstützung für freigethreadetes CPython, insbesondere sind freigethreadete Wheels für alle unsere unterstützten Plattformen verfügbar.
Freigethreadetes (auch bekannt als nogil) CPython 3.13 ist eine experimentelle Version von CPython 3.13, die darauf abzielt, effiziente Multi-Threading-Anwendungsfälle durch die Entfernung des Global Interpreter Lock (GIL) zu ermöglichen.
Weitere Details zu free-threaded CPython finden Sie in der py-free-threading Dokumentation, insbesondere wie Sie ein free-threaded CPython installieren und Ecosystem-Kompatibilität-Tracking.
Probieren Sie freigethreadetes CPython gerne in Ihrem Anwendungsfall aus und melden Sie etwaige Probleme!
Von Loïc Estève und vielen anderen Personen aus dem breiteren Scientific Python- und CPython-Ökosystem, zum Beispiel Nathan Goldbaum, Ralf Gommers, Edgar Andrés Margffoy Tuay. #30360
sklearn.base#
Enhancement Eine Funktion
base.is_clustererwurde hinzugefügt, die bestimmt, ob ein gegebener Estimator zur Kategorie "Clusterer" gehört. Von Christian Veenhuis #28936API Change Das Übergeben eines Klassenobjekts an
is_classifier,is_regressorundis_outlier_detectorist jetzt veraltet. Übergeben Sie stattdessen eine Instanz. Von Adrin Jalali #30122
sklearn.calibration#
API Change
cv="prefit"ist fürCalibratedClassifierCVveraltet. Verwenden Sie stattdessenFrozenEstimator, wie z. B.CalibratedClassifierCV(FrozenEstimator(estimator)). Von Adrin Jalali #30171
sklearn.cluster#
API Change Der Parameter
copyvoncluster.Birchwurde in Version 1.6 als veraltet markiert und wird in Version 1.8 entfernt. Er hat keine Auswirkung, da der Estimator keine In-Place-Operationen an den Eingabedaten durchführt. Von Yao Xiao #29124
sklearn.compose#
Enhancement
sklearn.compose.ColumnTransformerverbose_feature_names_outakzeptiert jetzt Zeichenkettenformate oder aufrufbare Objekte zur Generierung von Feature-Namen. Von Marc Bresson #28934
sklearn.covariance#
Efficiency Das Training von
covariance.MinCovDetist jetzt etwas schneller. Von Antony Lee #29835
sklearn.cross_decomposition#
Fix
cross_decomposition.PLSRegressionlöst nun korrekt einen Fehler aus, wennn_componentsgrößer alsn_samplesist. Von Thomas Fan #29710
sklearn.datasets#
Feature
datasets.fetch_fileermöglicht das Herunterladen beliebiger Datendateien aus dem Web. Es unterstützt lokales Caching, Integritätsprüfungen mit SHA256-Digests und automatische Wiederholungsversuche bei HTTP-Fehlern. Von Olivier Grisel #29354
sklearn.decomposition#
Enhancement
LatentDirichletAllocationverfügt nun über den Parameternormalizein den Methodentransformundfit_transform, um zu steuern, ob die Dokumenten-Themenverteilung normalisiert wird. Von Adrin Jalali #30097Fix
IncrementalPCAlöst nun nur dann einenValueErroraus, wenn die Anzahl der Stichproben in den Eingabedaten fürpartial_fitbei der ersten Aufruf vonpartial_fitkleiner als die Anzahl der Komponenten ist. Nachfolgende Aufrufe vonpartial_fitunterliegen dieser Einschränkung nicht mehr. Von Thomas Gessey-Jones #30224
sklearn.discriminant_analysis#
Fix
discriminant_analysis.QuadraticDiscriminantAnalysislöst nun eineLinAlgWarningaus, wenn kollinare Variablen vorhanden sind. Diese Fehler können mit dem Attributreg_paramunterdrückt werden. Von Alihan Zihna #19731
sklearn.ensemble#
Feature
ensemble.ExtraTreesClassifierundensemble.ExtraTreesRegressorunterstützen nun fehlende Werte in der DatenmatrixX. Fehlende Werte werden behandelt, indem alle Stichproben beim Durchlaufen des Baumes zufällig auf den linken oder rechten Kindknoten verschoben werden. Von Adam Li #28268Efficiency Geringfügige Laufzeitverbesserung beim Trainieren von
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressordurch Parallelisierung der anfänglichen Suche nach Schwellenwerten für die Bins. Von Christian Lorentzen #28064Efficiency
ensemble.IsolationForestführt nun parallele Jobs während predict aus, was zu einer Beschleunigung von bis zu 2-4x bei Stichprobengrößen über 2000 mitjoblibführt. Von Adam Li und Sérgio Pereira #28622Enhancement Die Ausführlichkeit von
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorist nun granularer steuerbar. Mitverbose = 1werden nur Zusammenfassungsnachrichten ausgegeben, mitverbose >= 2wird die vollständige Information wie zuvor ausgegeben. Von Christian Lorentzen #28179API Change Der Parameter
algorithmvonensemble.AdaBoostClassifierist veraltet und wird in Version 1.8 entfernt. Von Jérémie du Boisberranger #29997
sklearn.feature_extraction#
Fix
feature_extraction.text.TfidfVectorizerbehält nun korrekt dendtypevonidf_basierend auf den Eingabedaten. Von Guillaume Lemaitre #30022
sklearn.frozen#
Major Feature
FrozenEstimatorwird nun eingeführt und ermöglicht das Einfrieren eines Schätzers. Das bedeutet, dass der Aufruf von.fitdarauf keine Auswirkung hat und einclone(frozenestimator)denselben Schätzer und nicht einen nicht trainierten Klon zurückgibt. #29705 Von Adrin Jalali #29705
sklearn.impute#
Fix
impute.KNNImputerschließt Stichproben mit NaN-Distanzen aus, wenn der Mittelwert für gleichmäßige Gewichte berechnet wird. Von Xuefeng Xu #29135Fix Wenn
min_valueundmax_valueArray-ähnlich sind und einige Merkmale aufgrund vonkeep_empty_features=Falsefallen gelassen werden, löstimpute.IterativeImputerkeinen Fehler mehr aus und indiziert nun korrekt. Von Guntitat Sawadwuthikul #29451Fix
impute.IterativeImputerwurde korrigiert, um sicherzustellen, dass der iterative Prozess nicht übersprungen wird, wennkeep_empty_featuresaufTruegesetzt ist. Von Arif Qodari #29779API Change Fügt eine Warnung in
impute.SimpleImputerhinzu, wennkeep_empty_feature=Falseundstrategy="constant"sind. In diesem Fall werden leere Merkmale nicht verworfen, und dieses Verhalten wird sich in Version 1.8 ändern. Von Arthur Courselle und Simon Riou #29950
sklearn.linear_model#
Enhancement Der
solver="newton-cholesky"inlinear_model.LogisticRegressionundlinear_model.LogisticRegressionCVwurde erweitert, um den vollständigen multinomialen Verlust in einem multiklassen-Szenario zu unterstützen. Von Christian Lorentzen #28840Fix In
linear_model.Ridgeundlinear_model.RidgeCVhat das Attributcoef_nachfitnun die Form(n_samples,), wie bei anderen linearen Modellen. Von Maxwell Liu, Guillaume Lemaitre und Adrin Jalali #19746Fix
linear_model.LogisticRegressionCVkorrigiert die Handhabung von Stichprobengewichten für die Berechnung von Testbewertungen. Von Shruti Nath #29419Fix
linear_model.LassoCVundlinear_model.ElasticNetCVberücksichtigen nun Stichprobengewichte zur Definition des Suchgitters für den intern abgestimmten Hyperparameteralpha. Von John Hopfensperger und Shruti Nath #29442Fix
linear_model.LogisticRegression,linear_model.PoissonRegressor,linear_model.GammaRegressor,linear_model.TweedieRegressorberücksichtigen nun Stichprobengewichte, um zu entscheiden, wann aufsolver='lbfgs'zurückgegriffen wird, fallssolver='newton-cholesky'numerisch instabil wird. Von Antoine Baker #29818Fix
linear_model.RidgeCVverwendet nun korrekt Vorhersagen auf derselben Skala wie das Ziel, das währendfitgesehen wurde. Diese Vorhersagen werden incv_results_gespeichert, wennscoring != Noneist. Zuvor wurden die Vorhersagen mit der Quadratwurzel der Stichprobengewichte skaliert und um den Mittelwert des Ziels verschoben, was zu einer falschen Einschätzung der Bewertung führte. Von Guillaume Lemaitre, Jérôme Dockes und Hanmin Qin #29842Fix
linear_model.RidgeCVunterstützt nun benutzerdefinierte Multioutput-Scorer, indem der Scorer die Multioutput-Mittelung verwaltet. Zuvor wurden die Vorhersagen und die tatsächlichen Zielwerte beide auf ein 1D-Array reduziert, bevor der Fehler berechnet wurde. Von Guillaume Lemaitre #29884Fix
linear_model.LinearRegressionsetzt nun den Parametercondbeim Aufruf desscipy.linalg.lstsq-Solvers auf dichten Eingabedaten. Dies gewährleistet numerisch robustere Ergebnisse bei Rang-defizienten Daten. Insbesondere behebt es empirisch die erwartete Äquivalenzeigenschaft zwischen dem Training mit neu gewichteten oder mit wiederholten Datenpunkten. Von Antoine Baker #30040Fix
linear_model.LogisticRegressionund andere lineare Modelle, diesolver="newton-cholesky"akzeptieren, melden nun die korrekte Anzahl von Iterationen, wenn sie aufgrund einer Rang-defizienten Hesse-Matrix auf den Solver"lbfgs"zurückfallen. Von Olivier Grisel #30100Fix
SGDOneClassSVMerbt nun korrekt vonOutlierMixinund die Tags sind korrekt gesetzt. Von Guillaume Lemaitre #30227API Change Der Parameter
copy_Xinlinear_model.TheilSenRegressorwird als veraltet markiert, da der Parameter keine Auswirkung hat.copy_Xwird in Version 1.8 entfernt. Von Adam Li #29105
sklearn.manifold#
Efficiency
manifold.locally_linear_embeddingundmanifold.LocallyLinearEmbeddingweisen nun effizienter den Speicher von dünnbesetzten Matrizen in den Methoden Hessian, Modified und LTSA zu. Von Giorgio Angelotti #28096
sklearn.metrics#
Efficiency
sklearn.metrics.classification_reportist nun schneller durch Caching von Klassifizierungsbeschriftungen. Von Adrin Jalali #29738Enhancement
metrics.RocCurveDisplay.from_estimator,metrics.RocCurveDisplay.from_predictions,metrics.PrecisionRecallDisplay.from_estimatorundmetrics.PrecisionRecallDisplay.from_predictionsakzeptieren nun ein neues Schlüsselwortdespine, um die oberen und rechten Achsen des Plots zu entfernen und ihn übersichtlicher zu gestalten. Von Yao Xiao #26367Enhancement
sklearn.metrics.check_scoringakzeptiert nunraise_exc, um anzugeben, ob eine Ausnahme ausgelöst werden soll, wenn eine Teilmenge der Scorer bei der multimetrischen Bewertung fehlschlägt, oder ob ein Fehlercode zurückgegeben werden soll. Von Stefanie Senger #28992Fix
metrics.roc_auc_scoregibt nun korrekt np.nan zurück und warnt den Benutzer, wenn nur eine Klasse in den Labels vorhanden ist. Von Hleb Levitski und Janez Demšar #27412, #30013Fix Die Funktionen
metrics.mean_squared_log_errorundmetrics.root_mean_squared_log_errorprüfen nun, ob die Eingaben im korrekten Definitionsbereich für die Funktion \(y=\log(1+x)\) liegen, anstatt für \(y=\log(x)\). Die Funktionenmetrics.mean_absolute_error,metrics.mean_absolute_percentage_error,metrics.mean_squared_errorundmetrics.root_mean_squared_errorprüfen nun explizit, ob ein Skalar zurückgegeben wird, wennmultioutput=uniform_averageist. Von Virgil Chan #29709API Change Der Parameter
assert_all_finiteder Funktionenmetrics.pairwise.check_pairwise_arraysundmetrics.pairwise_distanceswird inensure_all_finiteumbenannt.force_all_finitewird in Version 1.8 entfernt. Von Jérémie du Boisberranger #29404API Change
scoring="neg_max_error"sollte anstelle vonscoring="max_error"verwendet werden, was nun veraltet ist. Von Farid “Freddie” Taba #29462API Change Der Standardwert des Parameters
response_methodvonmetrics.make_scorerwird vonNoneauf"predict"geändert undNonewird in Version 1.8 entfernt. In der Zwischenzeit istNoneäquivalent zu"predict". Von Jérémie du Boisberranger #30001
sklearn.model_selection#
Enhancement
GroupKFoldhat nun die Möglichkeit, Gruppen beishuffle=Truein verschiedene Folds zu mischen. Von Zachary Vealey #28519Enhancement Es ist nicht mehr notwendig,
fitauf einemFixedThresholdClassifieraufzurufen, wenn der zugrundeliegende Schätzer bereits trainiert ist. Von Adrin Jalali #30172Fix Verbessert die Fehlermeldung, wenn
model_selection.RepeatedStratifiedKFold.splitohne einy-Argument aufgerufen wird. Von Anurag Varma #29402
sklearn.neighbors#
Enhancement
neighbors.NearestNeighbors,neighbors.KNeighborsClassifier,neighbors.KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor,neighbors.KNeighborsTransformer,neighbors.RadiusNeighborsTransformerundneighbors.LocalOutlierFactorfunktionieren nun mitmetric="nan_euclidean"und unterstützennan-Eingaben. Von Carlo Lemos, Guillaume Lemaitre und Adrin Jalali #25330Enhancement Fügt
neighbors.NearestCentroid.decision_function,neighbors.NearestCentroid.predict_probaundneighbors.NearestCentroid.predict_log_probazum Schätzerneighbors.NearestCentroidhinzu. Unterstützt den Fall, wennXdünnbesetzt ist undshrinking_thresholdnichtNoneist inneighbors.NearestCentroid. Von Matthew Ning #26689Erweiterung
predict,predict_probaundscorevonneighbors.KNeighborsClassifierundneighbors.RadiusNeighborsClassifierakzeptieren nunX=Noneals Eingabe. In diesem Fall werden Vorhersagen für alle Trainingsdatenpunkte zurückgegeben, und die Punkte werden nicht als ihre eigenen Nachbarn berücksichtigt. Von Dmitry Kobak #30047Korrektur
neighbors.LocalOutlierFactorgibt in derfitMethode eine Warnung aus, wenn doppelte Werte in den Trainingsdaten zu einer ungenauen Erkennung von Ausreißern führen. Von Henrique Caroço #28773
sklearn.neural_network#
Korrektur
neural_network.MLPRegressorstürzt nicht mehr ab, wenn das Modell divergiert undearly_stoppingaktiviert ist. Von Marc Bresson #29773
sklearn.pipeline#
Hauptmerkmal
pipeline.Pipelinekann jetzt Metadaten bis zu dem Schritt transformieren, der die Metadaten benötigt, was mit dem Parametertransform_inputeingestellt werden kann. Von Adrin Jalali #28901Erweiterung
pipeline.Pipelinewarnt nun, wenn die Pipeline nicht angepasst wurde, bevor Methoden aufgerufen werden, die eine Anpassung erfordern. Diese Warnung wird in Version 1.8 zu einem Fehler. Von Adrin Jalali #29868Korrektur Ein Problem mit Tags und dem Schätzertyp von
Pipelinewurde behoben, wenn die Pipeline leer ist. Dies ermöglicht die korrekte Darstellung der HTML-Repräsentation einer leeren Pipeline. Von Gennaro Daniele Acciaro #30203
sklearn.preprocessing#
Erweiterung Die Option
warnwurde dem Parameterhandle_unknowninpreprocessing.OneHotEncoderhinzugefügt. Von Hleb Levitski #28637Erweiterung Die HTML-Darstellung von
preprocessing.FunctionTransformerzeigt nun den Funktionsnamen im Label an. Von Yao Xiao #29158Korrektur
preprocessing.PowerTransformerverwendet nunscipy.special.inv_boxcox, umnanauszugeben, wenn die Eingabe der inversen BoxCox-Transformation ungültig ist. Von Xuefeng Xu #27875
sklearn.semi_supervised#
API-Änderung
semi_supervised.SelfTrainingClassifierhat den Parameterbase_estimatorzugunsten vonestimatorals veraltet markiert. Von Adam Li #28494
sklearn.tree#
Merkmal
tree.ExtraTreeClassifierundtree.ExtraTreeRegressorunterstützen nun fehlende Werte in der DatenmatrixX. Fehlende Werte werden behandelt, indem alle Stichproben beim Durchlaufen des Baumes zufällig auf die linke oder rechte Kindknoten verschoben werden. Von Adam Li und Loïc Estève #27966, #30318Korrektur Anführungszeichen für Labels und Feature-Namen beim Exportieren von Bäumen in das Graphviz-Format werden nun escaped. Von Santiago M. Mola. #17575
sklearn.utils#
Erweiterung
utils.check_arrayakzeptiert nunensure_non_negativezur Prüfung auf negative Werte im übergebenen Array, was bisher nur durch den Aufruf vonutils.check_non_negativemöglich war. Von Tamara Atanasoska #29540Erweiterung
check_estimatorundparametrize_with_checksprüfen und schlagen nun fehl, wenn der Klassifikator den Tagtags.classifier_tags.multi_class = Falsehat, aber bei Multi-Class-Daten nicht fehlschlägt. Von Adrin Jalali #29874Erweiterung
utils.validation.check_is_fittedfunktioniert nun auch für zustandslose Schätzer. Ein Schätzer kann angeben, dass er zustandlos ist, indem er den Tagrequires_fitsetzt. Weitere Informationen finden Sie unter Estimator Tags. Von Adrin Jalali #29880Erweiterung Änderungen an
check_estimatorundparametrize_with_checks.check_estimatorführt neue Argumente ein:on_skip,on_failundcallbackzur Steuerung des Verhaltens des Check-Runners. Weitere Details finden Sie in der API-Dokumentation.generate_only=Trueist incheck_estimatorveraltet. Verwenden Sie stattdessenestimator_checks_generator.Der Tag
_xfail_checksfür Schätzer wurde entfernt. Um nun anzugeben, welche Tests voraussichtlich fehlschlagen werden, können Sie ein Wörterbuch ancheck_estimatorals Parameterexpected_failed_checksübergeben. Ebenso kann der Parameterexpected_failed_checksinparametrize_with_checksverwendet werden, was ein aufrufbares Objekt ist, das ein Wörterbuch der Form zurückgibt.{ "check_name": "reason to mark this check as xfail", }
Von Adrin Jalali #30149
Korrektur
utils.estimator_checks.parametrize_with_checksundutils.estimator_checks.check_estimatorunterstützen nun Schätzer, bei denenset_outputaufgerufen wurde. Von Adrin Jalali #29869API-Änderung Der Parameter
assert_all_finiteder Funktionenutils.check_array,utils.check_X_y,utils.as_float_arraywurde inensure_all_finiteumbenannt.force_all_finitewird in Version 1.8 entfernt. Von Jérémie du Boisberranger #29404API-Änderung
utils.estimator_checks.check_sample_weights_invariancewurde durchutils.estimator_checks.check_sample_weight_equivalence_on_dense_dataersetzt, das ganzzahlige (einschließlich Null) Gewichte verwendet, undutils.estimator_checks.check_sample_weight_equivalence_on_sparse_data, das dasselbe für spärliche Daten tut. Von Antoine Baker #29818, #30137API-Änderung Die Verwendung von
_estimator_typezur Festlegung des Schätzertyps ist veraltet. Erben Sie stattdessen vonClassifierMixin,RegressorMixin,TransformerMixinoderOutlierMixin. Alternativ können Sieestimator_typeinTagsin der Methode__sklearn_tags__setzen. Von Adrin Jalali #30122
Code- und Dokumentationsbeitragende
Vielen Dank an alle, die seit Version 1.5 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter
Aaron Schumacher, Abdulaziz Aloqeely, abhi-jha, Acciaro Gennaro Daniele, Adam J. Stewart, Adam Li, Adeel Hassan, Adeyemi Biola, Aditi Juneja, Adrin Jalali, Aisha, Akanksha Mhadolkar, Akihiro Kuno, Alberto Torres, alexqiao, Alihan Zihna, Aniruddha Saha, antoinebaker, Antony Lee, Anurag Varma, Arif Qodari, Arthur Courselle, ArthurDbrn, Arturo Amor, Aswathavicky, Audrey Flanders, aurelienmorgan, Austin, awwwyan, AyGeeEm, a.zy.lee, baggiponte, BlazeStorm001, bme-git, Boney Patel, brdav, Brigitta Sipőcz, Cailean Carter, Camille Troillard, Carlo Lemos, Christian Lorentzen, Christian Veenhuis, Christine P. Chai, claudio, Conrad Stevens, datarollhexasphericon, Davide Chicco, David Matthew Cherney, Dea María Léon, Deepak Saldanha, Deepyaman Datta, dependabot[bot], dinga92, Dmitry Kobak, Domenico, Drew Craeton, dymil, Edoardo Abati, EmilyXinyi, Eric Larson, Evelyn, fabianhenning, Farid “Freddie” Taba, Gael Varoquaux, Giorgio Angelotti, Hleb Levitski, Guillaume Lemaitre, Guntitat Sawadwuthikul, Haesun Park, Hanjun Kim, Henrique Caroço, hhchen1105, Hugo Boulenger, Ilya Komarov, Inessa Pawson, Ivan Pan, Ivan Wiryadi, Jaimin Chauhan, Jakob Bull, James Lamb, Janez Demšar, Jérémie du Boisberranger, Jérôme Dockès, Jirair Aroyan, João Morais, Joe Cainey, Joel Nothman, John Enblom, JorgeCardenas, Joseph Barbier, jpienaar-tuks, Julian Chan, K.Bharat Reddy, Kevin Doshi, Lars, Loic Esteve, Lucas Colley, Lucy Liu, lunovian, Marc Bresson, Marco Edward Gorelli, Marco Maggi, Marco Wolsza, Maren Westermann, MarieS-WiMLDS, Martin Helm, Mathew Shen, mathurinm, Matthew Feickert, Maxwell Liu, Meekail Zain, Michael Dawson, Miguel Cárdenas, m-maggi, mrastgoo, Natalia Mokeeva, Nathan Goldbaum, Nathan Orgera, nbrown-ScottLogic, Nikita Chistyakov, Nithish Bolleddula, Noam Keidar, NoPenguinsLand, Norbert Preining, notPlancha, Olivier Grisel, Omar Salman, ParsifalXu, Piotr, Priyank Shroff, Priyansh Gupta, Quentin Barthélemy, Rachit23110261, Rahil Parikh, raisadz, Rajath, renaissance0ne, Reshama Shaikh, Roberto Rosati, Robert Pollak, rwelsch427, Santiago Castro, Santiago M. Mola, scikit-learn-bot, sean moiselle, SHREEKANT VITTHAL NANDIYAWAR, Shruti Nath, Søren Bredlund Caspersen, Stefanie Senger, Stefano Gaspari, Steffen Schneider, Štěpán Sršeň, Sylvain Combettes, Tamara, Thomas, Thomas Gessey-Jones, Thomas J. Fan, Thomas Li, ThorbenMaa, Tialo, Tim Head, Tuhin Sharma, Tushar Parimi, Umberto Fasci, UV, vedpawar2254, Velislav Babatchev, Victoria Shevchenko, viktor765, Vince Carey, Virgil Chan, Wang Jiayi, Xiao Yuan, Xuefeng Xu, Yao Xiao, yareyaredesuyo, Zachary Vealey, Ziad Amerr