Version 0.23#
Eine kurze Beschreibung der wichtigsten Highlights der Veröffentlichung finden Sie unter Release Highlights für scikit-learn 0.23.
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.23.2#
Geänderte Modelle#
Die folgenden Schätzer und Funktionen können, wenn sie mit denselben Daten und Parametern angepasst werden, andere Modelle als in der vorherigen Version ergeben. Dies geschieht häufig aufgrund von Änderungen in der Modellierungslogik (Fehlerbehebungen oder Verbesserungen) oder in zufälligen Stichprobenverfahren.
Fix Das Attribut
inertia_voncluster.KMeansundcluster.MiniBatchKMeans.
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.)
Änderungsprotokoll#
sklearn.cluster#
Fix Behoben wurde ein Fehler in
cluster.KMeans, bei dem Rundungsfehler die Erklärung der Konvergenz verhindern konnten, wenntol=0gesetzt war. #17959 von Jérémie du Boisberranger.Fix Behoben wurde ein Fehler in
cluster.KMeansundcluster.MiniBatchKMeans, bei dem die angezeigte Trägheit falsch mit den Stichprobengewichten gewichtet wurde. #17848 von Jérémie du Boisberranger.Fix Behoben wurde ein Fehler in
cluster.MeanShiftmitbin_seeding=True. Wenn die geschätzte Bandbreite 0 beträgt, ist das Verhalten äquivalent zubin_seeding=False. #17742 von Jeremie du Boisberranger.Fix Behoben wurde ein Fehler in
cluster.AffinityPropagation, der falsche Cluster lieferte, wenn der Array-Datentyp float32 war. #17995 von Thomaz Santana und Amanda Dsouza.
sklearn.decomposition#
Fix Behoben wurde ein Fehler in
decomposition.MiniBatchDictionaryLearning.partial_fit, der das Wörterbuch nur einmal über einen Mini-Batch aktualisieren sollte. #17433 von Chiara Marmo.Fix Überläufe unter Windows in
decomposition.IncrementalPCA.partial_fitfür große Werte vonbatch_sizeundn_samplesvermieden. #17985 von Alan Butler und Amanda Dsouza.
sklearn.ensemble#
Fix Behoben wurde ein Fehler in
ensemble.MultinomialDeviance, bei dem der Durchschnitt des Logloss fälschlicherweise als Summe des Logloss berechnet wurde. #17694 von Markus Rempfler und Tsutomu Kusanagi.Fix Behebt Kompatibilitätsprobleme von
ensemble.StackingClassifierundensemble.StackingRegressormit Schätzern, dien_features_in_nicht definieren. #17357 von Thomas Fan.
sklearn.feature_extraction#
Fix Behebt Fehler in
feature_extraction.text.CountVectorizer, bei dem die Reihenfolgeunabhängigkeit der Stichproben gebrochen war, wennmax_featuresgesetzt war und Features die gleiche Anzahl hatten. #18016 von Thomas Fan, Roman Yurchak und Joel Nothman.
sklearn.linear_model#
Fix
linear_model.lars_pathüberschreibtXnicht, wennX_copy=TrueundGram='auto'gesetzt sind. #17914 von Thomas Fan.
sklearn.manifold#
Fix Behoben wurde ein Fehler, bei dem
metrics.pairwise_distanceseinen Fehler auslöste, wennmetric='seuclidean'undXnicht vom Typnp.float64war. #15730 von Forrest Koch.
sklearn.metrics#
Fix Behoben wurde ein Fehler in
metrics.mean_squared_error, bei dem der Durchschnitt mehrerer RMSE-Werte fälschlicherweise als Wurzel des Durchschnitts mehrerer MSE-Werte berechnet wurde. #17309 von Swier Heeres.
sklearn.pipeline#
Fix
pipeline.FeatureUnionlöst eine Deprecation-Warnung aus, wennNoneintransformer_listenthalten ist. #17360 von Thomas Fan.
sklearn.utils#
Fix Korrigiert
utils.estimator_checks.check_estimatorso, dass alle Testfälle das Tagbinary_onlyfür Schätzer unterstützen. #17812 von Bruno Charron.
Version 0.23.1#
18. Mai 2020
Änderungsprotokoll#
sklearn.cluster#
Effizienz Die Effizienz von
cluster.KMeanswurde für sehr kleine Datensätze verbessert. Insbesondere können keine untätigen Threads mehr erzeugt werden. #17210 und #17235 von Jeremie du Boisberranger.Fix Behoben wurde ein Fehler in
cluster.KMeans, bei dem die vom Benutzer bereitgestellten Stichprobengewichte vor Ort modifiziert wurden. #17204 von Jeremie du Boisberranger.
Sonstiges#
Fix Behoben wurde ein Fehler in der
reprvon Drittanbieter-Schätzern, die einen**kwargs-Parameter in ihrem Konstruktor verwenden, wennchanged_onlyTrue ist, was jetzt der Standard ist. #17205 von Nicolas Hug.
Version 0.23.0#
12. Mai 2020
Erzwingen von Keyword-Only-Argumenten#
Um eine klare und eindeutige Verwendung der Bibliothek zu fördern, werden die meisten Konstruktor- und Funktionsparameter jetzt als Keyword-Argumente (d. h. mit der Syntax param=value) anstelle von Positionsargumenten erwartet. Um den Übergang zu erleichtern, wird eine FutureWarning ausgegeben, wenn ein Keyword-Only-Parameter als Positionsargument verwendet wird. In Version 1.0 (Umbenennung von 0.25) werden diese Parameter streng Keyword-Only sein und eine TypeError auslösen. #15005 von Joel Nothman, Adrin Jalali, Thomas Fan und Nicolas Hug. Weitere Details finden Sie unter SLEP009.
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
ensemble.BaggingClassifier,ensemble.BaggingRegressorundensemble.IsolationForest.Fix
cluster.KMeansmitalgorithm="elkan"undalgorithm="full".Fix
cluster.BirchFix
compose.ColumnTransformer.get_feature_namesFix
decomposition.PCAmitn_components='mle'Enhancement
decomposition.NMFunddecomposition.non_negative_factorizationmit float32-Datentyp-Eingabe.API Change
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorFix
estimator_samples_inensemble.BaggingClassifier,ensemble.BaggingRegressorundensemble.IsolationForestFix
ensemble.StackingClassifierundensemble.StackingRegressormitsample_weightFix
linear_model.RANSACRegressormitsample_weight.Fix
metrics.mean_squared_errormitsquaredundmultioutput='raw_values'.Fix
metrics.mutual_info_scoremit negativen Scores.Fix
metrics.confusion_matrixmity_trueundy_predmit null LängeFix
preprocessing.StandardScalermitpartial_fitund sparsen Eingaben.Fix
preprocessing.Normalizermit norm=’max’Fix Jedes Modell, das den Solver
svm.libsvmodersvm.liblinearverwendet, einschließlichsvm.LinearSVC,svm.LinearSVR,svm.NuSVC,svm.NuSVR,svm.OneClassSVM,svm.SVC,svm.SVR,linear_model.LogisticRegression.Fix
tree.DecisionTreeClassifier,tree.ExtraTreeClassifierundensemble.GradientBoostingClassifiersowie diepredict-Methode vontree.DecisionTreeRegressor,tree.ExtraTreeRegressorundensemble.GradientBoostingRegressorund schreibgeschützten float32-Eingaben inpredict,decision_pathundpredict_proba.
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.cluster#
Effizienz Die Implementierung der
predict-Methode voncluster.Birchvermeidet einen hohen Speicherbedarf, indem die Distanzmatrix mithilfe eines chunked Schemes berechnet wird. #16149 von Jeremie du Boisberranger und Alex Shacked.Effizienz Major Feature Die kritischen Teile von
cluster.KMeanshaben eine optimiertere Implementierung. Die Parallelisierung erfolgt nun über die Daten anstatt über Initialisierungen, was eine bessere Skalierbarkeit ermöglicht. #11950 von Jeremie du Boisberranger.Enhancement
cluster.KMeansunterstützt nun sparsen Daten, wennsolver = "elkan"ist. #11950 von Jeremie du Boisberranger.Enhancement
cluster.AgglomerativeClusteringverfügt über eine schnellere und speichereffizientere Implementierung des Single-Linkage-Clustering. #11514 von Leland McInnes.Fix
cluster.KMeansmitalgorithm="elkan"konvergiert nun mittol=0, wie mit dem Standard-Algorithmusalgorithm="full". #16075 von Erich Schubert.Fix Behoben wurde ein Fehler in
cluster.Birch, bei dem der Parametern_clusterskeinennp.int64-Typ haben konnte. #16484 von Jeremie du Boisberranger.Fix
cluster.AgglomerativeClusteringfügt eine spezifische Fehlermeldung hinzu, wenn die Distanzmatrix nicht quadratisch ist undaffinity=precomputedgesetzt ist. #16257 von Simona Maggio.API Change Der Parameter
n_jobsvoncluster.KMeans,cluster.SpectralCoclusteringundcluster.SpectralBiclusteringist veraltet. Sie verwenden jetzt OpenMP-basierte Parallelisierung. Weitere Details zur Steuerung der Anzahl von Threads finden Sie in unseren Hinweisen zur Parallelisierung. #11950 von Jeremie du Boisberranger.API Change Der Parameter
precompute_distancesvoncluster.KMeansist veraltet. Er hat keine Auswirkung mehr. #11950 von Jeremie du Boisberranger.API Change Der Parameter
random_statewurde zucluster.AffinityPropagationhinzugefügt. #16801 von @rcwoolston und Chiara Marmo.
sklearn.compose#
Effizienz
compose.ColumnTransformerist jetzt schneller, wenn mit DataFrames gearbeitet wird und Strings verwendet werden, um bestimmte Datenteile für Transformer zu spezifizieren. #16431 von Thomas Fan.Enhancement Die Methode
get_feature_namesvoncompose.ColumnTransformerunterstützt nun'passthrough'-Spalten, wobei der Feature-Name entweder der Spaltenname für einen DataFrame oder'xi'für den Spaltenindexiist. #14048 von Lewis Ball.Fix Die Methode
get_feature_namesvoncompose.ColumnTransformergibt nun korrekte Ergebnisse zurück, wenn einer der Transformator-Schritte auf eine leere Liste von Spalten angewendet wird #15963 von Roman Yurchak.Fix
compose.ColumnTransformer.fitgibt einen Fehler aus, wenn ein Spaltenname ausgewählt wird, der im DataFrame nicht eindeutig ist. #16431 von Thomas Fan.
sklearn.datasets#
Efficiency
datasets.fetch_openmlhat den Speicherverbrauch reduziert, da der gesamte Datensatz-Textstrom nicht mehr im Speicher gespeichert wird. #16084 von Joel Nothman.Feature
datasets.fetch_california_housingunterstützt nun heterogene Daten mit pandas durch Setzen vonas_frame=True. #15950 von Stephanie Andrews und Reshama Shaikh.Feature Eingebaute Datensatzlader
datasets.load_breast_cancer,datasets.load_diabetes,datasets.load_digits,datasets.load_iris,datasets.load_linnerudunddatasets.load_wineunterstützen nun das Laden als pandasDataFramedurch Setzen vonas_frame=True. #15980 von @wconnell und Reshama Shaikh.Enhancement Der Parameter
return_centerswurde indatasets.make_blobshinzugefügt, der verwendet werden kann, um die Zentren für jeden Cluster zurückzugeben. #15709 von @shivamgargsya und Venkatachalam N.Enhancement Die Funktionen
datasets.make_circlesunddatasets.make_moonsakzeptieren nun Tupel mit zwei Elementen. #15707 von Maciej J Mikulski.Fix
datasets.make_multilabel_classificationgeneriert nunValueErrorfür die Argumenten_classes < 1ODERlength < 1. #16006 von Rushabh Vasani.API Change
StreamHandlerwurde aussklearn.loggerentfernt, um doppeltes Protokollieren von Nachrichten in häufigen Fällen zu vermeiden, in denen ein Handler am Root-Logger angebracht ist, und um die Empfehlung der Python-Dokumentation für Bibliotheken zu befolgen, die Handhabung von Protokollnachrichten den Benutzern und der Anwendung zu überlassen. #16451 von Christoph Deil.
sklearn.decomposition#
Enhancement
decomposition.NMFunddecomposition.non_negative_factorizationbehalten nun den float32-Datentyp bei. #16280 von Jeremie du Boisberranger.Enhancement
decomposition.TruncatedSVD.transformist nun auf gegebenen spärlichencsc-Matrizen schneller. #16837 von @wornbb.Fix
decomposition.PCAmit einem Float-Parametern_componentswählt ausschließlich die Komponenten aus, die die Varianz größer alsn_componentserklären. #15669 von Krishna ChaitanyaFix
decomposition.PCAmitn_components='mle'behandelt nun korrekt kleine Eigenwerte und leitet nicht 0 als korrekte Anzahl von Komponenten ab. #16224 von Lisa Schwetlick, und Gelavizh Ahmadi und Marija Vlajic Wheeler und #16841 von Nicolas Hug.Fix Die Methode
inverse_transformvondecomposition.KernelPCAwendet nun die korrekte inverse Transformation auf die transformierten Daten an. #16655 von Lewis Ball.Fix Behoben: Ein Fehler, der dazu führte, dass
decomposition.KernelPCAwährendfitmanchmalinvalid value encountered in multiplyauslöste. #16718 von Gui Miotto.Feature Attribut
n_components_wurde zudecomposition.SparsePCAunddecomposition.MiniBatchSparsePCAhinzugefügt. #16981 von Mateusz Górski.
sklearn.ensemble#
Major Feature
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorunterstützen nun sample_weight. #14696 von Adrin Jalali und Nicolas Hug.Feature Das Early Stopping in
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorwird nun mit einem neuen Parameterearly_stoppinganstelle vonn_iter_no_changebestimmt. Der Standardwert ist 'auto', was Early Stopping aktiviert, wenn mindestens 10.000 Samples im Trainingsdatensatz vorhanden sind. #14516 von Johann Faouzi.Major Feature
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorunterstützen nun monotone Einschränkungen, nützlich, wenn Features einen positiven/negativen Einfluss auf das Ziel haben sollen. #15582 von Nicolas Hug.API Change Boolean-Flag
verbosewurde zu den Klassenensemble.VotingClassifierundensemble.VotingRegressorhinzugefügt. #16069 von Sam Bail, Hanna Bruce MacDonald, Reshama Shaikh, und Chiara Marmo.API Change Ein Fehler in
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorwurde behoben, der den Parametermax_leaf_nodesnicht berücksichtigte, wenn das Kriterium gleichzeitig mit demmax_depth-Kriterium erreicht wurde. #16183 von Nicolas Hug.Fix Die Konvention für den Parameter
max_depthvonensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorwurde geändert. Die Tiefe entspricht nun der Anzahl der Kanten vom Wurzelknoten bis zum tiefsten Blatt. Stumps (Bäume mit einer einzigen Aufteilung) sind nun erlaubt. #16182 von Santhosh BFix Ein Fehler wurde behoben, bei dem das Attribut
estimators_samples_inensemble.BaggingClassifier,ensemble.BaggingRegressorundensemble.IsolationForestdie währendfitverwendeten korrekten Indizes nicht generierte. #16437 von Jin-Hwan CHO.Fix Ein Fehler in
ensemble.StackingClassifierundensemble.StackingRegressorwurde behoben, bei dem das Argumentsample_weightnicht ancross_val_predictübergeben wurde, wenn die Basis-Estimators auf Kreuzvalidierungsfaltung ausgewertet wurden, um die Eingabe für den Meta-Estimator zu erhalten. #16539 von Bill DeRose.Feature Die zusätzliche Option
loss="poisson"wurde zuensemble.HistGradientBoostingRegressorhinzugefügt, was die Poisson-Abweichung mit Log-Link für die Modellierung von Zähldaten hinzufügt. #16692 von Christian LorentzenFix Ein Fehler wurde behoben, bei dem
ensemble.HistGradientBoostingRegressorundensemble.HistGradientBoostingClassifierbei mehreren Aufrufen von fit fehlschlugen, wennwarm_start=True,early_stopping=Truewar und kein Validierungsdatensatz vorhanden war. #16663 von Thomas Fan.
sklearn.feature_extraction#
Efficiency
feature_extraction.text.CountVectorizersortiert nun Features nach deren Filterung nach Dokumentenhäufigkeit. Dies verbessert die Leistung für Datensätze mit großen Vokabularen in Kombination mitmin_dfodermax_df. #15834 von Santiago M. Mola.
sklearn.feature_selection#
Enhancement Unterstützung für Multi-Output-Daten wurde zu
feature_selection.RFEundfeature_selection.RFECVhinzugefügt. #16103 von Divyaprabha M.API Change Fügt
feature_selection.SelectorMixinwieder zur öffentlichen API hinzu. #16132 von @trimeta.
sklearn.gaussian_process#
Enhancement
gaussian_process.kernels.Materngibt den RBF-Kernel zurück, wennnu=np.infist. #15503 von Sam Dixon.Fix Ein Fehler in
gaussian_process.GaussianProcessRegressorwurde behoben, der dazu führte, dass die vorhergesagten Standardabweichungen nur zwischen 0 und 1 lagen, wenn kein WhiteKernel verwendet wurde. #15782 von @plgreenLIRU.
sklearn.impute#
Enhancement
impute.IterativeImputerakzeptiert sowohl Skalar- als auch Array-ähnliche Eingaben fürmax_valueundmin_value. Array-ähnliche Eingaben ermöglichen die Angabe eines anderen Maximums und Minimums für jede Funktion. #16403 von Narendra Mukherjee.Enhancement
impute.SimpleImputer,impute.KNNImputerundimpute.IterativeImputerakzeptieren pandas' nullable Integer-Datentypen mit fehlenden Werten. #16508 von Thomas Fan.
sklearn.inspection#
Feature
inspection.partial_dependenceundinspection.plot_partial_dependenceunterstützen nun die schnelle 'recursion'-Methode fürensemble.RandomForestRegressorundtree.DecisionTreeRegressor. #15864 von Nicolas Hug.
sklearn.linear_model#
Major Feature Verallgemeinerte lineare Modelle (GLM) mit nicht-normalen Fehlerverteilungen wurden hinzugefügt, einschließlich
linear_model.PoissonRegressor,linear_model.GammaRegressorundlinear_model.TweedieRegressor, die Poisson-, Gamma- und Tweedie-Verteilungen verwenden. #14300 von Christian Lorentzen, Roman Yurchak, und Olivier Grisel.Major Feature Unterstützung für
sample_weightinlinear_model.ElasticNetundlinear_model.Lassofür dichte Feature-MatrizenX. #15436 von Christian Lorentzen.Efficiency
linear_model.RidgeCVundlinear_model.RidgeClassifierCVweisen nun keine potenziell große Array-Allokation mehr zu, um duale Koeffizienten für alle Hyperparameter währendfitzu speichern, noch ein Array, um alle Fehler- oder LOO-Vorhersagen zu speichern, es sei denn,store_cv_valuesistTrue. #15652 von Jérôme Dockès.Enhancement
linear_model.LassoLarsundlinear_model.Larsunterstützen nun einen Parameterjitter, der dem Ziel zufälliges Rauschen hinzufügt. Dies kann in einigen Grenzfällen zur Stabilität beitragen. #15179 von @angelaambroz.Fix Ein Fehler wurde behoben, bei dem, wenn ein Parameter
sample_weightan die fit-Methode vonlinear_model.RANSACRegressorübergeben wurde, dieser nicht an den umschlossenenbase_estimatorwährend des Fits des endgültigen Modells übergeben wurde. #15773 von Jeremy Alexandre.Fix Fügt das Attribut
best_score_zulinear_model.RidgeCVundlinear_model.RidgeClassifierCVhinzu. #15655 von Jérôme Dockès.Fix Behebt einen Fehler in
linear_model.RidgeClassifierCV, um eine spezifische Scoring-Strategie zu übergeben. Zuvor gab der interne Schätzer stattdessen Scores anstelle von Vorhersagen aus. #14848 von Venkatachalam N.Fix
linear_model.LogisticRegressionvermeidet nun eine unnötige Iteration, wennsolver='newton-cg'ist, indem es auf "inferior oder gleich" statt "strikt inferior" für das Maximum vonabsgradundtolinutils.optimize._newton_cgprüft. #16266 von Rushabh Vasani.API Change Die öffentlichen Attribute
standard_coef_,standard_intercept_,average_coef_undaverage_intercept_inlinear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressorwerden als veraltet markiert. #16261 von Carlos Brandt.Fix Efficiency
linear_model.ARDRegressionist stabiler und viel schneller, wennn_samples > n_featuresist. Es kann nun auf Hunderttausende von Samples skaliert werden. Die Stabilitätskorrektur kann Änderungen in der Anzahl der Nicht-Null-Koeffizienten und der vorhergesagten Ausgabe bedeuten. #16849 von Nicolas Hug.Fix Behebt einen Fehler in
linear_model.ElasticNetCV,linear_model.MultiTaskElasticNetCV,linear_model.LassoCVundlinear_model.MultiTaskLassoCV, bei denen die Anpassung fehlschlagend war, wenn das Joblib loky-Backend verwendet wurde. #14264 von Jérémie du Boisberranger.Efficiency Beschleunigt
linear_model.MultiTaskLasso,linear_model.MultiTaskLassoCV,linear_model.MultiTaskElasticNet,linear_model.MultiTaskElasticNetCV, indem langsamere BLAS Level 2 Aufrufe auf kleinen Arrays vermieden werden #17021 von Alex Gramfort und Mathurin Massias.
sklearn.metrics#
Enhancement
metrics.pairwise_distances_chunkederlaubt nun, dass seinereduce_funckeinen Rückgabewert hat, was In-Place-Operationen ermöglicht. #16397 von Joel Nothman.Fix Behebt einen Fehler in
metrics.mean_squared_error, um das Argumentsquarednicht zu ignorieren, wenn das Argumentmultioutput='raw_values'ist. #16323 von Rushabh VasaniFix Behebt einen Fehler in
metrics.mutual_info_score, wo negative Scores zurückgegeben werden konnten. #16362 von Thomas Fan.Fix Behebt einen Fehler in
metrics.confusion_matrix, der einen Fehler auslöste, wenny_trueundy_preddie Länge Null hatten undlabelsnichtNonewar. Außerdem wird ein Fehler ausgelöst, wenn eine leere Liste an denlabelsParameter übergeben wird. #16442 von Kyle Parsons.API Change Die Formatierung von Werten in
metrics.ConfusionMatrixDisplay.plotundmetrics.plot_confusion_matrixwurde geändert, um das kürzere Format (entweder '2g' oder 'd') zu wählen. #16159 von Rick Mackenbach und Thomas Fan.API Change Ab Version 0.25 berechnet
metrics.pairwise_distancesnicht mehr automatisch den ParameterVIfür die Mahalanobis-Distanz und den ParameterVfür die seuclidean-Distanz, wennYübergeben wird. Der Benutzer muss diesen Parameter auf seinen Trainingsdaten berechnen und ihn anpairwise_distancesübergeben. #16993 von Joel Nothman.
sklearn.model_selection#
Enhancement
model_selection.GridSearchCVundmodel_selection.RandomizedSearchCVgeben zusätzlich zu den zuvor ausgegebenen Typ- und Detailinformationen auch Stack-Trace-Informationen in Fehlermeldungen bei fehlgeschlagener Anpassung aus. #15622 von Gregory Morse.Fix
model_selection.cross_val_predictunterstütztmethod="predict_proba", wenny=Noneist. #15918 von Luca Kubin.Fix
model_selection.fit_grid_pointist in Version 0.23 veraltet und wird in Version 0.25 entfernt. #16401 von Arie Pratama Sutiono
sklearn.multioutput#
Feature
multioutput.MultiOutputRegressor.fitundmultioutput.MultiOutputClassifier.fitkönnen nunfit_paramsakzeptieren, um sie an dieestimator.fitMethode jedes Schritts weiterzugeben. #15953 #15959 von Ke Huang.Enhancement
multioutput.RegressorChainunterstützt nunfit_paramsfürbase_estimatorwährendfit. #16111 von Venkatachalam N.
sklearn.naive_bayes#
Fix In
naive_bayes.CategoricalNBwird nun eine korrekt formatierte Fehlermeldung angezeigt, wenn die Anzahl der Features in der Eingabe zwischenpredictundfitunterschiedlich ist. #16090 von Madhura Jayaratne.
sklearn.neural_network#
Efficiency
neural_network.MLPClassifierundneural_network.MLPRegressorhaben einen reduzierten Speicherbedarf bei Verwendung von stochastischen Lösern,'sgd'oder'adam', undshuffle=True. #14075 von @meyer89.Fix Erhöht die numerische Stabilität der logistischen Verlustfunktion in
neural_network.MLPClassifierdurch Clipping der Wahrscheinlichkeiten. #16117 von Thomas Fan.
sklearn.inspection#
Enhancement
inspection.PartialDependenceDisplaystellt nun die Dezillinien als Attribute bereit, sodass sie ausgeblendet oder angepasst werden können. #15785 von Nicolas Hug
sklearn.preprocessing#
Feature Das Argument
dropvonpreprocessing.OneHotEncoderakzeptiert nun den Wert 'if_binary' und entfernt die erste Kategorie jeder zweikategorischen Feature. #16245 von Rushabh Vasani.Enhancement Das
drop_idx_ndarray vonpreprocessing.OneHotEncoderkann nunNoneenthalten, wobeidrop_idx_[i] = Nonebedeutet, dass für Indexikeine Kategorie entfernt wird. #16585 von Chiara Marmo.Enhancement
preprocessing.MaxAbsScaler,preprocessing.MinMaxScaler,preprocessing.StandardScaler,preprocessing.PowerTransformer,preprocessing.QuantileTransformer,preprocessing.RobustScalerunterstützen nun Pandas' nullable Integer-Datentyp mit fehlenden Werten. #16508 von Thomas Fan.Efficiency
preprocessing.OneHotEncodertransformiert nun schneller. #15762 von Thomas Fan.Fix Behebt einen Fehler in
preprocessing.StandardScaler, der Statistiken bei Aufruf vonpartial_fitauf sparse Eingaben falsch berechnete. #16466 von Guillaume Lemaitre.Fix Behebt einen Fehler in
preprocessing.Normalizermit norm='max', der den Absolutwert der Maximalwerte nicht berücksichtigte, bevor die Vektoren normalisiert wurden. #16632 von Maura Pintor und Battista Biggio.
sklearn.semi_supervised#
Fix
semi_supervised.LabelSpreadingundsemi_supervised.LabelPropagationvermeiden Division-durch-Null-Warnungen beim Normalisieren vonlabel_distributions_. #15946 von @ngshya.
sklearn.svm#
Fix Efficiency Verbessert die Zufallszahlengeneratoren von
libsvmundliblinear, die zur zufälligen Auswahl von Koordinaten in den Coordinate-Descent-Algorithmen verwendet werden. Die plattformabhängige Crand()-Funktion wurde verwendet, die unter Windows nur Zahlen bis32767generieren kann (siehe Blogbeitrag) und auch eine schlechte Randomisierungsleistung aufweist, wie in dieser Präsentation angedeutet wird. Sie wurde durch C++11mt19937, einen Mersenne Twister, ersetzt, der auf allen Plattformen korrekt 31-Bit/63-Bit-Zufallszahlen generiert. Zusätzlich wurde der grobe "Modulo"-Nachbearbeitungsfilter zur Erzeugung einer Zufallszahl in einem begrenzten Intervall durch die angepasste Lemire-Methode ersetzt, wie in diesem Blogbeitrag vorgeschlagen. Jedes Modell, das densvm.libsvm- oder densvm.liblinear-Löser verwendet, einschließlichsvm.LinearSVC,svm.LinearSVR,svm.NuSVC,svm.NuSVR,svm.OneClassSVM,svm.SVC,svm.SVR,linear_model.LogisticRegression, ist betroffen. Insbesondere können Benutzer bei einer großen Anzahl von Stichproben (LibSVM) oder einer großen Anzahl von Features (LibLinear) eine bessere Konvergenz erwarten. #13511 von Sylvain Marié.Fix Behebt die Verwendung von benutzerdefinierten Kerneln, die keine Float-Einträge akzeptieren, wie String-Kernel in
svm.SVCundsvm.SVR. Beachten Sie, dass benutzerdefinierte Kernel nun ihre Eingabe validieren müssen, während sie zuvor gültige numerische Arrays erhalten haben. #11296 von Alexandre Gramfort und Georgi Peev.API Change Die Attribute
probA_undprobB_vonsvm.SVRundsvm.OneClassSVMsind nun veraltet, da sie nicht nützlich waren. #15558 von Thomas Fan.
sklearn.tree#
Fix Der Parameter
rotatevontree.plot_treewurde nicht verwendet und ist nun veraltet. #15806 von Chiara Marmo.Fix Behebt die Unterstützung für schreibgeschützte Float32-Array-Eingaben in den Methoden
predict,decision_pathundpredict_probavontree.DecisionTreeClassifier,tree.ExtraTreeClassifierundensemble.GradientBoostingClassifiersowie die Methodepredictvontree.DecisionTreeRegressor,tree.ExtraTreeRegressorundensemble.GradientBoostingRegressor. #16331 von Alexandre Batisse.
sklearn.utils#
Major Feature Schätzer können nun mit einer Rich-HTML-Repräsentation angezeigt werden. Dies kann in Jupyter-Notebooks aktiviert werden, indem
display='diagram'inset_configgesetzt wird. Das rohe HTML kann durch die Verwendung vonutils.estimator_html_reprzurückgegeben werden. #14180 von Thomas Fan.Enhancement Verbessert die Fehlermeldung in
utils.validation.column_or_1d. #15926 von Loïc Estève.Enhancement Fügt eine Warnung in
utils.check_arrayfür pandas sparse DataFrames hinzu. #16021 von Rushabh Vasani.Enhancement
utils.check_arraykonstruiert nun eine sparse Matrix aus einem Pandas DataFrame, der nurSparseArray-Spalten enthält. #16728 von Thomas Fan.Enhancement
utils.check_arrayunterstützt Pandas' nullable Integer-Datentyp mit fehlenden Werten, wennforce_all_finiteaufFalseoder'allow-nan'gesetzt ist. In diesem Fall werden die Daten in Gleitkommazahlen umgewandelt, wobeipd.NA-Werte durchnp.nanersetzt werden. Infolgedessen akzeptieren nun allesklearn.preprocessing-Transformer, die numerische Eingaben mit fehlenden Werten alsnp.nanakzeptieren, auch die direkte Übergabe von Pandas DataFrames mitpd.Int* oder `pd.Uint*-Datentypen, diepd.NAals Markierung für fehlende Werte verwenden. #16508 von Thomas Fan.API Change Das Übergeben von Klassen an
utils.estimator_checks.check_estimatorundutils.estimator_checks.parametrize_with_checksist nun veraltet und die Unterstützung für Klassen wird in 0.24 entfernt. Übergeben Sie stattdessen Instanzen. #17032 von Nicolas Hug.API-Änderung Das private Hilfsprogramm
_safe_tagsinutils.estimator_checkswurde entfernt. Daher sollten alle Tags überestimator._get_tags()bezogen werden. Beachten Sie, dass Mixins wieRegressorMixinin der MRO vor den Basisklassen stehen müssen, damit_get_tags()ordnungsgemäß funktioniert. #16950 von Nicolas Hug.Fehlerbehebung
utils.all_estimatorsgibt nun nur noch öffentliche Estimators zurück. #15380 von Thomas Fan.
Sonstiges#
Hauptfunktion Fügt eine HTML-Darstellung von Estimators hinzu, die in einem Jupyter Notebook oder Lab angezeigt werden kann. Diese Visualisierung wird durch Setzen der Option
displayinsklearn.set_configaktiviert. #14180 von Thomas Fan.Verbesserung
scikit-learnfunktioniert nun fehlerfrei mitmypy. #16726 von Roman Yurchak.API-Änderung Die meisten Estimators stellen nun ein Attribut
n_features_in_bereit. Dieses Attribut ist gleich der Anzahl der Merkmale, die an diefit-Methode übergeben wurden. Einzelheiten finden Sie unter SLEP010. #16112 von Nicolas Hug.API-Änderung Estimators haben nun einen Tag
requires_y, der standardmäßig False ist, außer bei Estimators, die von~sklearn.base.RegressorMixinoder~sklearn.base.ClassifierMixinerben. Dieser Tag wird verwendet, um sicherzustellen, dass eine entsprechende Fehlermeldung ausgegeben wird, wenn y erwartet wurde, aber None übergeben wurde. #16622 von Nicolas Hug.API-Änderung Die Standardeinstellung
print_changed_onlywurde von False auf True geändert. Das bedeutet, dass diereprvon Estimators nun prägnanter ist und nur die Parameter anzeigt, deren Standardwert geändert wurde, wenn ein Estimator ausgegeben wird. Sie können das frühere Verhalten wiederherstellen, indem Siesklearn.set_config(print_changed_only=False)verwenden. Beachten Sie auch, dass es immer möglich ist, die Parameter eines beliebigen Estimators schnell mitest.get_params(deep=False)zu überprüfen. #17061 von Nicolas Hug.
Code- und Dokumentationsbeitragende
Vielen Dank an alle, die seit Version 0.22 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter
Abbie Popa, Adrin Jalali, Aleksandra Kocot, Alexandre Batisse, Alexandre Gramfort, Alex Henrie, Alex Itkes, Alex Liang, alexshacked, Alonso Silva Allende, Ana Casado, Andreas Mueller, Angela Ambroz, Ankit810, Arie Pratama Sutiono, Arunav Konwar, Baptiste Maingret, Benjamin Beier Liu, bernie gray, Bharathi Srinivasan, Bharat Raghunathan, Bibhash Chandra Mitra, Brian Wignall, brigi, Brigitta Sipőcz, Carlos H Brandt, CastaChick, castor, cgsavard, Chiara Marmo, Chris Gregory, Christian Kastner, Christian Lorentzen, Corrie Bartelheimer, Daniël van Gelder, Daphne, David Breuer, david-cortes, dbauer9, Divyaprabha M, Edward Qian, Ekaterina Borovikova, ELNS, Emily Taylor, Erich Schubert, Eric Leung, Evgeni Chasnovski, Fabiana, Facundo Ferrín, Fan, Franziska Boenisch, Gael Varoquaux, Gaurav Sharma, Geoffrey Bolmier, Georgi Peev, gholdman1, Gonthier Nicolas, Gregory Morse, Gregory R. Lee, Guillaume Lemaitre, Gui Miotto, Hailey Nguyen, Hanmin Qin, Hao Chun Chang, HaoYin, Hélion du Mas des Bourboux, Himanshu Garg, Hirofumi Suzuki, huangk10, Hugo van Kemenade, Hye Sung Jung, indecisiveuser, inderjeet, J-A16, Jérémie du Boisberranger, Jin-Hwan CHO, JJmistry, Joel Nothman, Johann Faouzi, Jon Haitz Legarreta Gorroño, Juan Carlos Alfaro Jiménez, judithabk6, jumon, Kathryn Poole, Katrina Ni, Kesshi Jordan, Kevin Loftis, Kevin Markham, krishnachaitanya9, Lam Gia Thuan, Leland McInnes, Lisa Schwetlick, lkubin, Loic Esteve, lopusz, lrajball, lucgiffon, lucyleeow, Lucy Liu, Lukas Kemkes, Maciej J Mikulski, Madhura Jayaratne, Magda Zielinska, maikia, Mandy Gu, Manimaran, Manish Aradwad, Maren Westermann, Maria, Mariana Meireles, Marie Douriez, Marielle, Mateusz Górski, mathurinm, Matt Hall, Maura Pintor, mc4229, meyer89, m.fab, Michael Shoemaker, Michał Słapek, Mina Naghshhnejad, mo, Mohamed Maskani, Mojca Bertoncelj, narendramukherjee, ngshya, Nicholas Won, Nicolas Hug, nicolasservel, Niklas, @nkish, Noa Tamir, Oleksandr Pavlyk, olicairns, Oliver Urs Lenz, Olivier Grisel, parsons-kyle-89, Paula, Pete Green, Pierre Delanoue, pspachtholz, Pulkit Mehta, Qizhi Jiang, Quang Nguyen, rachelcjordan, raduspaimoc, Reshama Shaikh, Riccardo Folloni, Rick Mackenbach, Ritchie Ng, Roman Feldbauer, Roman Yurchak, Rory Hartong-Redden, Rüdiger Busche, Rushabh Vasani, Sambhav Kothari, Samesh Lakhotia, Samuel Duan, SanthoshBala18, Santiago M. Mola, Sarat Addepalli, scibol, Sebastian Kießling, SergioDSR, Sergul Aydore, Shiki-H, shivamgargsya, SHUBH CHATTERJEE, Siddharth Gupta, simonamaggio, smarie, Snowhite, stareh, Stephen Blystone, Stephen Marsh, Sunmi Yoon, SylvainLan, talgatomarov, tamirlan1, th0rwas, theoptips, Thomas J Fan, Thomas Li, Thomas Schmitt, Tim Nonner, Tim Vink, Tiphaine Viard, Tirth Patel, Titus Christian, Tom Dupré la Tour, trimeta, Vachan D A, Vandana Iyer, Venkatachalam N, waelbenamara, wconnell, wderose, wenliwyan, Windber, wornbb, Yu-Hang “Maxin” Tang