Version 1.8#
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.8.0#
Dezember 2025
Änderungen, die viele Module betreffen#
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).
Merkmal
sklearn.preprocessing.StandardScalerunterstützt nun Array API-konforme Eingaben. Von Alexander Fabisch, Edoardo Abati, Olivier Grisel und Charles Hill. #27113Merkmal
linear_model.RidgeCV,linear_model.RidgeClassifierundlinear_model.RidgeClassifierCVunterstützen nun Array API-kompatible Eingaben mitsolver="svd". Von Jérôme Dockès. #27961Merkmal
metrics.pairwise.pairwise_kernelsfür alle Kernel außer "laplacian" undmetrics.pairwise_distancesfür die Metriken "cosine", "euclidean" und "l2" unterstützen nun Array API-Eingaben. Von Emily Chen und Lucy Liu #29822Merkmal
sklearn.metrics.confusion_matrixunterstützt nun Array API-kompatible Eingaben. Von Stefanie Senger #30562Merkmal
sklearn.mixture.GaussianMixturemitinit_params="random"oderinit_params="random_from_data"undwarm_start=Falseunterstützt nun Array API-kompatible Eingaben. Von Stefanie Senger und Loïc Estève #30777Merkmal
sklearn.metrics.roc_curveunterstützt nun Array API-kompatible Eingaben. Von Thomas Li #30878Merkmal
preprocessing.PolynomialFeaturesunterstützt nun Array API-kompatible Eingaben. Von Omar Salman #31580Merkmal
calibration.CalibratedClassifierCVunterstützt nun Array API-kompatible Eingaben mitmethod="temperature"und wenn der zugrunde liegendeestimatorebenfalls die Array API unterstützt. Von Omar Salman #32246Merkmal
sklearn.metrics.precision_recall_curveunterstützt nun Array API-kompatible Eingaben. Von Lucy Liu #32249Merkmal
sklearn.model_selection.cross_val_predictunterstützt nun Array API-kompatible Eingaben. Von Omar Salman #32270Merkmal
sklearn.metrics.brier_score_loss,sklearn.metrics.log_loss,sklearn.metrics.d2_brier_scoreundsklearn.metrics.d2_log_loss_scoreunterstützen nun Array API-kompatible Eingaben. Von Omar Salman #32422Merkmal
naive_bayes.GaussianNBunterstützt nun Array API-kompatible Eingaben. Von Omar Salman #32497Merkmal
preprocessing.LabelBinarizerundpreprocessing.label_binarizeunterstützen nun numerische Array API-kompatible Eingaben mitsparse_output=False. Von Virgil Chan. #32582Merkmal
sklearn.metrics.det_curveunterstützt nun Array API-konforme Eingaben. Von Josef Affourtit. #32586Merkmal
sklearn.metrics.pairwise.manhattan_distancesunterstützt nun Array API-kompatible Eingaben. Von Omar Salman. #32597Merkmal
sklearn.metrics.calinski_harabasz_scoreunterstützt nun Array API-konforme Eingaben. Von Josef Affourtit. #32600Merkmal
sklearn.metrics.balanced_accuracy_scoreunterstützt nun Array API-kompatible Eingaben. Von Omar Salman. #32604Merkmal
sklearn.metrics.pairwise.laplacian_kernelunterstützt nun Array API-kompatible Eingaben. Von Zubair Shakoor. #32613Merkmal
sklearn.metrics.cohen_kappa_scoreunterstützt nun Array API-kompatible Eingaben. Von Omar Salman. #32619Merkmal
sklearn.metrics.cluster.davies_bouldin_scoreunterstützt nun Array API-konforme Eingaben. Von Josef Affourtit. #32693Korrektur Schätzer mit Array API-Unterstützung lehnen DataFrame-Eingaben nicht mehr ab, wenn die Array API-Unterstützung aktiviert ist. Von Tim Head #32838
Metadaten-Routing#
Weitere Details finden Sie in Metadaten-Routing Benutzerhandbuch.
Korrektur Es wurde ein Problem behoben, bei dem die Übergabe von
sample_weightan einePipelineinnerhalb vonGridSearchCVeinen Fehler auslöste, wenn Metadaten-Routing aktiviert war. Von Adrin Jalali. #31898
Unterstützung für free-threaded CPython 3.14#
scikit-learn unterstützt free-threaded CPython, insbesondere sind free-threaded Wheels für alle unsere unterstützten Plattformen unter Python 3.14 verfügbar.
Free-threaded (auch bekannt als nogil) CPython ist eine Version von CPython, die darauf abzielt, effiziente Multi-Threading-Anwendungsfälle durch die Entfernung des Global Interpreter Lock (GIL) zu ermöglichen.
Wenn Sie free-threaded Python ausprobieren möchten, wird die Verwendung von Python 3.14 empfohlen, da dort im Vergleich zu Python 3.13 eine Reihe von Problemen behoben wurden. Probieren Sie free-threaded gerne für Ihren Anwendungsfall aus und melden Sie alle Probleme!
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.
Von Loïc Estève und Olivier Grisel und vielen anderen Personen im breiteren Scientific Python- und CPython-Ökosystem, zum Beispiel Nathan Goldbaum, Ralf Gommers, Edgar Andrés Margffoy Tuay. #32079
sklearn.base#
Merkmal Refactoring von
dirinBaseEstimator, um die Bedingungsprüfung inavailable_ifzu erkennen. Von John Hendricks und Miguel Parece. #31928Korrektur Behebung des Umgangs mit fehlenden Werten in Pandas bei der HTML-Darstellung aller Schätzer. Von Dea María Léon. #32341
sklearn.calibration#
Merkmal Hinzufügen der Temperatur-Skalierungsmethode in
calibration.CalibratedClassifierCV. Von Virgil Chan und Christian Lorentzen. #31068
sklearn.cluster#
Effizienz
cluster.kmeans_plusplusverwendet nun direktnp.cumsumohne zusätzliche numerische Stabilitätsprüfungen und ohne Umwandlung innp.float64. Von Tiziano Zito #31991Korrektur Der Standardwert des Parameters
copyincluster.HDBSCANwird in Version 1.10 vonFalseaufTruegeändert, um Datenmodifikationen zu vermeiden und die Konsistenz mit anderen Schätzern zu wahren. Von Sarthak Puri. #31973
sklearn.compose#
Korrektur
compose.ColumnTransformerpasst nun korrekt auf Daten, die alspolars.DataFramebereitgestellt werden, wenn ein Transformer eine Sparse-Ausgabe hat. Von Phillipp Gnan. #32188
sklearn.covariance#
Effizienz
sklearn.covariance.GraphicalLasso,sklearn.covariance.GraphicalLassoCVundsklearn.covariance.graphical_lassomitmode="cd"profitieren von der Leistungsverbesserung der Anpassungszeit vonsklearn.linear_model.Lassodurch Gap Safe Screening Rules. Von Christian Lorentzen. #31987Korrektur Unkontrollierbare Zufälligkeit in
sklearn.covariance.GraphicalLasso,sklearn.covariance.GraphicalLassoCVundsklearn.covariance.graphical_lassobehoben. Fürmode="cd"verwenden sie nun zyklischen Koordinatenabstieg. Zuvor war es zufälliger Koordinatenabstieg mit unkontrollierbarer Zufallszahlenerzeugung. Von Christian Lorentzen. #31987Korrektur Korrektur für
covariance.MinCovDetzur Anpassung der Konsistenz bei der Normalverteilung hinzugefügt. Dies reduziert die Verzerrung, die bei der Anwendung dieser Methode auf normalverteilte Daten auftritt. Von Daniel Herrera-Esposito #32117
sklearn.decomposition#
Effizienz
sklearn.decomposition.DictionaryLearningundsklearn.decomposition.MiniBatchDictionaryLearningmitfit_algorithm="cd",sklearn.decomposition.SparseCodermittransform_algorithm="lasso_cd",sklearn.decomposition.MiniBatchSparsePCA,sklearn.decomposition.SparsePCA,sklearn.decomposition.dict_learningundsklearn.decomposition.dict_learning_onlinemitmethod="cd",sklearn.decomposition.sparse_encodemitalgorithm="lasso_cd"profitieren alle von der Leistungsverbesserung der Anpassungszeit vonsklearn.linear_model.Lassodurch Gap Safe Screening Rules. Von Christian Lorentzen. #31987Verbesserung
decomposition.SparseCoderfolgt nun der Transformer-API von scikit-learn. Zusätzlich validiert die Methodefitnun die Eingabe und Parameter. Von François Paugam. #32077Korrektur Hinzufügen von Eingabeprüfungen zur Methode
inverse_transformvondecomposition.PCAunddecomposition.IncrementalPCA. #29310 von Ian Faust. #29310
sklearn.discriminant_analysis#
Merkmal Hinzufügen von
solver,covariance_estimatorundshrinkageindiscriminant_analysis.QuadraticDiscriminantAnalysis. Die resultierende Klasse ist der vondiscriminant_analysis.LinearDiscriminantAnalysisähnlicher und ermöglicht mehr Flexibilität bei der Schätzung der Kovarianzmatrizen. Von Daniel Herrera-Esposito. #32108
sklearn.ensemble#
Korrektur
ensemble.BaggingClassifier,ensemble.BaggingRegressorundensemble.IsolationForestverwenden nunsample_weightzum Ziehen der Stichproben, anstatt sie multipliziert mit einer gleichmäßig zufällig ausgewählten Maske an die zugrunde liegenden Schätzer weiterzuleiten. Darüber hinaus wird, wennmax_samplesein Float ist, dieser nun als Bruchteil vonsample_weight.sum()anstatt vonX.shape[0]interpretiert. Der neue Standardwertmax_samples=NoneziehtX.shape[0]Stichproben, unabhängig vonsample_weight. Von Antoine Baker. #31414 und #32825
sklearn.feature_selection#
Verbesserung
feature_selection.SelectFromModelerzwingt nun nicht mehr, dassmax_featureskleiner oder gleich der Anzahl der Eingabemerkmale ist. Von Thibault #31939
sklearn.gaussian_process#
Effizienz
GaussianProcessRegressor.predictwird schneller, wennreturn_covundreturn_stdbeideFalsesind. Von Rafael Ayllón Gavilán. #31431
sklearn.linear_model#
Effizienz
linear_model.ElasticNetundlinear_model.Lassomitprecompute=Falseverbrauchen weniger Speicher für dichteXund sind etwas schneller. Zuvor verbrauchten sie doppelt so viel Speicher wieX, selbst für Fortran-kontinuierlichesX. Von Christian Lorentzen #31665Effizienz
linear_model.ElasticNetundlinear_model.Lassovermeiden eine doppelte Eingabeüberprüfung und sind daher etwas schneller. Von Christian Lorentzen. #31848Effizienz
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lasso,linear_model.LassoCV,linear_model.MultiTaskElasticNet,linear_model.MultiTaskElasticNetCV,linear_model.MultiTaskLassoundlinear_model.MultiTaskLassoCVsind schneller zu trainieren, da ein BLAS Level 1 (axpy) Aufruf in der innersten Schleife vermieden wird. Dasselbe gilt für die Funktionenlinear_model.enet_pathundlinear_model.lasso_path. Von Christian Lorentzen #31956 und #31880Effizienz
linear_model.ElasticNetCV,linear_model.LassoCV,linear_model.MultiTaskElasticNetCVundlinear_model.MultiTaskLassoCVvermeiden eine zusätzliche Kopie vonXmit dem Standardwertcopy_X=True. Von Christian Lorentzen. #31946Effizienz
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lasso,linear_model.LassoCV,linear_model.MultiTaskElasticNet,linear_model.MultiTaskElasticNetCVlinear_model.MultiTaskLasso,linear_model.MultiTaskLassoCVsowielinear_model.lasso_pathundlinear_model.enet_pathimplementieren nun "gap safe" Screening-Regeln im Coordinate-Descent-Solver für dichte und spärlicheX. Die Beschleunigung der Trainingszeit ist besonders ausgeprägt (bis zu 10-fach möglich), wenn Regularisierungspfade berechnet werden, wie es die *CV-Varianten der obigen Schätzer tun. Es gibt nun eine zusätzliche Prüfung des Stoppkriteriums, bevor die Hauptschleife der Abstiegschritte beginnt. Da das Stoppkriterium die Berechnung des dualen Abstands erfordert, erfolgt das Screening immer dann, wenn der duale Abstand berechnet wird. Von Christian Lorentzen #31882, #31986, #31987 und #32014Effizienz
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lasso,linear_model.LassoCV,MultiTaskElasticNet,MultiTaskElasticNetCV,MultiTaskLasso,MultiTaskLassoCV, sowielinear_model.enet_pathundlinear_model.lasso_pathverwenden nundualer Abstand <= tolanstelle vondualer Abstand < tolals Stoppkriterium. Die resultierenden Koeffizienten können in seltenen Fällen von früheren scikit-learn-Versionen abweichen. Von Christian Lorentzen. #31906Korrektur Korrigiert das Konvergenzkriterium für SGD-Modelle, um eine vorzeitige Konvergenz zu vermeiden, wenn
tol != Noneist. Dies betrifft hauptsächlichSGDOneClassSVM, wirkt sich aber auch aufSGDClassifierundSGDRegressoraus. Vor dieser Korrektur wurde nur die Verlustfunktion ohne Strafe als Konvergenzprüfung verwendet, während nun das vollständige Ziel mit Regularisierung verwendet wird. Von Guillaume Lemaitre und kostayScr #31856Korrektur Der zulässige Parameterbereich für die anfängliche Lernrate
eta0inlinear_model.SGDClassifier,linear_model.SGDOneClassSVM,linear_model.SGDRegressorundlinear_model.Perceptronänderte sich von nicht-negativen Zahlen zu strikt positiven Zahlen. Infolgedessen änderte sich der Standardwerteta0vonlinear_model.SGDClassifierundlinear_model.SGDOneClassSVMvon 0 auf 0.01. Beachten Sie jedoch, dasseta0von der Standardlernrate „optimal“ dieser beiden Schätzer nicht verwendet wird. Von Christian Lorentzen. #31933Korrektur
linear_model.LogisticRegressionCVkann CV-Splits handhaben, bei denen einige Klassenlabels in einigen Folds fehlen. Zuvor wurde ein Fehler ausgelöst, wenn ein Klassenlabel in einem Fold fehlte. Von Christian Lorentzen. #32747API-Änderung
linear_model.PassiveAggressiveClassifierundlinear_model.PassiveAggressiveRegressorsind veraltet und werden in 1.10 entfernt. Äquivalente Schätzer sind mitlinear_model.SGDClassifierundSGDRegressorverfügbar, die beide die Optionenlearning_rate="pa1"und"pa2"bereitstellen. Der Parametereta0kann verwendet werden, um den Aggressivitätsparameter der Passive-Aggressive-Algorithmen anzugeben, der im Referenzpapier als C bezeichnet wird. Von Christian Lorentzen #31932 und #29097API-Änderung
linear_model.SGDClassifier,linear_model.SGDRegressorundlinear_model.SGDOneClassSVMkennzeichnen nun negative Werte für den Parameterpower_tals veraltet. Die Verwendung eines negativen Werts wird in Version 1.8 eine Warnung und in Version 1.10 einen Fehler auslösen. Stattdessen muss ein Wert im Bereich [0.0, inf) verwendet werden. Von Ritvi Alagusankar #31474API-Änderung Auslösen eines Fehlers in
sklearn.linear_model.LogisticRegression, wenn der liblinear-Solver verwendet wird und die Eingabe-X-Werte größer als 1e30 sind, da der liblinear-Solver sonst einfriert. Von Shruti Nath. #31888API-Änderung
linear_model.LogisticRegressionCVhat einen neuen Parameteruse_legacy_attributeserhalten, um die Typen und Formen der trainierten AttributeC_,l1_ratio_,coefs_paths_,scores_undn_iter_zu steuern. Der aktuelle StandardwertTruebehält das alte Verhalten bei. WennFalse, dannC_ist ein Float.l1_ratio_ist ein Float.coefs_paths_ist ein ndarray der Form (n_folds, n_l1_ratios, n_cs, n_classes, n_features). Bei binären Problemen (n_classes=2) ist die vorletzte Dimension 1.scores_ist ein ndarray der Form (n_folds, n_l1_ratios, n_cs).n_iter_ist ein ndarray der Form (n_folds, n_l1_ratios, n_cs).
In Version 1.10 wird der Standardwert auf
Falsegeändert unduse_legacy_attributeswird veraltet sein. In 1.12 wirduse_legacy_attributesentfernt. Von Christian Lorentzen. #32114API-Änderung Der Parameter
penaltyvonlinear_model.LogisticRegressionundlinear_model.LogisticRegressionCVist veraltet und wird in Version 1.10 entfernt. Das äquivalente Verhalten kann wie folgt erreicht werden:für
linear_model.LogisticRegressionverwenden Sie
l1_ratio=0anstelle vonpenalty="l2"verwenden Sie
l1_ratio=1anstelle vonpenalty="l1"verwenden Sie
0<l1_ratio<1anstelle vonpenalty="elasticnet"verwenden Sie
C=np.infanstelle vonpenalty=None
für
linear_model.LogisticRegressionCVverwenden Sie
l1_ratios=(0,)anstelle vonpenalty="l2"verwenden Sie
l1_ratios=(1,)anstelle vonpenalty="l1"das Äquivalent zu
penalty=Nonebesteht darin,np.infals Element des ParametersCszu haben
Für
linear_model.LogisticRegressionhat sich der Standardwert vonl1_ratiovonNoneauf0.0geändert. Das Setzen vonl1_ratio=Noneist veraltet und löst in Version 1.10 einen Fehler aus.Für
linear_model.LogisticRegressionCVhat sich der Standardwert vonl1_ratiosvonNoneauf"warn"geändert. Er wird in Version 1.10 auf(0,)geändert. Das Setzen vonl1_ratios=Noneist veraltet und löst in Version 1.10 einen Fehler aus.API-Änderung Der Parameter
n_jobsvonlinear_model.LogisticRegressionist veraltet und wird in 1.10 entfernt. Er hat seit 1.8 keine Auswirkung mehr. Von Loïc Estève. #32742
sklearn.manifold#
Hauptmerkmal
manifold.ClassicalMDSwurde implementiert, um klassische MDS (Eigenzerlegung der doppelt zentrierten Distanzmatrix) durchzuführen. Von Dmitry Kobak und Meekail Zain #31322Merkmal
manifold.MDSunterstützt nun beliebige Distanzmetriken (über die Parametermetricundmetric_params) und Initialisierung über klassische MDS (über den Parameterinit). Der Parameterdissimilaritywurde veraltet. Der alte Parametermetricwurde inmetric_mdsumbenannt. Von Dmitry Kobak #32229Merkmal
manifold.TSNEunterstützt nun PCA-Initialisierung mit spärlichen Eingabematrizen. Von Arturo Amor. #32433
sklearn.metrics#
Merkmal
metrics.d2_brier_scorewurde hinzugefügt, die das D² für den Brier-Score berechnet. Von Omar Salman. #28971Merkmal Hinzufügen der Funktion
metrics.confusion_matrix_at_thresholds, die die Anzahl der True Negatives, False Positives, False Negatives und True Positives pro Schwellenwert zurückgibt. Von Success Moses. #30134Effizienz Vermeidung redundanter Eingabevalidierung in
metrics.d2_log_loss_score, was zu einer 1,2-fachen Beschleunigung in groß angelegten Benchmarks führt. Von Olivier Grisel und Omar Salman #32356Verbesserung
metrics.median_absolute_errorunterstützt nun Array-API-kompatible Eingaben. Von Lucy Liu. #31406Verbesserung Verbesserte Fehlermeldung für spärliche Eingaben für die folgenden Metriken:
metrics.accuracy_score,metrics.multilabel_confusion_matrix,metrics.jaccard_score,metrics.zero_one_loss,metrics.f1_score,metrics.fbeta_score,metrics.precision_recall_fscore_support,metrics.class_likelihood_ratios,metrics.precision_score,metrics.recall_score,metrics.classification_report,metrics.hamming_loss. Von Lucy Liu. #32047Fix
metrics.median_absolute_errorverwendet nun_averaged_weighted_percentileanstelle von_weighted_percentilezur Berechnung des Medians, wennsample_weightnichtNoneist. Dies ist äquivalent zur Verwendung der "averaged_inverted_cdf"-Methode anstelle der "inverted_cdf"-Quantilmethode, was bei gleichen Gewichten zu Ergebnissen führt, die mitnumpy.medianäquivalent sind. Von Lucy Liu #30787Fix Zusätzliche
sample_weight-Prüfungen wurden zumetrics.accuracy_score,metrics.balanced_accuracy_score,metrics.brier_score_loss,metrics.class_likelihood_ratios,metrics.classification_report,metrics.cohen_kappa_score,metrics.confusion_matrix,metrics.f1_score,metrics.fbeta_score,metrics.hamming_loss,metrics.jaccard_score,metrics.matthews_corrcoef,metrics.multilabel_confusion_matrix,metrics.precision_recall_fscore_support,metrics.precision_score,metrics.recall_scoreundmetrics.zero_one_losshinzugefügt.sample_weightdarf nur 1D sein, konsistent zuy_trueundy_predin der Länge, und alle Werte müssen endlich und nicht komplex sein. Von Lucy Liu. #31701Fix
y_predwird zugunsten vony_scoreinmetrics.DetCurveDisplay.from_predictionsundmetrics.PrecisionRecallDisplay.from_predictionsals veraltet markiert.y_predwird in Version 1.10 entfernt. Von Luis #31764Fix Die
repr-Darstellung eines Scorers, der mit einerpartialscore_funcerstellt wurde, funktioniert nun korrekt und verwendet diereprdes angegebenenpartial-Objekts. Von Adrin Jalali. #31891Fix Keywords, die im Parameter
curve_kwargsvonmetrics.RocCurveDisplay.from_cv_resultsangegeben sind, überschreiben nun nur noch ihren entsprechenden Standardwert, bevor sie an dieplot-Methode von Matplotlib übergeben werden. Zuvor überschrieb die Übergabe beliebigercurve_kwargsalle Standard-Keywords. Von Lucy Liu. #32313Fix Registrierte benannte Scorer-Objekte für
metrics.d2_brier_scoreundmetrics.d2_log_loss_scorewurden registriert und ihre Eingabevalidierung wurde aktualisiert, um mit verwandten Metrikfunktionen konsistent zu sein. Von Olivier Grisel und Omar Salman #32356Fix
metrics.RocCurveDisplay.from_cv_resultswird nunpos_labelalsestimator.classes_[-1]ableiten, unter Verwendung des Estimators auscv_results, wennpos_label=Noneist. Zuvor wurde ein Fehler ausgelöst, wennpos_label=Nonewar. Von Lucy Liu. #32372Fix Alle Klassifizierungsmetriken lösen nun einen
ValueErroraus, wenn erforderliche Eingabearrays (y_pred,y_true,y1,y2,pred_decisionodery_proba) leer sind. Zuvor löstenaccuracy_score,class_likelihood_ratios,classification_report,confusion_matrix,hamming_loss,jaccard_score,matthews_corrcoef,multilabel_confusion_matrixundprecision_recall_fscore_supportdiesen Fehler nicht konsistent aus. Von Stefanie Senger. #32549API Change
metrics.cluster.entropyist veraltet und wird in Version 1.10 entfernt. Von Lucy Liu #31294API Change Der Parameter
estimator_nameist zugunsten vonnameinmetrics.PrecisionRecallDisplayveraltet und wird in Version 1.10 entfernt. Von Lucy Liu. #32310
sklearn.model_selection#
- Enhancement
model_selection.StratifiedShuffleSplitgibt nun an, welche Klassen zu wenige Mitglieder haben, wenn ein
ValueErrorausgelöst wird, falls eine Klasse weniger als 2 Mitglieder hat. Dies ist nützlich, um zu identifizieren, welche Klassen den Fehler verursachen. Von Marc Bresson #32265
- Enhancement
Fix Verhalten beim Mischen in
model_selection.StratifiedGroupKFoldbehoben. Nun wird die Stratifizierung zwischen den Folds auch dann beibehalten, wennshuffle=Trueist. Von Pau Folch. #32540
sklearn.multiclass#
Fix Das Verhalten bei Gleichstand in
multiclass.OneVsRestClassifierwurde korrigiert, um das Verhalten bei Gleichstand vonnp.argmaxzu entsprechen. Von Lakshmi Krishnan. #15504
sklearn.naive_bayes#
Fix
naive_bayes.GaussianNBbehält den Datentyp der angepassten Attribute gemäß dem Datentyp vonXbei. Von Omar Salman #32497
sklearn.preprocessing#
Enhancement
preprocessing.SplineTransformerkann jetzt fehlende Werte mit dem Parameterhandle_missingverarbeiten. Von Stefanie Senger. #28043Enhancement
preprocessing.PowerTransformergibt nun eine Warnung aus, wenn NaN-Werte bei der inversen Transformation,inverse_transform, auftreten, was typischerweise durch extrem schiefe Daten verursacht wird. Von Roberto Mourao #29307Enhancement
preprocessing.MaxAbsScalerkann nun Werte außerhalb des Bereichs in zurückgehaltenen Daten mit dem Parameterclipbeschneiden. Von Hleb Levitski. #31790Fix Ein Fehler in
preprocessing.OneHotEncoderwurde behoben, bei demhandle_unknown='warn'sich fälschlicherweise wie'ignore'verhielt, anstatt wie'infrequent_if_exist'. Von Nithurshen #32592
sklearn.semi_supervised#
Fix Benutzerdefinierte Kernel-Ergebnisse werden nun in
semi_supervised.LabelPropagationnormalisiert, so dass alle Zeilensummen gleich 1 sind, auch wenn der Kernel asymmetrische oder uneinheitliche Zeilensummen ergibt. Von Dan Schult. #31924
sklearn.tree#
Efficiency
tree.DecisionTreeRegressormitcriterion="absolute_error"läuft nun deutlich schneller: O(n log n) Komplexität gegenüber früheren O(n^2), was die Skalierung auf Millionen von Datenpunkten, sogar hunderte von Millionen, ermöglicht. Von Arthur Lacote #32100Fix
tree.export_textwurde threadsicher gemacht. Von Olivier Grisel. #30041Fix
export_graphvizlöst nun einenValueErroraus, wenn die übergebenen Feature-Namen nicht alle Strings sind. Von Guilherme Peixoto #31036Fix
tree.DecisionTreeRegressormitcriterion="absolute_error"traf manchmal suboptimale Splits (d. h. Splits, die den absoluten Fehler nicht minimierten). Dies ist nun behoben. Daher können neu trainierte Bäume leicht unterschiedliche Ergebnisse liefern. Von Arthur Lacote #32100Fix Eine Regression in Entscheidungsbäumen wurde behoben, bei der fast konstante Merkmale nicht richtig behandelt wurden. Von Sercan Turkmen. #32259
Fix Die Aufteilungslogik während des Trainings in
tree.DecisionTree*(und folglich inensemble.RandomForest*) für Knoten mit nahezu konstanten Merkmalswerten und fehlenden Werten wurde korrigiert. Zuvor wurden Bäume abgeschnitten, wenn ein konstantes Merkmal gefunden wurde, auch wenn aufgrund fehlender Werte weitere Aufteilungen möglich gewesen wären. Von Arthur Lacote #32274Fix Die Handhabung fehlender Werte in der Methode
decision_pathvon Bäumen (tree.DecisionTreeClassifier,tree.DecisionTreeRegressor,tree.ExtraTreeClassifierundtree.ExtraTreeRegressor) wurde korrigiert. Von Arthur Lacote. #32280Fix Die Aufteilungslogik von Entscheidungsbäumen mit fehlenden Werten in einigen Merkmalen wurde korrigiert. In einigen Fällen wurde die letzte nicht fehlende Stichprobe nicht korrekt partitioniert. Von Tim Head und Arthur Lacote. #32351
sklearn.utils#
Efficiency Die Funktion
sklearn.utils.extmath.safe_sparse_dotwurde durch eine dedizierte Cython-Routine für den Falla @ bmit sparsen 2D-Matrizenaundbund wenn eine dichte Ausgabe erforderlich ist (d. h.dense_output=True) verbessert. Dies verbessert mehrere Algorithmen in scikit-learn bei der Verarbeitung von sparsen Arrays (oder Matrizen). Von Christian Lorentzen. #31952Enhancement Die Parameter-Tabelle in der HTML-Darstellung aller scikit-learn-Estimators und allgemeiner von Estimators, die von
base.BaseEstimatorerben, zeigt nun die Parameterbeschreibung als Tooltip an und enthält einen Link zur Online-Dokumentation für jeden Parameter. Von Dea María Léon. #31564Enhancement
sklearn.utils._check_sample_weightlöst nun eine klarere Fehlermeldung aus, wenn die bereitgestellten Gewichte weder ein Skalar noch ein 1D-Array ähnlicher Größe wie die Eingabedaten sind. Von Kapil Parekh. #31873Enhancement
sklearn.utils.estimator_checks.parametrize_with_checksermöglicht nun die Konfiguration des strikten Modus für xfailing-Tests. Tests, die unerwartet erfolgreich sind, führen zu einem Testfehler. Das Standardverhalten bleibt unverändert. Von Tim Head. #31951Enhancement Die Ausrichtung der Symbole "?" und "i" wurde korrigiert und das Farbschema der HTML-Darstellung von Estimators verbessert. Von Guillaume Lemaitre. #31969
Fix Die Art und Weise, wie Farben bei der Anzeige eines Estimators als HTML-Darstellung gewählt werden, wurde geändert. Farben werden nicht mehr an das Benutzerthema angepasst, sondern basierend auf dem deklarierten Farbschema (hell oder dunkel) für VSCode und JupyterLab gewählt. Wenn das Thema kein Farbschema deklariert, wird das Schema gemäß der Standardtextfarbe der Seite gewählt; falls dies fehlschlägt, wird auf eine Media Query zurückgegriffen. Von Matt J.. #32330
API Change
utils.extmath.stable_cumsumist veraltet und wird in Version 1.10 entfernt. Verwenden Sie stattdessennp.cumulative_summit dem gewünschten Datentyp. Von Tiziano Zito. #32258
Code- und Dokumentationsbeitragende
Vielen Dank an alle, die seit Version 1.7 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter
$id, 4hm3d, Acciaro Gennaro Daniele, achyuthan.s, Adam J. Stewart, Adriano Leão, Adrien Linares, Adrin Jalali, Aitsaid Azzedine Idir, Alexander Fabisch, Alexandre Abraham, Andrés H. Zapke, Anne Beyer, Anthony Gitter, AnthonyPrudent, antoinebaker, Arpan Mukherjee, Arthur, Arthur Lacote, Arturo Amor, ayoub.agouzoul, Ayrat, Ayush, Ayush Tanwar, Basile Jezequel, Bhavya Patwa, BRYANT MUSI BABILA, Casey Heath, Chems Ben, Christian Lorentzen, Christian Veenhuis, Christine P. Chai, cstec, C. Titus Brown, Daniel Herrera-Esposito, Dan Schult, dbXD320, Dea María Léon, Deepyaman Datta, dependabot[bot], Dhyey Findoriya, Dimitri Papadopoulos Orfanos, Dipak Dhangar, Dmitry Kobak, elenafillo, Elham Babaei, EmilyXinyi, Emily (Xinyi) Chen, Eugen-Bleck, Evgeni Burovski, fabarca, Fabrizio Damicelli, Faizan-Ul Huda, François Goupil, François Paugam, Gaetan, GaetandeCast, Gesa Loof, Gonçalo Guiomar, Gordon Grey, Gowtham Kumar K., Guilherme Peixoto, Guillaume Lemaitre, hakan çanakçı, Harshil Sanghvi, Henri Bonamy, Hleb Levitski, HulusiOzy, hvtruong, Ian Faust, Imad Saddik, Jérémie du Boisberranger, Jérôme Dockès, John Hendricks, Joris Van den Bossche, Josef Affourtit, Josh, jshn9515, Junaid, KALLA GANASEKHAR, Kapil Parekh, Kenneth Enevoldsen, Kian Eliasi, kostayScr, Krishnan Vignesh, kryggird, Kyle S, Lakshmi Krishnan, Leomax, Loic Esteve, Luca Bittarello, Lucas Colley, Lucy Liu, Luigi Giugliano, Luis, Mahdi Abid, Mahi Dhiman, Maitrey Talware, Mamduh Zabidi, Manikandan Gobalakrishnan, Marc Bresson, Marco Edward Gorelli, Marek Pokropiński, Maren Westermann, Marie Sacksick, Marija Vlajic, Matt J., Mayank Raj, Michael Burkhart, Michael Šimáček, Miguel Fernandes, Miro Hrončok, Mohamed DHIFALLAH, Muhammad Waseem, MUHAMMED SINAN D, Natalia Mokeeva, Nicholas Farr, Nicolas Bolle, Nicolas Hug, nithish-74, Nithurshen, Nitin Pratap Singh, NotAceNinja, Olivier Grisel, omahs, Omar Salman, Patrick Walsh, Peter Holzer, pfolch, ph-ll-pp, Prashant Bansal, Quan H. Nguyen, Radovenchyk, Rafael Ayllón Gavilán, Raghvender, Ranjodh Singh, Ravichandranayakar, Remi Gau, Reshama Shaikh, Richard Harris, RishiP2006, Ritvi Alagusankar, Roberto Mourao, Robert Pollak, Roshangoli, roychan, R Sagar Shresti, Sarthak Puri, saskra, scikit-learn-bot, Scott Huberty, Sercan Turkmen, Sergio P, Shashank S, Shaurya Bisht, Shivam, Shruti Nath, SIKAI ZHANG, sisird864, SiyuJin-1, S. M. Mohiuddin Khan Shiam, Somdutta Banerjee, sotagg, Sota Goto, Spencer Bradkin, Stefan, Stefanie Senger, Steffen Rehberg, Steven Hur, Success Moses, Sylvain Combettes, ThibaultDECO, Thomas J. Fan, Thomas Li, Thomas S., Tim Head, Tingwei Zhu, Tiziano Zito, TJ Norred, Username46786, Utsab Dahal, Vasanth K, Veghit, VirenPassi, Virgil Chan, Vivaan Nanavati, Xiao Yuan, xuzhang0327, Yaroslav Halchenko, Yaswanth Kumar, Zijun yi, zodchi94, Zubair Shakoor