Version 0.24#
Eine kurze Beschreibung der wichtigsten Highlights des Releases finden Sie unter Release Highlights für scikit-learn 0.24.
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 0.24.2#
April 2021
Änderungsprotokoll#
sklearn.compose#
Fix
compose.ColumnTransformer.get_feature_namesruftget_feature_namesnicht für Transformer mit leerer Spaltenauswahl auf. #19579 von Thomas Fan.
sklearn.cross_decomposition#
Fix Eine Regression in
cross_decomposition.CCAbehoben. #19646 von Thomas Fan.Fix
cross_decomposition.PLSRegressionlöst eine Warnung bei konstanten y-Residuen aus, anstatt einesStopIteration-Fehlers. #19922 von Thomas Fan.
sklearn.decomposition#
Fix Ein Fehler in der
inverse_transformvondecomposition.KernelPCAbehoben. #19732 von Kei Ishikawa.
sklearn.ensemble#
Fix Ein Fehler in
ensemble.HistGradientBoostingRegressorfitmit dem Parametersample_weightund der Verlustfunktionleast_absolute_deviationbehoben. #19407 von Vadim Ushtanit.
sklearn.feature_extraction#
Fix Ein Fehler behoben, um mehrere Strings für eine Kategorie zu unterstützen, wenn
sparse=Falseinfeature_extraction.DictVectorizerverwendet wird. #19982 von Guillaume Lemaitre.
sklearn.gaussian_process#
Fix Die explizite Bildung der inversen Kovarianzmatrix in
gaussian_process.GaussianProcessRegressorvermieden, wenn die Ausgabe der Standardabweichung eingestellt ist. Bei bestimmten Kovarianzmatrizen ist diese Umkehrung instabil zu berechnen. Das Aufrufen des Cholesky-Lösers mildert dieses Problem bei der Berechnung ab. #19939 von Ian Halvic.Fix Division durch Null vermieden, wenn ein konstantes Ziel bei der Skalierung in
gaussian_process.GaussianProcessRegressoraufgetreten ist. Dies lag an einer Standardabweichung von 0. Nun wird dieser Fall erkannt und die Standardabweichung auf 1 gesetzt, was eine Division durch Null und damit das Vorhandensein von NaN-Werten im normalisierten Ziel vermeidet. #19703 von @sobkevich, Boris Villazón-Terrazas und Alexandr Fonari.
sklearn.linear_model#
Fix : Ein Fehler in
linear_model.LogisticRegressionbehoben: Das Objektsample_weightwird nicht mehr verändert. #19182 von Yosuke KOBAYASHI.
sklearn.metrics#
Fix
metrics.top_k_accuracy_scoreunterstützt jetzt Multiclass-Probleme, bei denen nur zwei Klassen iny_truevorkommen und alle Klassen inlabelsangegeben sind. #19721 von Joris Clement.
sklearn.model_selection#
Fix
model_selection.RandomizedSearchCVundmodel_selection.GridSearchCVzeigen jetzt korrekt den Score für einzelne Metriken undverbose> 2 an. #19659 von Thomas Fan.Fix Einige Werte im Attribut
cv_results_vonmodel_selection.HalvingRandomSearchCVundmodel_selection.HalvingGridSearchCVwurden nicht korrekt in Numpy-Arrays konvertiert. #19211 von Nicolas Hug.Fix Die Methode
fitder sukzessiven Halbierungs-Parametersuche (model_selection.HalvingGridSearchCVundmodel_selection.HalvingRandomSearchCV) behandelt nun den Parametergroupskorrekt. #19847 von Xiaoyu Chai.
sklearn.multioutput#
Fix
multioutput.MultiOutputRegressorfunktioniert jetzt mit Estimatoren, diepredictwährend des Fits dynamisch definieren, wie z.B.ensemble.StackingRegressor. #19308 von Thomas Fan.
sklearn.preprocessing#
Fix Validiert den Konstruktorparameter
handle_unknowninpreprocessing.OrdinalEncoder, um nur die Strategien'error'und'use_encoded_value'zuzulassen. #19234 vonGuillaume Lemaitre <glemaitre>.Fix Korrigiert Encoder-Kategorien mit dtype='S' in
preprocessing.OneHotEncoderundpreprocessing.OrdinalEncoder. #19727 von Andrew Delong.Fix
preprocessing.OrdinalEncoder.transformbehandelt unbekannte Werte für String-Datentypen korrekt. #19888 von Thomas Fan.Fix Die Methode
fitvonpreprocessing.OneHotEncoder.fitverändert den Parameterdropnicht mehr. #19924 von Thomas Fan.
sklearn.semi_supervised#
Fix NaN bei der Label-Propagierung in
LabelPropagationvermeiden. #19271 von Zhaowei Wang.
sklearn.tree#
Fix Ein Fehler in
fitvontree.BaseDecisionTreebehoben, der unter bestimmten Bedingungen zu Segmentierungsfehlern führte.fitkopiert nun dasCriterion-Objekt tief, um gemeinsame gleichzeitige Zugriffe zu verhindern. #19580 von Samuel Brice und Alex Adamson und Wil Yegelwel.
sklearn.utils#
Fix Besserer Umgang mit CSS, das von
utils.estimator_html_reprbereitgestellt wird, indem der HTML-Darstellung CSS-IDs zugewiesen werden. #19417 von Thomas Fan.
Version 0.24.1#
Januar 2021
Paketierung#
Die scikit-learn-Wheels 0.24.0 funktionierten aufgrund von libomp nicht mit MacOS <1.15. Die Version von libomp, die zum Bauen der Wheels verwendet wurde, war zu neu für ältere macOS-Versionen. Dieses Problem wurde für scikit-learn-Wheels 0.24.1 behoben. Auf PyPI.org veröffentlichte scikit-learn-Wheels unterstützen nun offiziell macOS 10.13 und neuer.
Änderungsprotokoll#
sklearn.metrics#
Fix Numerische Stabilitätsfehler, der in
metrics.adjusted_mutual_info_scoreundmetrics.mutual_info_scoremit NumPy 1.20+ auftreten konnte, behoben. #19179 von Thomas Fan.
sklearn.semi_supervised#
Fix
semi_supervised.SelfTrainingClassifierakzeptiert jetzt Meta-Estimators (z.B.ensemble.StackingClassifier). Die Validierung dieses Estimators erfolgt auf dem trainierten Estimator, sobald die Methodepredict_probabekannt ist. #19126 von Guillaume Lemaitre.
Version 0.24.0#
Dezember 2020
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 Das Verhalten von
decomposition.KernelPCAist nun konsistenter zwischen 32-Bit- und 64-Bit-Daten, wenn der Kernel kleine positive Eigenwerte hat.Fix
decomposition.TruncatedSVDwird deterministisch, indem ein Parameterrandom_stateverfügbar gemacht wird.Fix
linear_model.Perceptronwennpenalty='elasticnet'.Fix Änderung der Zufallsstichprobenverfahren für die Zentrumsinitialisierung von
cluster.KMeans.
Details sind in der folgenden Changelog aufgeführt.
(Obwohl wir uns bemühen, Benutzer durch die Bereitstellung dieser Informationen besser zu informieren, können wir keine Vollständigkeit dieser Liste garantieren.)
Changelog#
sklearn.base#
Fix
base.BaseEstimator.get_paramslöst nun einenAttributeErroraus, wenn ein Parameter nicht als Instanzattribut abgerufen werden kann. Zuvor wurdeNonezurückgegeben. #17448 von Juan Carlos Alfaro Jiménez.
sklearn.calibration#
Efficiency
calibration.CalibratedClassifierCV.fitunterstützt nun die Parallelisierung überjoblib.Parallelmit dem Argumentn_jobs. #17107 von Julien Jerphanion.Enhancement Ermöglicht die Verwendung von
calibration.CalibratedClassifierCVmit einem vorab trainiertenpipeline.Pipeline, bei dem die Daten anfänglich nichtXals Array-ähnlich, Sparse-Matrix oder DataFrame sind. #17546 von Lucy Liu.Enhancement Fügt den Parameter
ensemblezucalibration.CalibratedClassifierCVhinzu, der die Implementierung der Kalibrierung über ein Ensemble von Kalibratoren (aktuelle Methode) oder nur einen Kalibrator unter Verwendung aller Daten ermöglicht (ähnlich der integrierten Funktion vonsklearn.svm-Estimators mit dem Parameterprobabilities=True). #17856 von Lucy Liu und Andrea Esuli.
sklearn.cluster#
Enhancement
cluster.AgglomerativeClusteringhat einen neuen Parametercompute_distances. Wenn dieser aufTruegesetzt ist, werden Abstände zwischen Clustern berechnet und im Attributdistances_gespeichert, auch wenn der Parameterdistance_thresholdnicht verwendet wird. Dieser neue Parameter ist nützlich zur Erzeugung von Dendrogramm-Visualisierungen, verursacht aber einen rechnerischen und speicherintensiven Aufwand. #17984 von Michael Riedmann, Emilie Delattre und Francesco Casalegno.Enhancement
cluster.SpectralClusteringundcluster.spectral_clusteringhaben ein neues Schlüsselwortargumentverbose. Wenn es aufTruegesetzt ist, werden zusätzliche Meldungen angezeigt, die bei der Fehlersuche helfen können. #18052 von Sean O. Stalley.Enhancement
cluster.kmeans_plusplusals öffentliche Funktion hinzugefügt. Die Initialisierung mit KMeans++ kann nun separat aufgerufen werden, um initiale Clusterzentroide zu generieren. #17937 von @g-walshAPI Change Die Attribute
counts_undinit_size_voncluster.MiniBatchKMeanssind veraltet und werden in Version 1.1 (Umbenennung von 0.26) entfernt. #17864 von Jérémie du Boisberranger.
sklearn.compose#
Fix
compose.ColumnTransformerüberspringt Transformer, wenn der Spaltenselektor eine Liste von booleschen Werten ist, die False sind. #17616 von Thomas Fan.Fix
compose.ColumnTransformerzeigt nun den Rest im Diagramm an. #18167 von Thomas Fan.Fix
compose.ColumnTransformererzwingt nun eine strenge Zählung und Reihenfolge der Spaltennamen zwischenfitundtransform, indem es eine Fehlermeldung anstelle einer Warnung ausgibt, was dem Deprecation-Zyklus folgt. #18256 von Madhura Jayratne.
sklearn.covariance#
API Change
cv_alphas_wird zugunsten voncv_results_['alphas']undgrid_scores_zugunsten von Split-Scores incv_results_incovariance.GraphicalLassoCVals veraltet erklärt.cv_alphas_undgrid_scores_werden in Version 1.1 (Umbenennung von 0.26) entfernt. #16392 von Thomas Fan.
sklearn.cross_decomposition#
Fix Ein Fehler in
cross_decomposition.PLSSVDbehoben, der manchmal Komponenten in umgekehrter Reihenfolge der Wichtigkeit zurückgab. #17095 von Nicolas Hug.Fix Ein Fehler in
cross_decomposition.PLSSVD,cross_decomposition.CCAundcross_decomposition.PLSCanonicalbehoben, was zu fehlerhaften Vorhersagen fürest.transform(Y)führte, wenn die Trainingsdaten einzeln gezielt waren. #17095 von Nicolas Hug.Fix Erhöht die Stabilität von
cross_decomposition.CCA#18746 von Thomas Fan.API Change Die Grenzen des Parameters
n_componentssind nun eingeschränktin
[1, min(n_samples, n_features, n_targets)], fürcross_decomposition.PLSSVD,cross_decomposition.CCAundcross_decomposition.PLSCanonical.in
[1, n_features]odercross_decomposition.PLSRegression.
Ein Fehler wird in Version 1.1 (Umbenennung von 0.26) ausgelöst. #17095 von Nicolas Hug.
API Change Für
cross_decomposition.PLSSVD,cross_decomposition.CCAundcross_decomposition.PLSCanonicalwurden die Attributex_scores_undy_scores_als veraltet markiert und werden in Version 1.1 (Umbenennung von 0.26) entfernt. Sie können durch Aufruf vontransformauf die Trainingsdaten abgerufen werden. Das Attributnorm_y_weightswird ebenfalls entfernt. #17095 von Nicolas Hug.API Change Für
cross_decomposition.PLSRegression,cross_decomposition.PLSCanonical,cross_decomposition.CCAundcross_decomposition.PLSSVDwurden die Attributex_mean_,y_mean_,x_std_undy_std_als veraltet markiert und werden in Version 1.1 (Umbenennung von 0.26) entfernt. #18768 von Maren Westermann.Fix
decomposition.TruncatedSVDwird durch die Verwendung vonrandom_statedeterministisch. Dies steuert die Initialisierung der Gewichte des zugrunde liegenden ARPACK-Solvers. :pr:` #18302` von Gaurav Desai und Ivan Panico.
sklearn.datasets#
Feature
datasets.fetch_openmlvalidiert nun die MD5-Checksumme von heruntergeladenen oder zwischengespeicherten ARFF-Dateien, um die Datenintegrität zu gewährleisten. #14800 von Shashank Singh und Joel Nothman.Enhancement
datasets.fetch_openmlerlaubt nun das Argumentas_frameauf 'auto', was versucht, die zurückgegebenen Daten in einen pandas DataFrame zu konvertieren, es sei denn, die Daten sind dünn besetzt. #17396 von Jiaxiang.Enhancement
datasets.fetch_covtypeunterstützt nun das optionale Argumentas_frame; wenn es auf True gesetzt ist, sind diedata- undframe-Mitglieder des zurückgegebenen Bunch-Objekts pandas DataFrames und dastarget-Mitglied ist eine pandas Series. #17491 von Alex Liang.Enhancement
datasets.fetch_kddcup99unterstützt nun das optionale Argumentas_frame; wenn es auf True gesetzt ist, sind diedata- undframe-Mitglieder des zurückgegebenen Bunch-Objekts pandas DataFrames und dastarget-Mitglied ist eine pandas Series. #18280 von Alex Liang und Guillaume Lemaitre.Enhancement
datasets.fetch_20newsgroups_vectorizedunterstützt nun das Laden als pandasDataFramedurch Setzen vonas_frame=True. #17499 von Brigitta Sipőcz und Guillaume Lemaitre.API Change Der Standardwert von
as_frameindatasets.fetch_openmlwird von False zu 'auto' geändert. #17610 von Jiaxiang.
sklearn.decomposition#
API Change Für
decomposition.NMFwird derinit-Wert, wenn ‘init=None’ und n_components <= min(n_samples, n_features) ist, in Version 1.1 (Umbenennung von 0.26) von'nndsvd'auf'nndsvda'geändert. #18525 von Chiara Marmo.Enhancement
decomposition.FactorAnalysisunterstützt nun das optionale Argumentrotation, das die WerteNone,'varimax'oder'quartimax'annehmen kann. #11064 von Jona Sassenhagen.Enhancement
decomposition.NMFunterstützt nun den optionalen Parameterregularization, der die WerteNone, ‘components’, ‘transformation’ oder ‘both’ annehmen kann, in Übereinstimmung mitdecomposition.NMF.non_negative_factorization. #17414 von Bharat Raghunathan.Fix Das Verhalten von
decomposition.KernelPCAist nun konsistenter zwischen 32-Bit und 64-Bit Dateneingaben, wenn der Kernel kleine positive Eigenwerte hat. Kleine positive Eigenwerte wurden für 32-Bit-Daten nicht korrekt verworfen. #18149 von Sylvain Marié.Fix Behebung von
decomposition.SparseCoder, damit es der scikit-learn API folgt und Klonen unterstützt. Das Attributcomponents_ist in Version 0.24 veraltet und wird in Version 1.1 (Umbenennung von 0.26) entfernt. Dieses Attribut war redundant mit dem Attributdictionaryund dem Konstruktorparameter. #17679 von Xavier Dupré.Fix
decomposition.TruncatedSVD.fit_transformgibt konsistent das Gleiche zurück wiedecomposition.TruncatedSVD.fitgefolgt vondecomposition.TruncatedSVD.transform. #18528 von Albert Villanova del Moral und Ruifeng Zheng.
sklearn.discriminant_analysis#
Enhancement
discriminant_analysis.LinearDiscriminantAnalysiskann nun mit dem Parametercovariance_estimatoreine benutzerdefinierte Kovarianzschätzung verwenden. #14446 von Hugo Richard.
sklearn.ensemble#
Major Feature
ensemble.HistGradientBoostingRegressorundensemble.HistGradientBoostingClassifierhaben nun native Unterstützung für kategoriale Merkmale mit dem Parametercategorical_features. #18394 von Nicolas Hug und Thomas Fan.Feature
ensemble.HistGradientBoostingRegressorundensemble.HistGradientBoostingClassifierunterstützen nun die Methodestaged_predict, die die Überwachung jeder Stufe ermöglicht. #16985 von Hao Chun Chang.Efficiency Zyklische Referenzen in den intern verwendeten Baumknoten von
ensemble.HistGradientBoostingRegressorundensemble.HistGradientBoostingClassifierwerden unterbrochen, um die rechtzeitige Garbage Collection großer temporärer Datenstrukturen zu ermöglichen und die Speichernutzung infitzu verbessern. #18334 von Olivier Grisel Nicolas Hug, Thomas Fan und Andreas Müller.Efficiency Die Histogramm-Initialisierung erfolgt nun parallel in
ensemble.HistGradientBoostingRegressorundensemble.HistGradientBoostingClassifier, was zu einer Geschwindigkeitsverbesserung bei Problemen führt, die viele Knoten auf Mehrkernmaschinen erstellen. #18341 von Olivier Grisel, Nicolas Hug, Thomas Fan und Egor Smirnov.Fix Ein Fehler in
ensemble.HistGradientBoostingRegressorundensemble.HistGradientBoostingClassifierwurde behoben, sodass diese nun Daten mituint8-Datentyp inpredictakzeptieren können. #18410 von Nicolas Hug.API Change Der Parameter
n_classes_ist nun inensemble.GradientBoostingRegressorveraltet und gibt1zurück. #17702 von Simona Maggio.API Change Der Mittelwert der absoluten Fehler ('mae') ist für den Parameter
criterioninensemble.GradientBoostingRegressorundensemble.GradientBoostingClassifierveraltet. #18326 von Madhura Jayaratne.
sklearn.exceptions#
API Change
exceptions.ChangedBehaviorWarningundexceptions.NonBLASDotWarningsind veraltet und werden in Version 1.1 (Umbenennung von 0.26) entfernt. #17804 von Adrin Jalali.
sklearn.feature_extraction#
Enhancement
feature_extraction.DictVectorizerakzeptiert mehrere Werte für ein kategorisches Merkmal. #17367 von Peng Yu und Chiara Marmo.Fix
feature_extraction.text.CountVectorizerlöst ein Problem aus, wenn ein benutzerdefiniertes Token-Muster mit mehr als einer Gruppe verwendet wird. #15427 von Gangesh Gudmalwar und Erin R Hoffman.
sklearn.feature_selection#
Feature
feature_selection.SequentialFeatureSelectorwurde hinzugefügt, das eine vorwärts- und rückwärtsgerichtete sequentielle Merkmalsauswahl implementiert. #6545 von Sebastian Raschka und #17159 von Nicolas Hug.Feature Ein neuer Parameter
importance_getterwurde zufeature_selection.RFE,feature_selection.RFECVundfeature_selection.SelectFromModelhinzugefügt, der es dem Benutzer ermöglicht, einen Attributnamen/-pfad oder einecallablefür die Extraktion der Merkmalbedeutung aus dem Schätzer anzugeben. #15361 von Venkatachalam N.Efficiency Reduzierung des Speicherbedarfs in
feature_selection.mutual_info_classifundfeature_selection.mutual_info_regressiondurch Aufruf vonneighbors.KDTreezum Zählen der nächsten Nachbarn. #17878 von Noel Rogers.Enhancement
feature_selection.RFEunterstützt die Option, dass die Anzahl der auszuwählenden Merkmale (n_features_to_select) als Fließkommazahl angegeben werden kann, die den Prozentsatz der auszuwählenden Merkmale darstellt. #17090 von Lisa Schwetlick und Marija Vlajic Wheeler.
sklearn.gaussian_process#
Enhancement Eine neue Methode
gaussian_process.kernel._check_bounds_paramswird nach dem Anpassen eines Gauß-Prozesses aufgerufen und löst eineConvergenceWarningaus, wenn die Grenzen der Hyperparameter zu eng sind. #12638 von Sylvain Lannuzel.
sklearn.impute#
Feature
impute.SimpleImputerunterstützt nun eine Liste von Zeichenketten, wennstrategy='most_frequent'oderstrategy='constant'ist. #17526 von Ayako YAGI und Juan Carlos Alfaro Jiménez.Feature Die Methode
impute.SimpleImputer.inverse_transformwurde hinzugefügt, um imputierte Daten wieder in den ursprünglichen Zustand zurückzuverwandeln, wenn sie mitadd_indicator=Trueinstanziiert wurden. #17612 von Srimukh Sripada.Fix Die Standardwerte für die Parameter
min_valueundmax_valueinimpute.IterativeImputerwurden durch-np.infbzw.np.infanstelle vonNoneersetzt. Das Verhalten der Klasse ändert sich jedoch nicht, daNonebereits standardmäßig auf diese Werte abgebildet wurde. #16493 von Darshan N.Fix
impute.IterativeImputerwird nicht versuchen, das Attributrandom_statedes Schätzers zu setzen, was die Verwendung mit externen Klassen ermöglicht. #15636 von David Cortes.Efficiency
impute.SimpleImputerist nun schneller mit Arrays vomobject-Datentyp. wennstrategy='most_frequent'inSimpleImputer. #18987 von David Katz.
sklearn.inspection#
Feature
inspection.partial_dependenceundinspection.plot_partial_dependenceunterstützen nun die Berechnung und Darstellung von Individual Conditional Expectation (ICE)-Kurven, gesteuert durch den Parameterkind. #16619 von Madhura Jayaratne.Feature Der Parameter
sample_weightwurde zuinspection.permutation_importancehinzugefügt. #16906 von Roei Kahny.API Change Positionsargumente sind in
inspection.PartialDependenceDisplay.plotveraltet und werden in Version 1.1 (Umbenennung von 0.26) zu einem Fehler führen. #18293 von Thomas Fan.
sklearn.isotonic#
Feature Die angepassten Attribute
X_thresholds_undy_thresholds_werden verfügbar gemacht, die die deduplizierten Interpolationsschwellenwerte einer Instanz vonisotonic.IsotonicRegressionzu Inspektionszwecken enthalten. #16289 von Masashi Kishimoto und Olivier Grisel.Enhancement
isotonic.IsotonicRegressionakzeptiert jetzt 2D-Arrays mit einer Feature als Eingabearray. #17379 von Jiaxiang.Fix Toleranz beim Bestimmen von doppelten X-Werten hinzugefügt, um zu verhindern, dass unendliche Werte von
isotonic.IsotonicRegressionvorhergesagt werden. #18639 von Lucy Liu.
sklearn.kernel_approximation#
Feature Klasse
kernel_approximation.PolynomialCountSketchhinzugefügt, die den Tensor Sketch-Algorithmus für die Approximation von polynomialen Kernel-Feature-Maps implementiert. #13003 von Daniel López Sánchez.Efficiency
kernel_approximation.Nystroemunterstützt jetzt Parallelisierung überjoblib.Parallelmit dem Argumentn_jobs. #18545 von Laurenz Reitsam.
sklearn.linear_model#
Feature
linear_model.LinearRegressionerzwingt nun positive Koeffizienten, wennpositiveaufTruegesetzt ist. #17578 von Joseph Knox, Nelle Varoquaux und Chiara Marmo.Enhancement
linear_model.RidgeCVunterstützt nun die Suche nach einem optimalen Regularisierungswertalphafür jedes Ziel separat, indemalpha_per_target=Truegesetzt wird. Dies wird nur unterstützt, wenn das standardmäßige effiziente Leave-One-Out-Kreuzvalidierungsschemacv=Noneverwendet wird. #6624 von Marijn van Vliet.Fix Behebt einen Fehler in
linear_model.TheilSenRegressor, bei dempredictundscorefehlschlugen, wennfit_intercept=Falsegesetzt war und während des Trainings nur ein Feature vorhanden war. #18121 von Thomas Fan.Fix Behebt einen Fehler in
linear_model.ARDRegression, bei dempredicteinen Fehler auslöste, wennnormalize=Trueundreturn_std=Truegesetzt war, daX_offset_undX_scale_undefiniert waren. #18607 von fhaselbeck.Fix Der fehlende Parameter
l1_ratiowurde inlinear_model.Perceptronhinzugefügt, der verwendet wird, wennpenalty='elasticnet'ist. Dies ändert den Standardwert von 0 auf 0,15. #18622 von Haesun Park.
sklearn.manifold#
Efficiency Behoben #10493. Verbesserte Local Linear Embedding (LLE), die eine
MemoryErrorAusnahme auslöste, wenn sie mit großen Eingaben verwendet wurde. #17997 von Bertrand Maisonneuve.Enhancement Parameter
square_distancesfürmanifold.TSNEhinzugefügt, der die Abwärtskompatibilität während der Deprecation des alten Quadrierungsverhaltens bietet. Distanzen werden standardmäßig in 1.1 (Umbenennung von 0.26) quadriert, und dieser Parameter wird in 1.3 entfernt. #17662 von Joshua Newton.Fix
manifold.MDSsetzt nun korrekt sein Attribut_pairwise. #18278 von Thomas Fan.
sklearn.metrics#
Feature
metrics.cluster.pair_confusion_matrixhinzugefügt, die die Konfusionsmatrix implementiert, die aus Paaren von Elementen aus zwei Clusterings resultiert. #17412 von Uwe F Mayer.Feature Neue Metrik
metrics.top_k_accuracy_score. Es ist eine Verallgemeinerung vonmetrics.top_k_accuracy_score, der Unterschied ist, dass eine Vorhersage als korrekt gilt, solange das wahre Label mit einem derkhöchsten vorhergesagten Scores assoziiert ist.metrics.accuracy_scoreist der Spezialfall vonk = 1. #16625 von Geoffrey Bolmier.Feature
metrics.det_curvehinzugefügt, um die Klassifikationsmetrik für die Detection Error Tradeoff (DET) Kurve zu berechnen. #10591 von Jeremy Karnowski und Daniel Mohns.Feature
metrics.plot_det_curveundmetrics.DetCurveDisplayhinzugefügt, um das Plotten von DET-Kurven zu erleichtern. #18176 von Guillaume Lemaitre.Feature Metrik
metrics.mean_absolute_percentage_errorund der zugehörige Scorer für Regressionsprobleme hinzugefügt. #10708 behoben mit PR #15007 von Ashutosh Hathidara. Der Scorer und einige praktische Testfälle wurden aus PR #10711 von Mohamed Ali Jamaoui übernommen.Feature
metrics.rand_scorehinzugefügt, die den (unangepassten) Rand-Index implementiert. #17412 von Uwe F Mayer.Feature
metrics.plot_confusion_matrixunterstützt jetzt optional die Farbleiste im Matplotlib-Plot durch Setzen voncolorbar=False. #17192 von Avi GuptaEnhancement Parameter
sample_weightfürmetrics.median_absolute_errorhinzugefügt. #17225 von Lucy Liu.Enhancement Parameter
pos_labelinmetrics.plot_precision_recall_curvehinzugefügt, um die positive Klasse anzugeben, die bei der Berechnung der Präzisions- und Recall-Statistiken verwendet werden soll. #17569 von Guillaume Lemaitre.Enhancement Parameter
pos_labelinmetrics.plot_roc_curvehinzugefügt, um die positive Klasse anzugeben, die bei der Berechnung der ROC-AUC-Statistiken verwendet werden soll. #17651 von Clara Matos.Fix Fehler in
metrics.classification_reportbehoben, der eine `AttributeError` auslöste, wenn er mit `output_dict=True` für 0-Längen-Werte aufgerufen wurde. #17777 von Shubhanshu Mishra.Fix Fehler in
metrics.classification_reportbehoben, der eine `AttributeError` auslöste, wenn er mit `output_dict=True` für 0-Längen-Werte aufgerufen wurde. #17777 von Shubhanshu Mishra.Fix Fehler in
metrics.jaccard_scorebehoben, der den Parameterzero_divisionempfahl, wenn er ohne wahre oder vorhergesagte Samples aufgerufen wurde. #17826 von Richard Decal und Joseph Willard.Fix Fehler in
metrics.hinge_loss, bei dem ein Fehler auftrat, wenny_trueeinige Labels vermisste, die explizit im Parameterlabelsangegeben wurden. #17935 von Cary Goltermann.Fix Korrigiert Scorer, die einen `pos_label`-Parameter akzeptieren und ihre Metriken aus den von
decision_functionoderpredict_probazurückgegebenen Werten berechnen. Zuvor gaben sie fehlerhafte Werte zurück, wenn `pos_label` nicht mitclassifier.classes_[1]übereinstimmte. Dies ist besonders wichtig, wenn Klassifikatoren direkt mit zeichenkettenbeschrifteten Zielklassen trainiert werden. #18114 von Guillaume Lemaitre.Fix Behoben wurde ein Fehler in
metrics.plot_confusion_matrix, bei dem ein Fehler auftrat, wenny_trueLabels enthielt, die vom Klassifikator zuvor nicht gesehen wurden, während die Parameterlabelsunddisplay_labelsaufNonegesetzt waren. #18405 von Thomas J. Fan und Yakov Pchelintsev.
sklearn.model_selection#
Major Feature (Experimentell) Parameter-Such-Estimators
model_selection.HalvingRandomSearchCVundmodel_selection.HalvingGridSearchCVhinzugefügt, die Successive Halving implementieren und als Drop-in-Ersatz fürmodel_selection.RandomizedSearchCVundmodel_selection.GridSearchCVverwendet werden können. #13900 von Nicolas Hug, Joel Nothman und Andreas Müller.Feature
model_selection.RandomizedSearchCVundmodel_selection.GridSearchCVhaben jetzt die Methodescore_samples. #17478 von Teon Brooks und Mohamed Maskani.Enhancement
model_selection.TimeSeriesSplithat zwei neue Schlüsselwortargumente:test_sizeundgap.test_sizeermöglicht es, die Länge der Out-of-Sample-Zeitreihe für alle Folds festzulegen.gapentfernt eine feste Anzahl von Samples zwischen dem Trainings- und dem Testset in jedem Fold. #13204 von Kyle Kosic.Enhancement
model_selection.permutation_test_scoreundmodel_selection.validation_curveakzeptieren jetzt `fit_params`, um zusätzliche Estimator-Parameter zu übergeben. #18527 von Gaurav Dhingra, Julien Jerphanion und Amanda Dsouza.Enhancement
model_selection.cross_val_score,model_selection.cross_validate,model_selection.GridSearchCVundmodel_selection.RandomizedSearchCVerlauben es dem Estimator, bei der Bewertung fehlzuschlagen und den Score durcherror_scorezu ersetzen. Wennerror_score="raise"gesetzt ist, wird der Fehler ausgelöst. #18343 von Guillaume Lemaitre und Devi Sandeep.Enhancement
model_selection.learning_curveakzeptiert jetzt `fit_params`, um zusätzliche Estimator-Parameter zu übergeben. #18595 von Amanda Dsouza.Fix Behoben wurde die
lenvonmodel_selection.ParameterSampler, wenn alle Verteilungen Listen sind undn_itergrößer ist als die Anzahl der eindeutigen Parameterkombinationen. #18222 von Nicolas Hug.Fix Korrektur zur Auslösung einer Warnung, wenn eine oder mehrere CV-Splits von
model_selection.GridSearchCVundmodel_selection.RandomizedSearchCVnicht-endliche Scores ergeben. #18266 von Subrat Sahu, Nirvan und Arthur Book.Enhancement
model_selection.GridSearchCV,model_selection.RandomizedSearchCVundmodel_selection.cross_validateunterstützenscoringals Callable, das ein Wörterbuch mit mehreren Metriknamen/Wert-Zuordnungen zurückgibt. #15126 von Thomas Fan.
sklearn.multiclass#
Enhancement
multiclass.OneVsOneClassifierakzeptiert jetzt Eingaben mit fehlenden Werten. Daher können Estimators, die fehlende Werte verarbeiten können (möglicherweise eine Pipeline mit einem Imputationsschritt), als Estimator für Multiclass-Wrapper verwendet werden. #17987 von Venkatachalam N.Fix Eine Korrektur, um
multiclass.OutputCodeClassifierdie Annahme von Sparse-Eingabedaten in seinen Methodenfitundpredictzu ermöglichen. Die Prüfung der Eingabegültigkeit wird nun an den Basis-Estimator delegiert. #17233 von Zolisa Bleki.
sklearn.multioutput#
Enhancement
multioutput.MultiOutputClassifierundmultioutput.MultiOutputRegressorakzeptieren jetzt Eingaben mit fehlenden Werten. Daher können Estimators, die fehlende Werte verarbeiten können (möglicherweise eine Pipeline mit einem Imputationsschritt, HistGradientBoosting-Estimators), als Estimator für Multiclass-Wrapper verwendet werden. #17987 von Venkatachalam N.Fix Eine Korrektur zur Annahme von Tupeln für den Parameter
orderinmultioutput.ClassifierChain. #18124 von Gus Brocchini und Amanda Dsouza.
sklearn.naive_bayes#
Erweiterung Fügt einen Parameter
min_categorieszunaive_bayes.CategoricalNBhinzu, der die Angabe einer Mindestanzahl von Kategorien pro Merkmal ermöglicht. Dies ermöglicht die Berücksichtigung von Kategorien, die während des Trainings nicht gesehen wurden. #16326 von George Armstrong.API-Änderung Die Attribute
coef_undintercept_sind nun innaive_bayes.MultinomialNB,naive_bayes.ComplementNB,naive_bayes.BernoulliNBundnaive_bayes.CategoricalNBveraltet und werden in v1.1 (Umbenennung von 0.26) entfernt. #17427 von Juan Carlos Alfaro Jiménez.
sklearn.neighbors#
Effizienz Beschleunigung der Metriken
seuclidean,wminkowski,mahalanobisundhaversineinneighbors.DistanceMetricdurch Vermeidung unerwarteter GIL-Erwerbe in Cython bei Einstellung vonn_jobs>1inneighbors.KNeighborsClassifier,neighbors.KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor,metrics.pairwise_distancesund durch Validierung von Daten außerhalb von Schleifen. #17038 von Wenbo Zhao.Effizienz
neighbors.NeighborsBaseprofitiert von einer verbesserten Heuristik füralgorithm = 'auto'. Zusätzlich zu den bisherigen Regeln wird nun, wenn die Anzahl der Merkmale 15 überschreitet,bruteausgewählt, unter der Annahme, dass die intrinsische Dimensionalität der Daten für baumbasierte Methoden zu hoch ist. #17148 von Geoffrey Bolmier.Korrektur
neighbors.BinaryTreelöst einenValueErroraus, wenn auf einem Datenarray mit Punkten unterschiedlicher Dimensionen trainiert wird. #18691 von Chiara Marmo.Korrektur
neighbors.NearestCentroidmit einem numerischenshrink_thresholdlöst einenValueErroraus, wenn auf Daten mit lauter konstanten Merkmalen trainiert wird. #18370 von Trevor Waite.Korrektur In den Methoden
radius_neighborsundradius_neighbors_graphvonneighbors.NearestNeighbors,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressorundneighbors.RadiusNeighborsTransformersortiertsort_results=Truenun die Ergebnisse korrekt, auch wenn mit dem „brute“-Algorithmus trainiert wird. #18612 von Tom Dupre la Tour.
sklearn.neural_network#
Effizienz Training und Vorhersage neuronaler Netze sind nun etwas schneller. #17603, #17604, #17606, #17608, #17609, #17633, #17661, #17932 von Alex Henrie.
Erweiterung Vermeidung der Konvertierung von float32-Eingaben in float64 in
neural_network.BernoulliRBM. #16352 von Arthur Imbert.Erweiterung Unterstützung für 32-Bit-Berechnungen in
neural_network.MLPClassifierundneural_network.MLPRegressor. #17759 von Srimukh Sripada.Korrektur Korrigiert, dass die Methode
neural_network.MLPClassifier.fitbei warmem Start nicht bismax_iteriteriert. #18269 von Norbert Preining und Guillaume Lemaitre.
sklearn.pipeline#
Erweiterung Verweise auf Transformer, die über
transformer_weightsanpipeline.FeatureUnionübergeben werden und die nicht intransformer_listvorhanden sind, lösen einenValueErroraus. #17876 von Cary Goltermann.Korrektur Ein Slice eines
pipeline.Pipelineerbt nun die Parameter der ursprünglichen Pipeline (memoryundverbose). #18429 von Albert Villanova del Moral und Paweł Biernat.
sklearn.preprocessing#
Merkmal
preprocessing.OneHotEncoderunterstützt nun fehlende Werte, indem diese als Kategorie behandelt werden. #17317 von Thomas Fan.Merkmal Fügt einen neuen Parameter
handle_unknownmit der Optionuse_encoded_valuehinzu, zusammen mit einem neuen Parameterunknown_value, zupreprocessing.OrdinalEncoder, um unbekannte Kategorien während der Transformation zuzulassen und den kodierten Wert der unbekannten Kategorien festzulegen. #17406 von Felix Wick und #18406 von Nicolas Hug.Merkmal Fügt den Parameter
clipzupreprocessing.MinMaxScalerhinzu, der die transformierten Werte von Testdaten auf denfeature_rangebegrenzt. #17833 von Yashika Sharma.Merkmal Fügt den Parameter
sample_weightzupreprocessing.StandardScalerhinzu. Ermöglicht die Festlegung individueller Gewichte für jedes Sample. #18510 und #18447 und #16066 und #18682 von Maria Telenczuk und Albert Villanova und @panpiort8 und Alex Gramfort.Erweiterung Die verbose Ausgabe von
model_selection.GridSearchCVwurde zur besseren Lesbarkeit verbessert. #16935 von Raghav Rajagopalan und Chiara Marmo.Erweiterung Fügt
unit_variancezupreprocessing.RobustScalerhinzu, das Ausgabedaten so skaliert, dass normalverteilte Merkmale eine Varianz von 1 haben. #17193 von Lucy Liu und Mabel Villalba.Erweiterung Fügt den Parameter
dtypezupreprocessing.KBinsDiscretizerhinzu. #16335 von Arthur Imbert.Korrektur Löst einen Fehler bei
sklearn.preprocessing.OneHotEncoder.inverse_transformaus, wennhandle_unknown='error'unddrop=Nonefür als Nullen kodierte Samples verwendet werden. #14982 von Kevin Winata.
sklearn.semi_supervised#
Hauptmerkmal Hinzugefügt wurde
semi_supervised.SelfTrainingClassifier, ein Meta-Klassifikator, der es jedem überwachten Klassifikator ermöglicht, als semi-überwachter Klassifikator zu fungieren, der aus unbeschrifteten Daten lernen kann. #11682 von Oliver Rausch und Patrice Becker.Korrektur Korrigiert die fehlerhafte Kodierung bei Verwendung von Unicode-String-Datentypen in
preprocessing.OneHotEncoderundpreprocessing.OrdinalEncoder. #15763 von Thomas Fan.
sklearn.svm#
Erweiterung Ruft die SciPy BLAS API für die SVM-Kernelfunktion in den Methoden
fit,predictund verwandten Methoden vonsvm.SVC,svm.NuSVC,svm.SVR,svm.NuSVR,svm.OneClassSVMauf. #16530 von Shuhua Fan.
sklearn.tree#
Merkmal
tree.DecisionTreeRegressorunterstützt nun das neue Split-Kriterium'poisson', das sich gut zur Modellierung von Zähldaten eignet. #17386 von Christian Lorentzen.Erweiterung
tree.plot_treeverwendet nun Farben aus den Matplotlib-Konfigurationseinstellungen. #17187 von Andreas Müller.API-Änderung Der Parameter
X_idx_sortedist nun intree.DecisionTreeClassifier.fitundtree.DecisionTreeRegressor.fitveraltet und hat keine Auswirkung mehr. #17614 von Juan Carlos Alfaro Jiménez.
sklearn.utils#
Erweiterung Fügt
check_methods_sample_order_invariancezucheck_estimatorhinzu, was prüft, ob Methoden von Schätzern invariant sind, wenn sie auf dasselbe Datenset mit unterschiedlicher Stichprobenreihenfolge angewendet werden #17598 von Jason Ngo.Erweiterung Unterstützung für Gewichte in
utils.sparse_func.incr_mean_variance_axishinzugefügt. Von Maria Telenczuk und Alex Gramfort.Korrektur Löst ValueError mit klarer Fehlermeldung in
utils.check_arrayfür spärliche DataFrames mit gemischten Typen aus. #17992 von Thomas J. Fan und Alex Shacked.Korrektur Ermöglicht das Entpickeln serialisierter baumbasierter Modelle auf einer Maschine mit anderer Endianness. #17644 von Qi Zhang.
Korrektur Überprüft, ob der korrekte Fehler ausgelöst wird, wenn axis=1 ist und die Dimensionen in
utils.sparse_func.incr_mean_variance_axisnicht übereinstimmen. Von Alex Gramfort.
Sonstiges#
Erweiterung Aufrufe von
reprsind nun schneller, wennprint_changed_only=Trueist, insbesondere bei Meta-Estimators. #18508 von Nathan C..
Code- und Dokumentationsbeitragende
Vielen Dank an alle, die seit Version 0.23 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter
Abo7atm, Adam Spannbauer, Adrin Jalali, adrinjalali, Agamemnon Krasoulis, Akshay Deodhar, Albert Villanova del Moral, Alessandro Gentile, Alex Henrie, Alex Itkes, Alex Liang, Alexander Lenail, alexandracraciun, Alexandre Gramfort, alexshacked, Allan D Butler, Amanda Dsouza, amy12xx, Anand Tiwari, Anderson Nelson, Andreas Mueller, Ankit Choraria, Archana Subramaniyan, Arthur Imbert, Ashutosh Hathidara, Ashutosh Kushwaha, Atsushi Nukariya, Aura Munoz, AutoViz and Auto_ViML, Avi Gupta, Avinash Anakal, Ayako YAGI, barankarakus, barberogaston, beatrizsmg, Ben Mainye, Benjamin Bossan, Benjamin Pedigo, Bharat Raghunathan, Bhavika Devnani, Biprateep Dey, bmaisonn, Bo Chang, Boris Villazón-Terrazas, brigi, Brigitta Sipőcz, Bruno Charron, Byron Smith, Cary Goltermann, Cat Chenal, CeeThinwa, chaitanyamogal, Charles Patel, Chiara Marmo, Christian Kastner, Christian Lorentzen, Christoph Deil, Christos Aridas, Clara Matos, clmbst, Coelhudo, crispinlogan, Cristina Mulas, Daniel López, Daniel Mohns, darioka, Darshan N, david-cortes, Declan O’Neill, Deeksha Madan, Elizabeth DuPre, Eric Fiegel, Eric Larson, Erich Schubert, Erin Khoo, Erin R Hoffman, eschibli, Felix Wick, fhaselbeck, Forrest Koch, Francesco Casalegno, Frans Larsson, Gael Varoquaux, Gaurav Desai, Gaurav Sheni, genvalen, Geoffrey Bolmier, George Armstrong, George Kiragu, Gesa Stupperich, Ghislain Antony Vaillant, Gim Seng, Gordon Walsh, Gregory R. Lee, Guillaume Chevalier, Guillaume Lemaitre, Haesun Park, Hannah Bohle, Hao Chun Chang, Harry Scholes, Harsh Soni, Henry, Hirofumi Suzuki, Hitesh Somani, Hoda1394, Hugo Le Moine, hugorichard, indecisiveuser, Isuru Fernando, Ivan Wiryadi, j0rd1smit, Jaehyun Ahn, Jake Tae, James Hoctor, Jan Vesely, Jeevan Anand Anne, JeroenPeterBos, JHayes, Jiaxiang, Jie Zheng, Jigna Panchal, jim0421, Jin Li, Joaquin Vanschoren, Joel Nothman, Jona Sassenhagen, Jonathan, Jorge Gorbe Moya, Joseph Lucas, Joshua Newton, Juan Carlos Alfaro Jiménez, Julien Jerphanion, Justin Huber, Jérémie du Boisberranger, Kartik Chugh, Katarina Slama, kaylani2, Kendrick Cetina, Kenny Huynh, Kevin Markham, Kevin Winata, Kiril Isakov, kishimoto, Koki Nishihara, Krum Arnaudov, Kyle Kosic, Lauren Oldja, Laurenz Reitsam, Lisa Schwetlick, Louis Douge, Louis Guitton, Lucy Liu, Madhura Jayaratne, maikia, Manimaran, Manuel López-Ibáñez, Maren Westermann, Maria Telenczuk, Mariam-ke, Marijn van Vliet, Markus Löning, Martin Scheubrein, Martina G. Vilas, Martina Megasari, Mateusz Górski, mathschy, mathurinm, Matthias Bussonnier, Max Del Giudice, Michael, Milan Straka, Muoki Caleb, N. Haiat, Nadia Tahiri, Ph. D, Naoki Hamada, Neil Botelho, Nicolas Hug, Nils Werner, noelano, Norbert Preining, oj_lappi, Oleh Kozynets, Olivier Grisel, Pankaj Jindal, Pardeep Singh, Parthiv Chigurupati, Patrice Becker, Pete Green, pgithubs, Poorna Kumar, Prabakaran Kumaresshan, Probinette4, pspachtholz, pwalchessen, Qi Zhang, rachel fischoff, Rachit Toshniwal, Rafey Iqbal Rahman, Rahul Jakhar, Ram Rachum, RamyaNP, rauwuckl, Ravi Kiran Boggavarapu, Ray Bell, Reshama Shaikh, Richard Decal, Rishi Advani, Rithvik Rao, Rob Romijnders, roei, Romain Tavenard, Roman Yurchak, Ruby Werman, Ryotaro Tsukada, sadak, Saket Khandelwal, Sam, Sam Ezebunandu, Sam Kimbinyi, Sarah Brown, Saurabh Jain, Sean O. Stalley, Sergio, Shail Shah, Shane Keller, Shao Yang Hong, Shashank Singh, Shooter23, Shubhanshu Mishra, simonamaggio, Soledad Galli, Srimukh Sripada, Stephan Steinfurt, subrat93, Sunitha Selvan, Swier, Sylvain Marié, SylvainLan, t-kusanagi2, Teon L Brooks, Terence Honles, Thijs van den Berg, Thomas J Fan, Thomas J. Fan, Thomas S Benjamin, Thomas9292, Thorben Jensen, tijanajovanovic, Timo Kaufmann, tnwei, Tom Dupré la Tour, Trevor Waite, ufmayer, Umberto Lupo, Venkatachalam N, Vikas Pandey, Vinicius Rios Fuck, Violeta, watchtheblur, Wenbo Zhao, willpeppo, xavier dupré, Xethan, Xue Qianming, xun-tang, yagi-3, Yakov Pchelintsev, Yashika Sharma, Yi-Yan Ge, Yue Wu, Yutaro Ikeda, Zaccharie Ramzi, zoj613, Zhao Feng.