Version 0.20#
Warnung
Version 0.20 ist die letzte Version von scikit-learn, die Python 2.7 und Python 3.4 unterstützt. Scikit-learn 0.21 erfordert Python 3.5 oder höher.
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.20.4#
30. Juli 2019
Dies ist eine Bugfix-Version mit einigen Fehlerbehebungen, die auf Version 0.20.3 angewendet wurden.
Änderungsprotokoll#
Die gebündelte Version von joblib wurde von 0.13.0 auf 0.13.2 aktualisiert.
sklearn.cluster#
Fix Behoben wurde ein Fehler in
cluster.KMeans, bei dem die KMeans++-Initialisierung selten zu einem IndexError führen konnte. #11756 von Joel Nothman.
sklearn.compose#
Fix Ein Problem in
compose.ColumnTransformerwurde behoben, bei dem die Verwendung von DataFrames mit unterschiedlicher Spaltenreihenfolge zwischenfitundtransformdazu führen konnte, dass falsche Spalten stillschweigend an denremainderTransformer übergeben wurden. #14237 vonAndreas Schuderer <schuderer>.
sklearn.decomposition#
Fix Ein Fehler in
cross_decomposition.CCAwurde behoben, der die numerische Stabilität verbesserte, wennYnahe Null war. #13903 von Thomas Fan.
sklearn.model_selection#
Fix Ein Fehler wurde behoben, bei dem
model_selection.StratifiedKFolddie Stichproben jeder Klasse mit demselbenrandom_statemischt, wodurchshuffle=Trueunwirksam war. #13124 von Hanmin Qin.
sklearn.neighbors#
Fix Ein Fehler in
neighbors.KernelDensitywurde behoben, der nicht aus einem Pickle wiederhergestellt werden konnte, wennsample_weightverwendet wurde. #13772 von Aditya Vyas.
Version 0.20.3#
1. März 2019
Dies ist eine Bugfix-Version mit einigen geringfügigen Verbesserungen der Dokumentation und Erweiterungen von Funktionen, die in 0.20.0 veröffentlicht wurden.
Änderungsprotokoll#
sklearn.cluster#
Fix Ein Fehler in
cluster.KMeanswurde behoben, bei dem die Berechnung Single-Threaded war, wennn_jobs > 1odern_jobs = -1war. #12949 von Prabakaran Kumaresshan.
sklearn.compose#
Fix Ein Fehler in
compose.ColumnTransformerwurde behoben, um negative Indizes in der Spaltenliste der Transformer zu verarbeiten. #12946 von Pierre Tallotte.
sklearn.covariance#
Fix Eine Regression in
covariance.graphical_lassowurde behoben, sodass der Falln_features=2korrekt behandelt wird. #13276 von Aurélien Bellet.
sklearn.decomposition#
Fix Ein Fehler in
decomposition.sparse_encodewurde behoben, bei dem die Berechnung Single-Threaded war, wennn_jobs > 1odern_jobs = -1war. #13005 von Prabakaran Kumaresshan.
sklearn.datasets#
Efficiency
sklearn.datasets.fetch_openmllädt Daten nun durch Streaming, wodurch ein hoher Speicherverbrauch vermieden wird. #13312 von Joris Van den Bossche.
sklearn.feature_extraction#
Fix Ein Fehler in
feature_extraction.text.CountVectorizerwurde behoben, der dazu führte, dass die dünne Feature-Matrix widersprüchliche Präzisionen vonindptrundindicesbei sehr großen Vokabularen aufwies. #11295 von Gabriel Vacaliuc.
sklearn.impute#
Fix Unterstützung für nicht-numerische Daten wurde in
sklearn.impute.MissingIndicatorhinzugefügt, die nicht unterstützt wurde, währendsklearn.impute.SimpleImputerdies für einige Imputationsstrategien unterstützte. #13046 von Guillaume Lemaitre.
sklearn.linear_model#
Fix Ein Fehler in
linear_model.MultiTaskElasticNetundlinear_model.MultiTaskLassowurde behoben, die fehlschlugen, wennwarm_start = Truewar. #12360 von Aakanksha Joshi.
sklearn.preprocessing#
Fix Ein Fehler in
preprocessing.KBinsDiscretizerwurde behoben, bei demstrategy='kmeans'während der Transformation aufgrund unsortierter Bin-Grenzen einen Fehler verursachte. #13134 von Sandro Casagrande.Fix Ein Fehler in
preprocessing.OneHotEncoderwurde behoben, bei dem die Deprecation voncategorical_featuresin Kombination mithandle_unknown='ignore'falsch behandelt wurde. #12881 von Joris Van den Bossche.Fix Bins mit zu geringer Breite (d.h. <= 1e-8) werden mit einer Warnung in
preprocessing.KBinsDiscretizerentfernt. #13165 von Hanmin Qin.
sklearn.svm#
Fix Ein Fehler in
svm.SVC,svm.NuSVC,svm.SVR,svm.NuSVRundsvm.OneClassSVMwurde behoben, bei dem die Optionscaledes Parametersgammafälschlicherweise als1 / (n_features * X.std())definiert war. Sie ist nun als1 / (n_features * X.var())definiert. #13221 von Hanmin Qin.
Code- und Dokumentations-Mitwirkende#
Mit Dank an
Adrin Jalali, Agamemnon Krasoulis, Albert Thomas, Andreas Mueller, Aurélien Bellet, bertrandhaut, Bharat Raghunathan, Dowon, Emmanuel Arias, Fibinse Xavier, Finn O’Shea, Gabriel Vacaliuc, Gael Varoquaux, Guillaume Lemaitre, Hanmin Qin, joaak, Joel Nothman, Joris Van den Bossche, Jérémie Méhault, kms15, Kossori Aruku, Lakshya KD, maikia, Manuel López-Ibáñez, Marco Gorelli, MarcoGorelli, mferrari3, Mickaël Schoentgen, Nicolas Hug, pavlos kallis, Pierre Glaser, pierretallotte, Prabakaran Kumaresshan, Reshama Shaikh, Rohit Kapoor, Roman Yurchak, SandroCasagrande, Tashay Green, Thomas Fan, Vishaal Kapoor, Zhuyi Xue, Zijie (ZJ) Poh
Version 0.20.2#
20. Dezember 2018
Dies ist eine Bugfix-Version mit einigen geringfügigen Verbesserungen der Dokumentation und Erweiterungen von Funktionen, die in 0.20.0 veröffentlicht wurden.
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.
sklearn.neighborsbeimetric=='jaccard'(Fehlerbehebung)Verwendung der Metriken
'seuclidean'oder'mahalanobis'in einigen Fällen (Fehlerbehebung)
Änderungsprotokoll#
sklearn.compose#
Fix Ein Problem in
compose.make_column_transformerwurde behoben, das einen unerwarteten Fehler auslöste, wenn Spalten ein pandas Index oder eine pandas Series waren. #12704 von Hanmin Qin.
sklearn.metrics#
Fix Ein Fehler in
metrics.pairwise_distancesundmetrics.pairwise_distances_chunkedwurde behoben, bei dem die ParameterVder Metriken"seuclidean"undVIder Metrik"mahalanobis"nach der Aufteilung der Daten in Chunks berechnet wurden, anstatt vorab auf den gesamten Daten berechnet zu werden. #12701 von Jeremie du Boisberranger.
sklearn.neighbors#
Fix Die Jaccard-Distanzfunktion von
sklearn.neighbors.DistanceMetricwurde korrigiert, um 0 zurückzugeben, wenn zwei Vektoren mit nur Nullen verglichen werden. #12685 von Thomas Fan.
sklearn.utils#
Fix Der Aufruf von
utils.check_arrayfürpandas.Seriesmit kategorialen Daten, was in Version 0.20.0 zu einem Fehler führte, gibt nun wieder die erwartete Ausgabe. #12699 von Joris Van den Bossche.
Code- und Dokumentations-Mitwirkende#
Mit Dank an
adanhawth, Adrin Jalali, Albert Thomas, Andreas Mueller, Dan Stine, Feda Curic, Hanmin Qin, Jan S, jeremiedbb, Joel Nothman, Joris Van den Bossche, josephsalmon, Katrin Leinweber, Loic Esteve, Muhammad Hassaan Rafique, Nicolas Hug, Olivier Grisel, Paul Paczuski, Reshama Shaikh, Sam Waterbury, Shivam Kotwalia, Thomas Fan
Version 0.20.1#
21. November 2018
Dies ist eine Bugfix-Version mit einigen geringfügigen Verbesserungen der Dokumentation und Erweiterungen von Funktionen, die in 0.20.0 veröffentlicht wurden. Beachten Sie, dass wir in dieser Version auch einige API-Änderungen aufgenommen haben, so dass Sie nach dem Update von 0.20.0 auf 0.20.1 möglicherweise einige zusätzliche Warnungen erhalten.
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.
decomposition.IncrementalPCA(Fehlerbehebung)
Änderungsprotokoll#
sklearn.cluster#
Efficiency
cluster.MeanShiftversucht nicht mehr, eine verschachtelte Parallelisierung durchzuführen, da der Overhead die Leistung bein_jobs > 1erheblich beeinträchtigen würde. #12159 von Olivier Grisel.Fix Ein Fehler in
cluster.DBSCANmit vorberechnetem dünnem Nachbarschaftsgraphen wurde behoben, der explizit Nullen auf der Diagonalen hinzufügte, auch wenn sie bereits vorhanden waren. #12105 von Tom Dupre la Tour.
sklearn.compose#
Fix Ein Problem in
compose.ColumnTransformerwurde behoben, wenn Spalten mit Typen gestapelt werden, die nicht in eine numerische Form konvertierbar sind. #11912 von Adrin Jalali.API Change
compose.ColumnTransformerwendet nun diesparse_thresholdan, auch wenn alle Transformationsergebnisse dünn sind. #12304 von Andreas Müller.API Change
compose.make_column_transformererwartet nun(transformer, columns)anstelle von(columns, transformer), um konsistent mitcompose.ColumnTransformerzu sein. #12339 von Adrin Jalali.
sklearn.datasets#
Fix
datasets.fetch_openmlverwendet nun korrekt den lokalen Cache. #12246 von Jan N. van Rijn.Fix
datasets.fetch_openmlbehandelt nun korrekt Ignore-Attribute und Row-ID-Attribute. #12330 von Jan N. van Rijn.Fix Ein Integer-Überlauf in
datasets.make_classificationwurde für Werte des Parametersn_informativegrößer als 64 behoben. #10811 von Roman Feldbauer.Fix Das
DESCR-Attribut des Olivetti Faces Datensatzes wurde indatasets.fetch_olivetti_facesauf den richtigen Speicherort gesetzt. #12441 von Jérémie du Boisberranger.Fix
datasets.fetch_openmlversucht nun erneut den Download, wenn das Lesen aus dem lokalen Cache fehlschlägt. #12517 von Thomas Fan.
sklearn.decomposition#
Fix Eine Regression in v0.20.0 wurde behoben, bei der
decomposition.IncrementalPCAeinen Fehler auslöste, wenn die Anzahl der Stichproben im letzten Batch zum Anpassen von IncrementalPCA kleiner als n_components war. #12234 von Ming Li.
sklearn.ensemble#
Fix Ein Fehler, der hauptsächlich
ensemble.RandomForestClassifierbetraf, wurde behoben, bei demclass_weight='balanced_subsample'mit mehr als 32 Klassen fehlschlug. #12165 von Joel Nothman.Fix Ein Fehler in
ensemble.BaggingClassifier,ensemble.BaggingRegressorundensemble.IsolationForestwurde behoben, bei demmax_featuresmanchmal auf null abgerundet wurde. #12388 von Connor Tann.
sklearn.feature_extraction#
Fix Eine Regression in v0.20.0 wurde behoben, bei der
feature_extraction.text.CountVectorizerund andere Text-Vectorizer bei der Validierung von Stoppwörtern mit benutzerdefinierten Präprozessoren oder Tokenizern einen Fehler verursachten. #12393 von Roman Yurchak.
sklearn.linear_model#
Fix
linear_model.SGDClassifierund Varianten mitearly_stopping=Trueverwendeten im Multiclass-Fall keine konsistente Validierungsaufteilung, was zu einem Absturz führte, wenn diese Schätzer als Teil einer parallelen Parametersuche oder Kreuzvalidierung verwendet wurden. #12122 von Olivier Grisel.Fix Ein Fehler in
linear_model.SGDClassifierim Multiclass-Fall wurde behoben. Jeder One-vs-All-Schritt wird in einemjoblib.Parallel-Aufruf ausgeführt und mutiert einen gemeinsamen Parameter, was zu einem Segmentierungsfehler führte, wenn er innerhalb eines Backends mit Prozessen und nicht mit Threads aufgerufen wurde. Wir verwenden nunrequire=sharedmembei der Erstellung derjoblib.Parallel-Instanz. #12518 von Pierre Glaser und Olivier Grisel.
sklearn.metrics#
Fix Ein Fehler in
metrics.pairwise.pairwise_distances_argmin_minwurde behoben, der die Quadratwurzel der Distanz zurückgab, wenn der Metrikparameter auf „euclidean“ gesetzt war. #12481 von Jérémie du Boisberranger.Fix Ein Fehler in
metrics.pairwise.pairwise_distances_chunkedwurde behoben, der nicht sicherstellte, dass die Diagonale für euklidische Distanzen Null war. #12612 von Andreas Müller.API Change Der Name von
metrics.calinski_harabaz_scorewurde inmetrics.calinski_harabasz_scoregeändert und wird in Version 0.23 entfernt. #12211 von Lisa Thomas, Mark Hannel und Melissa Ferrari.
sklearn.mixture#
Fix Stellen Sie sicher, dass die Methode
fit_predictvonmixture.GaussianMixtureundmixture.BayesianGaussianMixtureimmer Zuweisungen liefert, die mitfitgefolgt vonpredictkonsistent sind, auch wenn das Konvergenzkriterium zu locker ist oder nicht erfüllt wurde. #12451 von Olivier Grisel.
sklearn.neighbors#
Fix Erzwingen des Parallelisierungs-Backends auf
threadingfürneighbors.KDTreeundneighbors.BallTreein Python 2.7, um Pickling-Fehler zu vermeiden, die durch die Serialisierung ihrer Methoden verursacht werden. #12171 von Thomas Moreau.
sklearn.preprocessing#
Fix Fehler in
preprocessing.OrdinalEncoderbehoben, wenn manuell angegebene Kategorien übergeben wurden. #12365 von Joris Van den Bossche.Fix Fehler in
preprocessing.KBinsDiscretizerbehoben, bei dem die Methodetransformdas Attribut_encodermutiert hat. Die Methodetransformist jetzt thread-sicher. #12514 von Hanmin Qin.Fix Ein Fehler in
preprocessing.PowerTransformerbehoben, bei dem die Yeo-Johnson-Transformation für Lambda-Parameter außerhalb von[0, 2]falsch war #12522 von Nicolas Hug.Fix Ein Fehler in
preprocessing.OneHotEncoderbehoben, bei dem die Transformation fehlschlug, wenn sie so eingestellt war, dass unbekannte Numpy-Strings unterschiedlicher Längen ignoriert werden #12471 von Gabriel Marzinotto.API Change Der Standardwert des Arguments
methodinpreprocessing.power_transformwird vonbox-coxzuyeo-johnsongeändert, umpreprocessing.PowerTransformerin Version 0.23 anzupassen. Eine `FutureWarning` wird ausgegeben, wenn der Standardwert verwendet wird. #12317 von Eric Chang.
sklearn.utils#
Fix Verwenden von float64 für den Mittelwert-Akkumulator, um Genauigkeitsprobleme mit Gleitkommazahlen in
preprocessing.StandardScalerunddecomposition.IncrementalPCAzu vermeiden, wenn float32-Datensätze verwendet werden. #12338 von bauks.Fix Das Aufrufen von
utils.check_arrayaufpandas.Series, was in 0.20.0 einen Fehler verursachte, gibt nun wieder die erwartete Ausgabe aus. #12625 von Andreas Müller
Sonstiges#
Fix Bei Verwendung von Site Joblib durch Setzen der Umgebungsvariable
SKLEARN_SITE_JOBLIBwurde die Kompatibilität mit joblib 0.11 zusätzlich zu 0.12+ hinzugefügt. #12350 von Joel Nothman und Roman Yurchak.Fix Sicherstellen, dass keine `FutureWarning` mehr ausgelöst wird, wenn `np.vstack` mit NumPy 1.16 und neuer aufgerufen wird (Verwendung von List Comprehensions anstelle von Generator Expressions an vielen Stellen der Scikit-learn-Codebasis). #12467 von Olivier Grisel.
API Change Alle Verweise auf
sklearn.externals.joblibwurden entfernt und Joblib-Methoden, die insklearn.utilsverfügbar waren, mit Ausnahme vonutils.parallel_backendundutils.register_parallel_backend, die es Benutzern ermöglichen, parallele Berechnungen in Scikit-learn zu konfigurieren, wurden als veraltet markiert. Andere Funktionalitäten sind Teil des joblib Pakets und sollten direkt durch dessen Installation verwendet werden. Ziel dieser Änderung ist die Vorbereitung auf das Entfernen von Joblib in zukünftigen Versionen von Scikit-learn. #12345 von Thomas Moreau
Code- und Dokumentationsmitwirkende#
Mit Dank an
^__^, Adrin Jalali, Andrea Navarrete, Andreas Mueller, bauks, BenjaStudio, Cheuk Ting Ho, Connossor, Corey Levinson, Dan Stine, daten-kieker, Denis Kataev, Dillon Gardner, Dmitry Vukolov, Dougal J. Sutherland, Edward J Brown, Eric Chang, Federico Caselli, Gabriel Marzinotto, Gael Varoquaux, GauravAhlawat, Gustavo De Mari Pereira, Hanmin Qin, haroldfox, JackLangerman, Jacopo Notarstefano, janvanrijn, jdethurens, jeremiedbb, Joel Nothman, Joris Van den Bossche, Koen, Kushal Chauhan, Lee Yi Jie Joel, Lily Xiong, mail-liam, Mark Hannel, melsyt, Ming Li, Nicholas Smith, Nicolas Hug, Nikolay Shebanov, Oleksandr Pavlyk, Olivier Grisel, Peter Hausamann, Pierre Glaser, Pulkit Maloo, Quentin Batista, Radostin Stoyanov, Ramil Nugmanov, Rebekah Kim, Reshama Shaikh, Rohan Singh, Roman Feldbauer, Roman Yurchak, Roopam Sharma, Sam Waterbury, Scott Lowe, Sebastian Raschka, Stephen Tierney, SylvainLan, TakingItCasual, Thomas Fan, Thomas Moreau, Tom Dupré la Tour, Tulio Casagrande, Utkarsh Upadhyay, Xing Han Lu, Yaroslav Halchenko, Zach Miller
Version 0.20.0#
25. September 2018
Diese Veröffentlichung enthält eine Fülle von Fehlerbehebungen, neuen Funktionen und Verbesserungen für die Scikit-learn-Bibliothek sowie Verbesserungen an der Dokumentation und den Beispielen. Vielen Dank an unsere Mitwirkenden!
Diese Veröffentlichung ist dem Gedenken an Raghav Rajagopalan gewidmet.
Highlights#
Wir haben versucht, unsere Unterstützung für gängige Anwendungsfälle in der Datenwissenschaft zu verbessern, einschließlich fehlender Werte, kategorialer Variablen, heterogener Daten und Merkmale/Ziele mit ungewöhnlichen Verteilungen. Fehlende Werte in Merkmalen, die als NaNs dargestellt werden, werden nun in spaltenweisen Vorverarbeitungsschritten wie Skalierern akzeptiert. Jedes Merkmal wird unter Ignorierung von NaNs angepasst, und Daten, die NaNs enthalten, können transformiert werden. Das neue Modul sklearn.impute bietet Schätzer zum Lernen trotz fehlender Daten.
ColumnTransformer behandelt den Fall, dass unterschiedliche Merkmale oder Spalten eines pandas.DataFrame unterschiedliche Vorverarbeitung benötigen. Zeichenketten- oder Pandas-kategorische Spalten können nun mit OneHotEncoder oder OrdinalEncoder kodiert werden.
TransformedTargetRegressor hilft, wenn das Regressionsziel zur Modellierung transformiert werden muss. PowerTransformer und KBinsDiscretizer gesellen sich zu QuantileTransformer als nichtlineare Transformationen.
Darüber hinaus wurde die Unterstützung für sample_weight für mehrere Schätzer hinzugefügt (einschließlich KMeans, BayesianRidge und KernelDensity) und die Stoppkriterien in anderen wurden verbessert (einschließlich MLPRegressor, GradientBoostingRegressor und SGDRegressor).
Diese Veröffentlichung ist auch die erste, die von einem Glossar gängiger Begriffe und API-Elemente begleitet wird, das von Joel Nothman entwickelt wurde. Das Glossar ist eine Referenzressource, die Benutzern und Mitwirkenden helfen soll, sich mit der Terminologie und den Konventionen von Scikit-learn vertraut zu machen.
Entschuldigung, wenn Ihr Beitrag nicht in die Highlights aufgenommen wurde. Hier gibt es viel zu tun...
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.
cluster.MeanShift(Fehlerbehebung)decomposition.IncrementalPCAin Python 2 (Fehlerbehebung)decomposition.SparsePCA(Fehlerbehebung)ensemble.GradientBoostingClassifier(Fehlerbehebung, die Feature-Importances betrifft)isotonic.IsotonicRegression(Fehlerbehebung)linear_model.ARDRegression(Fehlerbehebung)linear_model.LogisticRegressionCV(Fehlerbehebung)linear_model.OrthogonalMatchingPursuit(Fehlerbehebung)linear_model.PassiveAggressiveClassifier(Fehlerbehebung)linear_model.PassiveAggressiveRegressor(Fehlerbehebung)linear_model.Perceptron(Fehlerbehebung)linear_model.SGDClassifier(Fehlerbehebung)linear_model.SGDRegressor(Fehlerbehebung)metrics.roc_auc_score(Fehlerbehebung)metrics.roc_curve(Fehlerbehebung)neural_network.BaseMultilayerPerceptron(Fehlerbehebung)neural_network.MLPClassifier(Fehlerbehebung)neural_network.MLPRegressor(Fehlerbehebung)Die Release Notes für v0.19.0 versäumten es, eine Rückwärtsinkompatibilität mit
model_selection.StratifiedKFoldbei `shuffle=True` aufgrund von #7823 zu erwähnen.
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.)
Bekannte größere Fehler#
#11924:
linear_model.LogisticRegressionCVmitsolver='lbfgs'undmulti_class='multinomial'kann unter macOS nicht-deterministisch oder anderweitig fehlerhaft sein. Dies scheint auf Travis CI-Servern der Fall zu sein, wurde aber auf persönlichen MacBooks noch nicht bestätigt! Dieses Problem besteht bereits in früheren Versionen.#9354:
metrics.pairwise.euclidean_distances(die mehrmals in der Bibliothek verwendet wird) liefert Ergebnisse mit geringer Präzision, was ihre Verwendung mit 32-Bit-Float-Eingaben besonders beeinträchtigt. Dies wurde in den Versionen 0.18 und 0.19 problematischer, als einige Algorithmen geändert wurden, um die Umwandlung von 32-Bit-Daten in 64-Bit zu vermeiden.
Änderungsprotokoll#
Die Unterstützung für Python 3.3 wurde offiziell eingestellt.
sklearn.cluster#
Major Feature
cluster.AgglomerativeClusteringunterstützt jetzt Single-Linkage-Clustering überlinkage='single'. #9372 von Leland McInnes und Steve Astels.Feature
cluster.KMeansundcluster.MiniBatchKMeansunterstützen jetzt Stichprobengewichte über den neuen Parametersample_weightin der Funktionfit. #10933 von Johannes Hansen.Efficiency Die Laufzeit von
cluster.KMeans,cluster.MiniBatchKMeansundcluster.k_means, die mitalgorithm='full'übergeben wurden, erzwingen nun zeilenmajorartige Ordnung, was die Laufzeit verbessert. #10471 von Gaurav Dhingra.Efficiency
cluster.DBSCANwird nun gemäßn_jobsparallelisiert, unabhängig vonalgorithm. #8003 von Joël Billaud.Enhancement
cluster.KMeansgibt nun eine Warnung aus, wenn die Anzahl der gefundenen unterschiedlichen Cluster kleiner ist alsn_clusters. Dies kann vorkommen, wenn die Anzahl der unterschiedlichen Punkte im Datensatz tatsächlich kleiner ist als die Anzahl der gesuchten Cluster. #10059 von Christian Braune.Fix Ein Fehler wurde behoben, bei dem die Methode
fitvoncluster.AffinityPropagationim Falle einer Nicht-Konvergenz die Clusterzentren als 3D-Array anstelle eines 2D-Arrays speicherte. Für dieselbe Klasse wurden undefiniertes und willkürliches Verhalten bei Trainingsdaten behoben, bei denen alle Stichproben die gleiche Ähnlichkeit hatten. #9612. Von Jonatan Samoocha.Fix Ein Fehler in
cluster.spectral_clusteringwurde behoben, bei dem die Normalisierung des Spektrums eine Division anstelle einer Multiplikation verwendete. #8129 von Jan Margeta, Guillaume Lemaitre und Devansh D..Fix Ein Fehler in
cluster.k_means_elkanwurde behoben, bei dem die zurückgegebeneiterationum 1 weniger als der korrekte Wert war. Außerdem wurde das fehlende Attributn_iter_in der Dokumentation voncluster.KMeanshinzugefügt. #11353 von Jeremie du Boisberranger.Fix Ein Fehler in
cluster.mean_shiftwurde behoben, bei dem die zugewiesenen Labels nicht deterministisch waren, wenn mehrere Cluster mit den gleichen Intensitäten vorhanden waren. #11901 von Adrin Jalali.API Change Der ungenutzte Parameter
pooling_funcincluster.AgglomerativeClusteringwurde als veraltet markiert. #9875 von Kumar Ashutosh.
sklearn.compose#
Neues Modul.
Major Feature
compose.ColumnTransformerhinzugefügt, das die Anwendung verschiedener Transformer auf verschiedene Spalten von Arrays oder Pandas DataFrames ermöglicht. #9012 von Andreas Müller und Joris Van den Bossche, und #11315 von Thomas Fan.Major Feature Der
compose.TransformedTargetRegressorwurde hinzugefügt, der das Ziel y transformiert, bevor ein Regressionsmodell angepasst wird. Die Vorhersagen werden über eine inverse Transformation in den ursprünglichen Raum zurückgeführt. #9041 von Andreas Müller und Guillaume Lemaitre.
sklearn.covariance#
Efficiency Laufzeitverbesserungen für
covariance.GraphicalLasso. #9858 von Steven Brown.API Change Die Funktionen
covariance.graph_lasso,covariance.GraphLassoundcovariance.GraphLassoCVwurden incovariance.graphical_lasso,covariance.GraphicalLassoundcovariance.GraphicalLassoCVumbenannt und werden in Version 0.22 entfernt. #9993 von Artiem Krinitsyn
sklearn.datasets#
Major Feature
datasets.fetch_openmlzum Abrufen von Datensätzen von OpenML hinzugefügt. OpenML ist eine kostenlose, offene Plattform für den Datenaustausch und wird anstelle von mldata verwendet, da sie eine bessere Serviceverfügbarkeit bietet. #9908 von Andreas Müller und Jan N. van Rijn.Feature In
datasets.make_blobskann nun eine Liste an den Parametern_samplesübergeben werden, um die Anzahl der pro Cluster zu generierenden Samples anzugeben. #8617 von Maskani Filali Mohamed und Konstantinos Katrioplas.Feature Fügt das
filenameAttribut zusklearn.datasetshinzu, die eine CSV-Datei besitzen. #9101 von alex-33 und Maskani Filali Mohamed.Feature Der Parameter
return_X_ywurde zu mehreren Dataset-Loadern hinzugefügt. #10774 von Chris Catalfo.Fix Ein Fehler in
datasets.load_bostonwurde behoben, bei dem ein falscher Datenpunkt vorhanden war. #10795 von Takeshi Yoshizawa.Fix Ein Fehler in
datasets.load_iriswurde behoben, bei dem zwei falsche Datenpunkte vorhanden waren. #11082 von Sadhana Srinivasan und Hanmin Qin.Fix Ein Fehler in
datasets.fetch_kddcup99wurde behoben, bei dem die Daten nicht richtig gemischt wurden. #9731 von Nicolas Goix.Fix Ein Fehler in
datasets.make_circleswurde behoben, bei dem keine ungerade Anzahl von Datenpunkten generiert werden konnte. #10045 von Christian Braune.API Change
sklearn.datasets.fetch_mldatawird als veraltet markiert und in Version 0.22 entfernt. mldata.org ist nicht mehr betriebsbereit. Bis zur Entfernung ist es weiterhin möglich, gecachte Datensätze zu laden. #11466 von Joel Nothman.
sklearn.decomposition#
Feature
decomposition.dict_learningFunktionen und Modelle unterstützen nun Positivitätsbeschränkungen. Dies gilt für das Wörterbuch und den spärlichen Code. #6374 von John Kirkham.Feature Fix
decomposition.SparsePCAexponiert nunnormalize_components. Wenn auf True gesetzt, werden die Trainings- und Testdaten während der Fit-Phase bzw. der Transform-Phase mit dem jeweiligen Trainingsmittelwert zentriert. Dies behebt das Verhalten von SparsePCA. Wenn auf False gesetzt, was der Standard ist, bleibt das vorherige abnormale Verhalten bestehen. Der Wert False dient der Rückwärtskompatibilität und sollte nicht verwendet werden. #11585 von Ivan Panico.Efficiency Effizienzsteigerungen in
decomposition.dict_learning. #11420 und andere von John Kirkham.Fix Fehlerbehebung für nicht informative Fehlermeldungen in
decomposition.IncrementalPCA: Es wird nun ein Fehler ausgelöst, wenn die Anzahl der Komponenten größer ist als die gewählte Batch-Größe. Der Falln_components=Nonewurde entsprechend angepasst. #6452. Von Wally Gauze.Fix Ein Fehler wurde behoben, bei dem die
partial_fitMethode vondecomposition.IncrementalPCAauf Python 2 Ganzzahldivision anstelle von Fließkommadivision verwendete. #9492 von James Bourbeau.Fix In
decomposition.PCAwird nun ein Fehler ausgelöst, wenn einn_componentsParameter größer als die Anzahl der Samples gewählt wird. Ebenso wählt der Falln_components=Nonenun das Minimum ausn_samplesundn_features. #8484 von Wally Gauze.Fix Ein Fehler in
decomposition.PCAwurde behoben, bei dem Benutzer unerwartete Fehler bei großen Datensätzen mitn_components='mle'auf Python 3-Versionen erhielten. #9886 von Hanmin Qin.Fix Ein Unterlauf bei der Berechnung der KL-Divergenz für
decomposition.NMFwurde behoben. #10142 von Tom Dupre la Tour.Fix Ein Fehler in
decomposition.SparseCoderwurde behoben, wenn OMP Sparse Coding parallel mit Read-Only Memory Mapped Datenstrukturen ausgeführt wurde. #5956 von Vighnesh Birodkar und Olivier Grisel.
sklearn.discriminant_analysis#
Efficiency Verbesserung der Speichernutzung für
_class_meansund_class_covinsklearn.discriminant_analysis. #10898 von Nanxin Chen.
sklearn.dummy#
Feature
dummy.DummyRegressorverfügt nun über einereturn_stdOption in seinerpredictMethode. Die zurückgegebenen Standardabweichungen werden Null sein.Feature
dummy.DummyClassifierunddummy.DummyRegressorbenötigen nun nur noch X als Objekt mit endlicher Länge oder Form. #9832 von Vrishank Bhardwaj.Feature
dummy.DummyClassifierunddummy.DummyRegressorkönnen nun ohne Bereitstellung von Test-Samples bewertet werden. #11951 von Rüdiger Busche.
sklearn.ensemble#
Feature
ensemble.BaggingRegressorundensemble.BaggingClassifierkönnen nun mit fehlenden/nicht-endlichen Werten in X und/oder Multi-Output Y trainiert werden, um Pipelines zu unterstützen, die ihre eigene Imputation durchführen. #9707 von Jimmy Wan.Feature
ensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressorunterstützen nun Early Stopping übern_iter_no_change,validation_fractionundtol. #7071 von Raghav RVFeature Der Parameter
named_estimators_wurde inensemble.VotingClassifierhinzugefügt, um auf trainierte Estimators zuzugreifen. #9157 von Herilalaina Rakotoarison.Fix Ein Fehler wurde behoben, beim Trainieren von
ensemble.GradientBoostingClassifieroderensemble.GradientBoostingRegressormitwarm_start=True, was zuvor einen Segmentierungsfehler verursachte, da eine CSC-Matrix nicht in das vondecision_functionerwartete CSR-Format konvertiert wurde. Ähnlich werden in dem dichten Fall Fortran-geordneten Arrays in C-geordnete Arrays konvertiert. #9991 von Guillaume Lemaitre.Fix Ein Fehler in
ensemble.GradientBoostingRegressorundensemble.GradientBoostingClassifierwurde behoben, um die Feature-Wichtigkeiten zu summieren und dann zu normalisieren, anstatt pro Baum zu normalisieren. Das vorherige Verhalten übergewichtete die Gini-Wichtigkeit von Features, die in späteren Phasen auftraten. Dieses Problem betraf nur die Feature-Wichtigkeiten. #11176 von Gil Forsyth.API Change Der Standardwert des Parameters
n_estimatorsvonensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifier,ensemble.ExtraTreesRegressorundensemble.RandomTreesEmbeddingwird von 10 in Version 0.20 auf 100 in 0.22 geändert. Eine FutureWarning wird ausgelöst, wenn der Standardwert verwendet wird. #11542 von Anna Ayzenshtat.API Change Klassen, die von
ensemble.BaseBaggingabgeleitet sind. Das Attributestimators_samples_gibt eine Liste von Arrays zurück, die die für jeden Bootstrap ausgewählten Indizes enthalten, anstatt eine Liste von Arrays, die die Maske der für jeden Bootstrap ausgewählten Samples enthalten. Indizes ermöglichen die Wiederholung von Samples, während eine Maske diese Funktionalität nicht zulässt. #9524 von Guillaume Lemaitre.Fix Fehler in
ensemble.BaseBaggingwurde behoben, bei dem dasfitErgebnis mit gesetztemrandom_statenicht deterministisch reproduziert werden konnte. #9723 von Guillaume Lemaitre.
sklearn.feature_extraction#
Feature Ermöglicht den Aufruf von
get_feature_namesin nicht trainiertenfeature_extraction.text.CountVectorizer, die mit einem Vokabular initialisiert wurden. #10908 von Mohamed Maskani.Enhancement
idf_kann nun auf einemfeature_extraction.text.TfidfTransformergesetzt werden. #10899 von Sergey Melderis.Fix Ein Fehler in
feature_extraction.image.extract_patches_2dwurde behoben, der eine Ausnahme auslöste, wennmax_patchesgrößer oder gleich der Anzahl aller möglichen Patches war, anstatt einfach die Anzahl der möglichen Patches zurückzugeben. #10101 von Varun AgrawalFix Ein Fehler in
feature_extraction.text.CountVectorizer,feature_extraction.text.TfidfVectorizer,feature_extraction.text.HashingVectorizerwurde behoben, um die 64-Bit-Indizierung spärlicher Arrays zu unterstützen, die für die Verarbeitung großer Datensätze mit mehr als 2·10⁹ Token (Wörter oder n-Gramme) erforderlich ist. #9147 von Claes-Fredrik Mannby und Roman Yurchak.Fix Ein Fehler in
feature_extraction.text.TfidfVectorizerwurde behoben, der den Parameterdtypeignorierte. Zusätzlich wirdfeature_extraction.text.TfidfTransformerdtypefür Gleitkommazahlen beibehalten und eine Warnung ausgeben, wenndtypeals Ganzzahl angefordert wird. #10441 von Mayur Kulkarni und Guillaume Lemaitre.
sklearn.feature_selection#
Feature Funktionalität zur Auswahl der K besten Features wurde zu
feature_selection.SelectFromModelhinzugefügt. #6689 von Nihar Sheth und Quazi Rahman.Feature Der Parameter
min_features_to_selectwurde zufeature_selection.RFECVhinzugefügt, um die Anzahl der bewerteten Features zu begrenzen. #11293 von Brent Yi.Feature Die
fitMethode vonfeature_selection.RFECVunterstützt nun Gruppen. #9656 von Adam Greenhall.Fix Die Berechnung von
n_features_to_computefür einen Randfall mit gleichstand bei CV-Scores infeature_selection.RFECVwurde behoben. #9222 von Nick Hoh.
sklearn.gaussian_process#
Efficiency In
gaussian_process.GaussianProcessRegressorist die Methodepredictschneller, wennreturn_std=Trueverwendet wird, insbesondere wenn sie mehrmals hintereinander aufgerufen wird. #9234 von andrewww und Minghui Liu.
sklearn.impute#
Neues Modul, das
preprocessing.Imputeralsimpute.SimpleImputermit geringfügigen Änderungen (siehe auch unter Preprocessing) übernimmt.Major Feature
impute.MissingIndicatorwurde hinzugefügt, das einen binären Indikator für fehlende Werte generiert. #8075 von Maniteja Nandana und Guillaume Lemaitre.Feature
impute.SimpleImputerverfügt über eine neue Strategie,'constant', um fehlende Werte durch einen festen Wert zu ergänzen, der durch den Parameterfill_valueangegeben wird. Diese Strategie unterstützt numerische und nicht-numerische Daten, ebenso wie jetzt die Strategie'most_frequent'. #11211 von Jeremie du Boisberranger.
sklearn.isotonic#
Fix Ein Fehler in
isotonic.IsotonicRegressionwurde behoben, bei dem Gewichte bei der Anpassung eines Modells an Daten mit Punkten mit identischen X-Werten falsch kombiniert wurden. #9484 von Dallas Card
sklearn.linear_model#
Feature
linear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressorundlinear_model.Perceptronexponieren nun die Parameterearly_stopping,validation_fractionundn_iter_no_change, um die Optimierung durch Überwachung des Scores auf einem Validierungsset zu stoppen. Eine neue Lernratenstrategie"adaptive"teilt die Lernrate bei jedemn_iter_no_changeaufeinanderfolgenden Epochen, die das Modell nicht verbessern, durch 5. #9043 von Tom Dupre la Tour.Feature Fügt den Parameter
sample_weightzur `fit`-Methode vonlinear_model.BayesianRidgefür gewichtete lineare Regression hinzu. #10112 von Peter St. John.Fix Ein Fehler in
logistic.logistic_regression_pathwurde behoben, um sicherzustellen, dass die zurückgegebenen Koeffizienten korrekt sind, wennmulticlass='multinomial'gesetzt ist. Zuvor würden sich einige der Koeffizienten gegenseitig überschreiben, was zu falschen Ergebnissen inlinear_model.LogisticRegressionCVführte. #11724 von Nicolas Hug.Fix Ein Fehler in
linear_model.LogisticRegressionwurde behoben, bei dem die Methodepredict_probafalsche Wahrscheinlichkeiten für binäre Ergebnisse zurückgab, wenn der Parametermulti_class='multinomial'verwendet wurde. #9939 von Roger Westover.Fix Ein Fehler in
linear_model.LogisticRegressionCVwurde behoben, bei dem die Methodescoreimmer die Genauigkeit (accuracy) berechnete und nicht die Metrik, die durch den Parameterscoringangegeben wurde. #10998 von Thomas Fan.Fix Ein Fehler in
linear_model.LogisticRegressionCVwurde behoben, bei dem die Strategie 'ovr' immer zur Berechnung der Kreuzvalidierungs-Scores im Multiklassen-Setting verwendet wurde, auch wenn'multinomial'gesetzt war. #8720 von William de Vazelhes.Fix Ein Fehler in
linear_model.OrthogonalMatchingPursuitwurde behoben, der auftrat, wennnormalize=Falsegesetzt war. #10071 von Alexandre Gramfort.Fix Ein Fehler in
linear_model.ARDRegressionwurde behoben, der zu falsch aktualisierten Schätzungen für die Standardabweichung und die Koeffizienten führte. #10153 von Jörg Döpfert.Fix Ein Fehler in
linear_model.ARDRegressionundlinear_model.BayesianRidgewurde behoben, der NaN-Vorhersagen verursachte, wenn sie mit einem konstanten Ziel angepasst wurden. #10095 von Jörg Döpfert.Fix Ein Fehler in
linear_model.RidgeClassifierCVwurde behoben, bei dem der Parameterstore_cv_valuesnicht implementiert war, obwohl er incv_valuesals Möglichkeit zur Speicherung von Kreuzvalidierungswerten für verschiedene Alphas dokumentiert war. #10297 von Mabel Villalba-Jiménez.Fix Ein Fehler in
linear_model.ElasticNetwurde behoben, der dazu führte, dass die Eingabe überschrieben wurde, wenn die Parametercopy_X=Trueundcheck_input=Falseverwendet wurden. #10581 von Yacine Mazari.Fix Ein Fehler in
sklearn.linear_model.Lassowurde behoben, bei dem der Koeffizient die falsche Form hatte, wennfit_intercept=Falsegesetzt war. #10687 von Martin Hahn.Fix Ein Fehler in
sklearn.linear_model.LogisticRegressionwurde behoben, bei demmulti_class='multinomial'mit binärer Ausgabewith warm_start=Truezu Problemen führte. #10836 von Aishwarya Srinivasan.Fix Ein Fehler in
linear_model.RidgeCVwurde behoben, bei dem die Verwendung von ganzzahligenalphaseinen Fehler auslöste. #10397 von Mabel Villalba-Jiménez.Fix Die Bedingung, die die Lückenberechnung in
linear_model.Lassoundlinear_model.ElasticNetauslöste, wurde behoben, wenn mit sparsen Matrizen gearbeitet wurde. #10992 von Alexandre Gramfort.Fix Ein Fehler in
linear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressorundlinear_model.Perceptronwurde behoben, bei dem das Abbruchkriterium den Algorithmus vor der Konvergenz stoppte. Ein Parametern_iter_no_changewurde hinzugefügt und standardmäßig auf 5 gesetzt. Das frühere Verhalten entspricht dem Setzen des Parameters auf 1. #9043 von Tom Dupre la Tour.Fix Ein Fehler, bei dem liblinear- und libsvm-basierte Schätzer abstürzten, wenn ihnen eine scipy.sparse Matrix mit 64-Bit-Indizes übergeben wurde, wurde behoben. Sie lösen nun einen ValueError aus. #11327 von Karan Dhingra und Joel Nothman.
API Change Die Standardwerte der Parameter
solverundmulti_classvonlinear_model.LogisticRegressionändern sich von'liblinear'und'ovr'in Version 0.20 zu'lbfgs'und'auto'in Version 0.22. Eine FutureWarning wird ausgegeben, wenn die Standardwerte verwendet werden. #11905 von Tom Dupre la Tour und Joel Nothman.API Change Die Option
positive=Trueinlinear_model.Larswird veraltet erklärt, da die zugrunde liegende Implementierung fehlerhaft ist. Verwenden Sie stattdessenlinear_model.Lasso. #9837 von Alexandre Gramfort.API Change
n_iter_kann sich von früheren Releases inlinear_model.LogisticRegressionmitsolver='lbfgs'undlinear_model.HuberRegressorunterscheiden. Für Scipy <= 1.0.0 konnte der Optimierer mehr als die angegebene maximale Anzahl von Iterationen durchführen. Nun melden beide Schätzer höchstensmax_iterIterationen, auch wenn mehr durchgeführt wurden. #10723 von Joel Nothman.
sklearn.manifold#
Efficiency Geschwindigkeitsverbesserungen für die Methoden 'exact' und 'barnes_hut' in
manifold.TSNE. #10593 und #10610 von Tom Dupre la Tour.Feature Unterstützung für sparse Eingaben in
manifold.Isomap.fithinzugefügt. #8554 von Leland McInnes.Feature
manifold.t_sne.trustworthinessakzeptiert andere Metriken als euklidische. #9775 von William de Vazelhes.Fix Ein Fehler in
manifold.spectral_embeddingwurde behoben, bei dem die Normalisierung des Spektrums eine Division anstelle einer Multiplikation verwendete. #8129 von Jan Margeta, Guillaume Lemaitre und Devansh D..API Change Feature Der Parameter
precomputedin der Funktionmanifold.t_sne.trustworthinesswird veraltet erklärt. Stattdessen sollte der neue Parametermetricmit jeder kompatiblen Metrik, einschließlich 'precomputed', verwendet werden. In diesem Fall sollte die EingabematrixXeine Matrix von paarweisen Abständen oder quadrierten Abständen sein. #9775 von William de Vazelhes.API Change Der Parameter
precomputedin der Funktionmanifold.t_sne.trustworthinesswird veraltet erklärt. Stattdessen sollte der neue Parametermetricmit jeder kompatiblen Metrik, einschließlich 'precomputed', verwendet werden. In diesem Fall sollte die EingabematrixXeine Matrix von paarweisen Abständen oder quadrierten Abständen sein. #9775 von William de Vazelhes.
sklearn.metrics#
Major Feature Die Metrik
metrics.davies_bouldin_scorezur Bewertung von Clustering-Modellen ohne Ground Truth wurde hinzugefügt. #10827 von Luis Osa.Major Feature Die Metrik
metrics.balanced_accuracy_scoreund ein entsprechender'balanced_accuracy'-Scorer für binäre und multiklassige Klassifizierung wurden hinzugefügt. #8066 von @xyguo und Aman Dalmia, und #10587 von Joel Nothman.Feature Partielle AUC ist über den Parameter
max_fprinmetrics.roc_auc_scoreverfügbar. #3840 von Alexander Niederbühl.Feature Ein Scorer basierend auf
metrics.brier_score_lossist ebenfalls verfügbar. #9521 von Hanmin Qin.Feature Steuerung der Normalisierung in
metrics.normalized_mutual_info_scoreundmetrics.adjusted_mutual_info_scoreüber den Parameteraverage_methodhinzugefügt. In Version 0.22 wird der Standardnormalisierer für jeden die *arithmetische* Mittelung der Entropien jedes Clusterings sein. #11124 von Arya McCarthy.Feature Der Parameter
output_dictinmetrics.classification_reportwurde hinzugefügt, um Klassifizierungsstatistiken als Wörterbuch zurückzugeben. #11160 von Dan Barkhorn.Feature
metrics.classification_reportmeldet nun alle anwendbaren Mittelwerte für die gegebenen Daten, einschließlich Mikro-, Makro- und gewichteter Mittelwert sowie Stichprobenmittelwert für Multilabel-Daten. #11679 von Alexander Pacha.Feature
metrics.average_precision_scoreunterstützt nun binäresy_trueaußer{0, 1}oder{-1, 1}über den Parameterpos_label. #9980 von Hanmin Qin.Feature
metrics.label_ranking_average_precision_scoreunterstützt nunsample_weight. #10845 von Jose Perez-Parras Toledano.Feature Der Parameter
dense_outputwurde zumetrics.pairwise.linear_kernelhinzugefügt. Wenn er auf False gesetzt ist und beide Eingaben sparse sind, wird eine sparse Matrix zurückgegeben. #10999 von Taylor G Smith.Efficiency
metrics.silhouette_scoreundmetrics.silhouette_samplessind speichereffizienter und laufen schneller. Dies vermeidet einige gemeldete Abstürze und MemoryErrors. #11135 von Joel Nothman.Fix Ein Fehler in
metrics.precision_recall_fscore_supportwurde behoben, wenn ein abgeschnittenesrange(n_labels)als Wert fürlabelsübergeben wurde. #10377 von Gaurav Dhingra.Fix Ein Fehler aufgrund von Fließkommafehlern in
metrics.roc_auc_scoremit nicht-ganzzahligen Stichprobengewichten wurde behoben. #9786 von Hanmin Qin.Fix Ein Fehler wurde behoben, bei dem
metrics.roc_curvemanchmal auf der y-Achse statt bei (0, 0) begann, was inkonsistent mit der Dokumentation und anderen Implementierungen war. Beachten Sie, dass dies das Ergebnis vonmetrics.roc_auc_scorenicht beeinflusst. #10093 von alexryndin und Hanmin Qin.Fix Ein Fehler wurde behoben, um Überläufe bei ganzen Zahlen zu vermeiden. Das Produkt wurde in
metrics.mutual_info_scorein einen 64-Bit-Integer umgewandelt. #9772 von Kumar Ashutosh.Fix Ein Fehler wurde behoben, bei dem
metrics.average_precision_scoremanchmalnanzurückgab, wennsample_weight0 enthielt. #9980 von Hanmin Qin.Fix Ein Fehler in
metrics.fowlkes_mallows_scorewurde behoben, um Integer-Überlauf zu vermeiden. Der Rückgabewert voncontingency_matrixwurde inint64umgewandelt und das Produkt der Quadratwurzeln anstelle der Quadratwurzel des Produkts berechnet. #9515 von Alan Liddell und Manh Dao.API Change Der Parameter
reorderinmetrics.aucwird veraltet erklärt, da er fürmetrics.roc_auc_scorenicht mehr benötigt wird. Darüber hinaus kann die Verwendung vonreorder=TrueFehler aufgrund von Fließkommafehlern in der Eingabe maskieren. #9851 von Hanmin Qin.API Change In
metrics.normalized_mutual_info_scoreundmetrics.adjusted_mutual_info_scorewird gewarnt, dassaverage_methodeinen neuen Standardwert haben wird. In Version 0.22 wird der Standardnormalisierer für jeden die *arithmetische* Mittelung der Entropien jedes Clusterings sein. Derzeit verwendetmetrics.normalized_mutual_info_scoreden Standardwertaverage_method='geometric', undmetrics.adjusted_mutual_info_scoreverwendet den Standardwertaverage_method='max', um ihr Verhalten in Version 0.19 beizubehalten. #11124 von Arya McCarthy.API Change Der Parameter
batch_sizefürmetrics.pairwise_distances_argmin_minundmetrics.pairwise_distances_argminwird veraltet erklärt und in v0.22 entfernt. Er hat keine Auswirkung mehr, da die Batch-Größe durch die globale Konfigurationworking_memorybestimmt wird. Siehe Begrenzung des Arbeitsspeichers. #10280 von Joel Nothman und Aman Dalmia.
sklearn.mixture#
Feature Die Funktion fit_predict wurde zu
mixture.GaussianMixtureundmixture.GaussianMixturehinzugefügt, die im Wesentlichen äquivalent zur Ausführung von fit und predict ist. #10336 von Shu Haoran und Andrew Peng.Fix Ein Fehler in
mixture.BaseMixturewurde behoben, bei dem die gemeldeten_iter_eine Iteration fehlte. Dies betrafmixture.GaussianMixtureundmixture.BayesianGaussianMixture. #10740 von Erich Schubert und Guillaume Lemaitre.Fix Ein Fehler in
mixture.BaseMixtureund seinen Unterklassenmixture.GaussianMixtureundmixture.BayesianGaussianMixturewurde behoben, bei demlower_bound_nicht die maximale untere Grenze über alle Initialisierungen hinweg war (wennn_init > 1), sondern nur die untere Grenze der letzten Initialisierung. #10869 von Aurélien Géron.
sklearn.model_selection#
Feature Fügt den Parameter
return_estimatorzumodel_selection.cross_validatehinzu, um die auf jeder Aufteilung angepassten Schätzer zurückzugeben. #9686 von Aurélien Bellet.Feature Ein neues Attribut
refit_time_wird inmodel_selection.GridSearchCVundmodel_selection.RandomizedSearchCVgespeichert, wennrefitaufTruegesetzt ist. Dies ermöglicht die Messung der vollständigen Zeit, die für die Hyperparameteroptimierung und das erneute Anpassen des besten Modells an den gesamten Datensatz benötigt wird. #11310 von Matthias Feurer.Feature Der Parameter
error_scorewird inmodel_selection.cross_validate,model_selection.cross_val_score,model_selection.learning_curveundmodel_selection.validation_curvefreigegeben, um das Verhalten zu steuern, das ausgelöst wird, wenn ein Fehler inmodel_selection._fit_and_scoreauftritt. #11576 von Samuel O. Ronsin.Feature
BaseSearchCVhat jetzt eine experimentelle, private Schnittstelle zur Unterstützung angepasster Parameter-Suchstrategien über seine Methode_run_search. Sehen Sie sich die Implementierungen inmodel_selection.GridSearchCVundmodel_selection.RandomizedSearchCVan und geben Sie Feedback, wenn Sie diese verwenden. Beachten Sie, dass wir die Stabilität dieser API über Version 0.20 hinaus nicht garantieren. #9599 von Joel NothmanEnhancement Verbesserte Fehlermeldung in
model_selection.cross_val_scorehinzugefügt, wenn mehrere Metriken im Schlüsselwortscoringübergeben werden. #11006 von Ming Li.API Change Die Standardanzahl der Kreuzvalidierungs-Folds
cvund die Standardanzahl der Splitsn_splitsin denmodel_selection.KFold-ähnlichen Splittern ändern sich von 3 auf 5 ab Version 0.22, da 3-Folds eine hohe Varianz aufweisen. #11557 von Alexandre Boucaud.API Change Der Standardwert des Parameters
iidvonmodel_selection.GridSearchCVundmodel_selection.RandomizedSearchCVändert sich vonTrueaufFalsein Version 0.22, um der Standarddefinition der Kreuzvalidierung zu entsprechen, und der Parameter wird in Version 0.24 ganz entfernt. Dieser Parameter ist von größter praktischer Bedeutung, wenn die Größen unterschiedlicher Testmengen bei der Kreuzvalidierung sehr ungleich waren, d. h. bei gruppenbasierten CV-Strategien. #9085 von Laurent Direr und Andreas Müller.API Change Der Standardwert des Parameters
error_scoreinmodel_selection.GridSearchCVundmodel_selection.RandomizedSearchCVändert sich in Version 0.22 zunp.NaN. #10677 von Kirill Zhdanovich.API Change Der von
model_selection.ParameterSamplerausgelöste ValueError wird für den Fall, dass die Klasse mit einem größeren Wert fürn_iterals der Gesamtraum der Parameter im Parametergitter instanziiert wird, in eine UserWarning geändert.n_iterfungiert nun als Obergrenze für die Iterationen. #10982 von Juliet LawtonAPI Change Ungültige Eingaben für
model_selection.ParameterGridlösen nun einen TypeError aus. #10928 von Solutus Immensus
sklearn.multioutput#
Major Feature
multioutput.RegressorChainfür die Multi-Target-Regression hinzugefügt. #9257 von Kumar Ashutosh.
sklearn.naive_bayes#
Major Feature
naive_bayes.ComplementNBhinzugefügt, der den Complement Naive Bayes-Klassifikator implementiert, der in Rennie et al. (2003) beschrieben wird. #8190 von Michael A. Alcorn.Feature Fügt den Parameter
var_smoothingzunaive_bayes.GaussianNBhinzu, um eine präzise Kontrolle über die Berechnung von Varianzen zu ermöglichen. #9681 von Dmitry Mottl.Fix Ein Fehler in
naive_bayes.GaussianNBbehoben, der fälschlicherweise einen Fehler auslöste, wenn eine Prior-Liste mit einer Summe von 1 übergeben wurde. #10005 von Gaurav Dhingra.Fix Ein Fehler in
naive_bayes.MultinomialNBbehoben, der vektorielle Pseudozählungen (alpha) nicht akzeptierte. #10346 von Tobias Madsen
sklearn.neighbors#
Efficiency
neighbors.RadiusNeighborsRegressorundneighbors.RadiusNeighborsClassifierwerden nun unabhängig vonalgorithmparallelisiert gemäßn_jobs. #10887 von Joël Billaud.Efficiency Query-Methoden von
sklearn.neighborssind nun speichereffizienter, wennalgorithm='brute'ist. #11136 von Joel Nothman und Aman Dalmia.Feature Fügt den Parameter
sample_weightzur fit-Methode vonneighbors.KernelDensityhinzu, um Gewichtungen bei der Kerndichteschätzung zu ermöglichen. #4394 von Samuel O. Ronsin.Feature Neuerungserkennung mit
neighbors.LocalOutlierFactor: Fügt einen Parameternoveltyzuneighbors.LocalOutlierFactorhinzu. Wennnoveltyauf True gesetzt ist, kannneighbors.LocalOutlierFactorzur Neuerungserkennung verwendet werden, d. h. zur Vorhersage auf neuen, ungesehenen Daten. Verfügbare Vorhersagemethoden sindpredict,decision_functionundscore_samples. Standardmäßig istnoveltyaufFalsegesetzt, und nur die Methodefit_predictist verfügbar. Von Albert Thomas.Fix Ein Fehler in
neighbors.NearestNeighborsbehoben, bei dem das Anpassen eines NearestNeighbors-Modells fehlschlug, wenn a) die verwendete Distanzmetrik aufrufbar war und b) die Eingabe für das NearestNeighbors-Modell dünn war. #9579 von Thomas Kober.Fix Ein Fehler behoben, so dass
predictinneighbors.RadiusNeighborsRegressoreinen leeren Nachbarschaftssatz bei Verwendung nicht-uniformer Gewichte handhaben kann. Löst auch eine neue Warnung aus, wenn keine Nachbarn für Stichproben gefunden werden. #9655 von Andreas Bjerre-Nielsen.Fix Efficiency Ein Fehler bei der Konstruktion von
KDTreebehoben, der zu schnelleren Konstruktions- und Abfragezeiten führt. #11556 von Jake VanderPlasFix Ein Fehler in
neighbors.KDTreeundneighbors.BallTreebehoben, bei dem gepickelte Baumobjekte ihren Typ in die OberklasseBinaryTreeänderten. #11774 von Nicolas Hug.
sklearn.neural_network#
Feature Fügt den Parameter
n_iter_no_changezuneural_network.BaseMultilayerPerceptron,neural_network.MLPRegressorundneural_network.MLPClassifierhinzu, um die Kontrolle über die maximale Anzahl von Epochen zu ermöglichen, bei denen dietol-Verbesserung nicht erreicht wird. #9456 von Nicholas Nadeau.Fix Ein Fehler in
neural_network.BaseMultilayerPerceptron,neural_network.MLPRegressorundneural_network.MLPClassifiermit dem neuen Parametern_iter_no_changebehoben, der nun auf 10 anstatt der zuvor fest kodierten 2 gesetzt ist. #9456 von Nicholas Nadeau.Fix Ein Fehler in
neural_network.MLPRegressorbehoben, bei dem das Anpassen aufgrund lokaler Minima oder Schwankungen unerwartet früh abbrach. #9456 von Nicholas Nadeau
sklearn.pipeline#
Feature Die Methode
predictvonpipeline.Pipelineleitet nun Schlüsselwortargumente an den letzten Schätzer der Pipeline weiter, was die Verwendung von Parametern wiereturn_stdin einer Pipeline mit Vorsicht ermöglicht. #9304 von Breno Freitas.API Change
pipeline.FeatureUnionunterstützt nun'drop'als Transformer zum Verwerfen von Merkmalen. #11144 von Thomas Fan.
sklearn.preprocessing#
Major Feature
preprocessing.OneHotEncoderwurde erweitert, um kategoriale String-Merkmale als numerisches Array mittels eines One-Hot- (oder Dummy-) Kodierungsschemas zu kodieren, undpreprocessing.OrdinalEncoderwurde hinzugefügt, um in ordinale Ganzzahlen zu konvertieren. Diese beiden Klassen behandeln nun die Kodierung aller Merkmalstypen (behandeln auch String-Merkmale) und leiten die Kategorien von den eindeutigen Werten in den Merkmalen statt vom Maximalwert in den Merkmalen ab. #9151 und #10521 von Vighnesh Birodkar und Joris Van den Bossche.Major Feature
preprocessing.KBinsDiscretizerwurde hinzugefügt, um kontinuierliche Merkmale in kategoriale oder One-Hot-kodierte Merkmale umzuwandeln. #7668, #9647, #10195, #10192, #11272, #11467 und #11505. Von Henry Lin, Hanmin Qin, Tom Dupre la Tour und Giovanni Giuseppe Costa.Major Feature
preprocessing.PowerTransformerwurde hinzugefügt, die die Yeo-Johnson- und Box-Cox-Transformationen implementiert. Power-Transformationen versuchen, eine Menge von merkmalweisen parametrischen Transformationen zu finden, um Daten annähernd auf eine Gaußsche Verteilung mit Mittelwert Null und Einheitsvarianz abzubilden. Dies ist nützlich als varianzstabilisierende Transformation in Situationen, in denen Normalität und Homoskedastizität erwünscht sind. #10210 von Eric Chang und Maniteja Nandana, und #11520 von Nicolas Hug.Major Feature NaN-Werte werden in den folgenden Vorverarbeitungsmethoden ignoriert und behandelt:
preprocessing.MaxAbsScaler,preprocessing.MinMaxScaler,preprocessing.RobustScaler,preprocessing.StandardScaler,preprocessing.PowerTransformer,preprocessing.QuantileTransformerKlassen und die Funktionenpreprocessing.maxabs_scale,preprocessing.minmax_scale,preprocessing.robust_scale,preprocessing.scale,preprocessing.power_transform,preprocessing.quantile_transform, adressiert in den Issues #11011, #11005, #11308, #11206, #11306 und #10437. Von Lucija Gregov und Guillaume Lemaitre.Feature
preprocessing.PolynomialFeaturesunterstützt nun dünne Eingaben. #10452 von Aman Dalmia und Joel Nothman.Feature
preprocessing.RobustScalerundpreprocessing.robust_scalekönnen mit dünnen Matrizen angepasst werden. #11308 von Guillaume Lemaitre.Feature
preprocessing.OneHotEncoderunterstützt nun die Methodeget_feature_names, um die transformierten Merkmalnamen zu erhalten. #10181 von Nirvan Anjirbag und Joris Van den Bossche.Feature Ein Parameter
check_inversewurde zupreprocessing.FunctionTransformerhinzugefügt, um sicherzustellen, dassfuncundinverse_funcinverse voneinander sind. #9399 von Guillaume Lemaitre.Feature Die Methode
transformvonsklearn.preprocessing.MultiLabelBinarizerignoriert nun unbekannte Klassen. Es wird eine Warnung ausgegeben, die besagt, welche unbekannten Klassen gefunden und ignoriert wurden. #10913 von Rodrigo Agundez.Fix Fehler in
preprocessing.LabelEncoderbehoben, die manchmal Fehler auslösten, wenntransformoderinverse_transformmit leeren Arrays aufgerufen wurden. #10458 von Mayur Kulkarni.Fix ValueError in
preprocessing.LabelEncoderbehoben, wenninverse_transformauf nicht gesehene Labels angewendet wird. #9816 von Charlie Newey.Fix Fehler in
preprocessing.OneHotEncoderbehoben, der dendtypebei der Rückgabe einer dünnen Matrix verwarf. #11042 von Daniel Morales.Fix Fehler bei
fitundpartial_fitinpreprocessing.StandardScalerbehoben für den seltenen Fall, dasswith_mean=Falseundwith_std=Falsewar, was durch mehrmaliges Aufrufen vonfitund inkonsistente Ergebnisse fürmean_, abhängig davon, ob die Eingabe eine dünne oder eine dichte Matrix war, zum Absturz führte.mean_wird für beide Eingabetypen aufNonegesetzt.n_samples_seen_wird ebenfalls für beide Eingabetypen berichtet. #11235 von Guillaume Lemaitre.API Change Die Parameter
n_valuesundcategorical_featuressowie die Attributeactive_features_,feature_indices_undn_values_vonpreprocessing.OneHotEncoderwerden als veraltet markiert. Der Parametern_valueskann durch den neuen Parametercategoriesersetzt werden, und die Attribute durch das neue Attributcategories_. Die Auswahl kategorialer Merkmale mit dem Parametercategorical_featureswird nun besser durchcompose.ColumnTransformerunterstützt. #10521 von Joris Van den Bossche.API Change
preprocessing.Imputerwird als veraltet markiert und das entsprechende Modul wird zuimpute.SimpleImputerverschoben. #9726 von Kumar Ashutosh.API-Änderung Der
axis-Parameter, der inpreprocessing.Imputervorhanden war, ist inimpute.SimpleImputernicht mehr vorhanden. Das Verhalten entsprichtaxis=0(Imputation entlang der Spalten). Zeilenweise Imputation kann mit FunctionTransformer durchgeführt werden (z. B.FunctionTransformer(lambda X: SimpleImputer().fit_transform(X.T).T)). #10829 von Guillaume Lemaitre und Gilberto Olimpio.API-Änderung Das NaN-Marker für fehlende Werte wurde zwischen
preprocessing.Imputerundimpute.SimpleImputergeändert.missing_values='NaN'sollte jetztmissing_values=np.nansein. #11211 von Jeremie du Boisberranger.API-Änderung In
preprocessing.FunctionTransformerwird der Standardwert vonvalidatevonTrueaufFalsein Version 0.22 geändert. #10655 von Guillaume Lemaitre.
sklearn.svm#
Korrektur Ein Fehler in
svm.SVCwurde behoben, bei dem der Parameterkernelin Python2 unicode war und die Methodepredict_probabei dichten Eingaben einen unerwarteten TypeError auslöste. #10412 von Jiongyan Zhang.API-Änderung Der Parameter
random_stateinsvm.OneClassSVMwird als veraltet markiert, da die zugrunde liegende Implementierung nicht zufällig ist. #9497 von Albert Thomas.API-Änderung Der Standardwert des Parameters
gammavonsvm.SVC,NuSVC,SVR,NuSVR,OneClassSVMändert sich von'auto'zu'scale'in Version 0.22, um unskalierte Merkmale besser zu berücksichtigen. #8361 von Gaurav Dhingra und Ting Neo.
sklearn.tree#
Verbesserung Obwohl privat (und daher keine garantierte API-Stabilität), können
tree._criterion.ClassificationCriterionundtree._criterion.RegressionCriterionjetzt cimportiert und erweitert werden. #10325 von Camil Staps.Korrektur Ein Fehler in
tree.BaseDecisionTreemitsplitter="best"wurde behoben, bei dem der Aufteilungsschwellenwert unendlich werden konnte, wenn die Werte in X unendlich nahe waren. #10536 von Jonathan Ohayon.Korrektur Ein Fehler in
tree.MAEwurde behoben, um sicherzustellen, dass die Stichprobengewichte bei der Berechnung der Baum-MAE-Unreinheit verwendet werden. Das bisherige Verhalten hätte zu suboptimalen Aufteilungen führen können, da die Unreinheitsberechnung allen Stichproben gleiche Gewichtung zugrunde legte. #11464 von John Stott.
sklearn.utils#
Funktion
utils.check_arrayundutils.check_X_yhaben jetztaccept_large_sparse, um zu steuern, ob scipy.sparse Matrizen mit 64-Bit-Indizes abgelehnt werden sollen. #11327 von Karan Dhingra und Joel Nothman.Effizienz Korrektur Vermeidet das Kopieren von Daten in
utils.check_array, wenn die Eingabedaten ein Memmap sind (undcopy=False). #10663 von Arthur Mensch und Loïc Estève.API-Änderung
utils.check_arraygibt eineFutureWarningaus, die darauf hinweist, dass Arrays aus Bytes/Strings ab Version 0.22 als Dezimalzahlen interpretiert werden. #10229 von Ryan Lee
Mehrere Module#
Funktion API-Änderung Konsistentere Outlier-Erkennungs-API: Hinzufügen einer
score_samples-Methode insvm.OneClassSVM,ensemble.IsolationForest,neighbors.LocalOutlierFactor,covariance.EllipticEnvelope. Sie ermöglicht den Zugriff auf Roh-Score-Funktionen aus Originalarbeiten. Ein neuer Parameteroffset_ermöglicht die Verknüpfung der Methodenscore_samplesunddecision_function. Der Parametercontaminationder Methodendecision_functionvonensemble.IsolationForestundneighbors.LocalOutlierFactorwird verwendet, um diesenoffset_festzulegen, so dass Ausreißer (bzw. Inlier) negative (bzw. positive)decision_function-Werte haben. Standardmäßig bleibtcontaminationfür eine Übergangsfrist unverändert bei 0.1. In Version 0.22 wird er auf „auto“ gesetzt, wodurch methodenspezifische Score-Offsets verwendet werden. In der Methodedecision_functionvoncovariance.EllipticEnvelopeist der Parameterraw_valuesveraltet, da die verschobene Mahalanobis-Distanz ab Version 0.22 immer zurückgegeben wird. #9015 von Nicolas Goix.Funktion API-Änderung Ein Parameter
behaviourwurde inensemble.IsolationForesteingeführt, um die Abwärtskompatibilität zu gewährleisten. Im alten Verhalten ist diedecision_functionunabhängig vom Parametercontamination. Ein Schwellenwertattribut, das vom Parametercontaminationabhängt, wird daher verwendet. Im neuen Verhalten hängt diedecision_functionvom Parametercontaminationab, sodass 0 ihr natürlicher Schwellenwert für die Erkennung von Ausreißern wird. Das Setzen des Verhaltens auf „old“ ist veraltet und wird in Version 0.22 nicht mehr möglich sein. Außerdem wird der Verhalten-Parameter in Version 0.24 entfernt. #11553 von Nicolas Goix.API-Änderung Eine Konvergenzwarnung wurde zu
svm.LinearSVCundlinear_model.LogisticRegressionhinzugefügt, wennverboseauf 0 gesetzt ist. #10881 von Alexandre Sevin.API-Änderung Der Warnungstyp wurde von
UserWarningzuexceptions.ConvergenceWarningfür fehlgeschlagene Konvergenz inlinear_model.logistic_regression_path,linear_model.RANSACRegressor,linear_model.ridge_regression,gaussian_process.GaussianProcessRegressor,gaussian_process.GaussianProcessClassifier,decomposition.fastica,cross_decomposition.PLSCanonical,cluster.AffinityPropagationundcluster.Birchgeändert. #10306 von Jonathan Siebert.
Verschiedenes#
Hauptfunktion Ein neuer Konfigurationsparameter,
working_memory, wurde hinzugefügt, um die Grenzen des Speicherverbrauchs bei gechunkten Operationen zu steuern, wie z. B. bei der neuen Funktionmetrics.pairwise_distances_chunked. Siehe Begrenzung des Arbeitsspeichers. #10280 von Joel Nothman und Aman Dalmia.Funktion Die Version von
joblib, die mit Scikit-learn gebündelt ist, ist nun 0.12. Diese verwendet eine neue Standard-Multiprocessing-Implementierung namens loky. Obwohl dies zu einem gewissen Overhead für Speicher und Kommunikation führen kann, sollte sie eine größere plattformübergreifende Stabilität als die Standardbibliothek von Python für Multiprocessing bieten. #11741 von den Joblib-Entwicklern, insbesondere Thomas Moreau und Olivier Grisel.Funktion Eine Umgebungsvariable zur Verwendung von systemeigenem Joblib anstelle des eingebetteten wurde hinzugefügt (siehe Umgebungsvariablen). Die Haupt-API von Joblib wird nun in
sklearn.utilsverfügbar gemacht. #11166 von Gael Varoquaux.Funktion Nahezu vollständige PyPy 3-Unterstützung hinzugefügt. Bekannte nicht unterstützte Funktionalitäten sind
datasets.load_svmlight_file,feature_extraction.FeatureHasherundfeature_extraction.text.HashingVectorizer. Für die Ausführung unter PyPy sind PyPy3-v5.10+, Numpy 1.14.0+ und Scipy 1.1.0+ erforderlich. #11010 von Ronan Lamy und Roman Yurchak.Funktion Eine Hilfsmethode
sklearn.show_versionswurde hinzugefügt, um zur Fehlersuche relevante Informationen auszugeben. Sie enthält Informationen über das Benutzersystem, die Python-Ausführungsumgebung, die Version der Hauptbibliotheken und BLAS-Bindungsinformationen. #11596 von Alexandre BoucaudKorrektur Ein Fehler wurde behoben, der beim Setzen von Parametern auf einem Meta-Estimator auftrat, der sowohl einen gewrappten Estimator als auch dessen Parameter betraf. #9999 von Marcus Voss und Joel Nothman.
Korrektur Ein Fehler wurde behoben, bei dem der Aufruf von
sklearn.base.clonenicht thread-sicher war und zu einem Fehler „pop from empty list“ führen konnte. #9569 von Andreas Müller.API-Änderung Der Standardwert von
n_jobswird von1aufNonein allen zugehörigen Funktionen und Klassen geändert.n_jobs=Nonebedeutetnicht gesetzt. Es wird im Allgemeinen alsn_jobs=1interpretiert, es sei denn, der aktuellejoblib.Parallel-Backend-Kontext gibt etwas anderes an (siehe Glossar für weitere Informationen). Beachten Sie, dass diese Änderung sofort erfolgt (d. h. ohne eine Deprekationsphase). #11741 von Olivier Grisel.Korrektur Ein Fehler in Validierungshelfern wurde behoben, bei dem die Übergabe eines Dask DataFrames zu einem Fehler führte. #12462 von Zachariah Miller
Änderungen an Schätzerprüfungen#
Diese Änderungen betreffen hauptsächlich Bibliotheksentwickler.
Prüfungen auf Transformer werden nun angewendet, wenn der Estimator transform implementiert, unabhängig davon, ob er von
sklearn.base.TransformerMixinerbt. #10474 von Joel Nothman.Klassifikatoren werden nun auf Konsistenz zwischen decision_function und kategorischen Vorhersagen geprüft. #10500 von Narine Kokhlikyan.
Tests in
utils.estimator_checks.check_estimatorkönnen nun Funktionen testen, die paarweise Daten akzeptieren. #9701 von Kyle JohnsonErmöglicht
utils.estimator_checks.check_estimatordie Prüfung, ob es neben den Parametern während der Initialisierung des Estimators keine privaten Einstellungen gibt. #9378 von Herilalaina RakotoarisonDie Tests in
utils.estimator_checks.check_estimatorumfassen nun einencheck_set_params-Test, der prüft, obset_paramsäquivalent zur Übergabe von Parametern in__init__ist, und warnt, wenn Parameter-Validierung auftritt. #7738 von Alvin ChiangInvarianztests für Clustering-Metriken hinzugefügt. #8102 von Ankita Sinha und Guillaume Lemaitre.
Fügt
check_methods_subset_invariancezucheck_estimatorhinzu, was prüft, ob Estimator-Methoden bei Anwendung auf eine Datenuntermenge invariant sind. #10428 von Jonathan OhayonFügt Tests in
utils.estimator_checks.check_estimatorhinzu, um zu prüfen, ob ein Estimator schreibgeschützte Memmap-Eingabedaten verarbeiten kann. #10663 von Arthur Mensch und Loïc Estève.check_sample_weights_pandas_seriesverwendet nun 8 statt 6 Samples, um die Standardanzahl von Clustern incluster.KMeanszu berücksichtigen. #10933 von Johannes Hansen.Estimators werden nun darauf geprüft, ob
sample_weight=Nonegleichbedeutend mitsample_weight=np.ones(...)ist. #11558 von Sergul Aydore.
Code- und Dokumentationsbeitragende#
Vielen Dank an alle, die seit Version 0.19 zur Wartung und Verbesserung des Projekts beigetragen haben, einschließlich
211217613, Aarshay Jain, absolutelyNoWarranty, Adam Greenhall, Adam Kleczewski, Adam Richie-Halford, adelr, AdityaDaflapurkar, Adrin Jalali, Aidan Fitzgerald, aishgrt1, Akash Shivram, Alan Liddell, Alan Yee, Albert Thomas, Alexander Lenail, Alexander-N, Alexandre Boucaud, Alexandre Gramfort, Alexandre Sevin, Alex Egg, Alvaro Perez-Diaz, Amanda, Aman Dalmia, Andreas Bjerre-Nielsen, Andreas Mueller, Andrew Peng, Angus Williams, Aniruddha Dave, annaayzenshtat, Anthony Gitter, Antonio Quinonez, Anubhav Marwaha, Arik Pamnani, Arthur Ozga, Artiem K, Arunava, Arya McCarthy, Attractadore, Aurélien Bellet, Aurélien Geron, Ayush Gupta, Balakumaran Manoharan, Bangda Sun, Barry Hart, Bastian Venthur, Ben Lawson, Benn Roth, Breno Freitas, Brent Yi, brett koonce, Caio Oliveira, Camil Staps, cclauss, Chady Kamar, Charlie Brummitt, Charlie Newey, chris, Chris, Chris Catalfo, Chris Foster, Chris Holdgraf, Christian Braune, Christian Hirsch, Christian Hogan, Christopher Jenness, Clement Joudet, cnx, cwitte, Dallas Card, Dan Barkhorn, Daniel, Daniel Ferreira, Daniel Gomez, Daniel Klevebring, Danielle Shwed, Daniel Mohns, Danil Baibak, Darius Morawiec, David Beach, David Burns, David Kirkby, David Nicholson, David Pickup, Derek, Didi Bar-Zev, diegodlh, Dillon Gardner, Dillon Niederhut, dilutedsauce, dlovell, Dmitry Mottl, Dmitry Petrov, Dor Cohen, Douglas Duhaime, Ekaterina Tuzova, Eric Chang, Eric Dean Sanchez, Erich Schubert, Eunji, Fang-Chieh Chou, FarahSaeed, felix, Félix Raimundo, fenx, filipj8, FrankHui, Franz Wompner, Freija Descamps, frsi, Gabriele Calvo, Gael Varoquaux, Gaurav Dhingra, Georgi Peev, Gil Forsyth, Giovanni Giuseppe Costa, gkevinyen5418, goncalo-rodrigues, Gryllos Prokopis, Guillaume Lemaitre, Guillaume “Vermeille” Sanchez, Gustavo De Mari Pereira, hakaa1, Hanmin Qin, Henry Lin, Hong, Honghe, Hossein Pourbozorg, Hristo, Hunan Rostomyan, iampat, Ivan PANICO, Jaewon Chung, Jake VanderPlas, jakirkham, James Bourbeau, James Malcolm, Jamie Cox, Jan Koch, Jan Margeta, Jan Schlüter, janvanrijn, Jason Wolosonovich, JC Liu, Jeb Bearer, jeremiedbb, Jimmy Wan, Jinkun Wang, Jiongyan Zhang, jjabl, jkleint, Joan Massich, Joël Billaud, Joel Nothman, Johannes Hansen, JohnStott, Jonatan Samoocha, Jonathan Ohayon, Jörg Döpfert, Joris Van den Bossche, Jose Perez-Parras Toledano, josephsalmon, jotasi, jschendel, Julian Kuhlmann, Julien Chaumond, julietcl, Justin Shenk, Karl F, Kasper Primdal Lauritzen, Katrin Leinweber, Kirill, ksemb, Kuai Yu, Kumar Ashutosh, Kyeongpil Kang, Kye Taylor, kyledrogo, Leland McInnes, Léo DS, Liam Geron, Liutong Zhou, Lizao Li, lkjcalc, Loic Esteve, louib, Luciano Viola, Lucija Gregov, Luis Osa, Luis Pedro Coelho, Luke M Craig, Luke Persola, Mabel, Mabel Villalba, Maniteja Nandana, MarkIwanchyshyn, Mark Roth, Markus Müller, MarsGuy, Martin Gubri, martin-hahn, martin-kokos, mathurinm, Matthias Feurer, Max Copeland, Mayur Kulkarni, Meghann Agarwal, Melanie Goetz, Michael A. Alcorn, Minghui Liu, Ming Li, Minh Le, Mohamed Ali Jamaoui, Mohamed Maskani, Mohammad Shahebaz, Muayyad Alsadi, Nabarun Pal, Nagarjuna Kumar, Naoya Kanai, Narendran Santhanam, NarineK, Nathaniel Saul, Nathan Suh, Nicholas Nadeau, P.Eng., AVS, Nick Hoh, Nicolas Goix, Nicolas Hug, Nicolau Werneck, nielsenmarkus11, Nihar Sheth, Nikita Titov, Nilesh Kevlani Nirvan Anjirbag, notmatthancock, nzw, Oleksandr Pavlyk, oliblum90, Oliver Rausch, Olivier Grisel, Oren Milman, Osaid Rehman Nasir, pasbi, Patrick Fernandes, Patrick Olden, Paul Paczuski, Pedro Morales, Peter, Peter St. John, pierreablin, pietruh, Pinaki Nath Chowdhury, Piotr Szymański, Pradeep Reddy Raamana, Pravar D Mahajan, pravarmahajan, QingYing Chen, Raghav RV, Rajendra arora, RAKOTOARISON Herilalaina, Rameshwar Bhaskaran, RankyLau, Rasul Kerimov, Reiichiro Nakano, Rob, Roman Kosobrodov, Roman Yurchak, Ronan Lamy, rragundez, Rüdiger Busche, Ryan, Sachin Kelkar, Sagnik Bhattacharya, Sailesh Choyal, Sam Radhakrishnan, Sam Steingold, Samuel Bell, Samuel O. Ronsin, Saqib Nizam Shamsi, SATISH J, Saurabh Gupta, Scott Gigante, Sebastian Flennerhag, Sebastian Raschka, Sebastien Dubois, Sébastien Lerique, Sebastin Santy, Sergey Feldman, Sergey Melderis, Sergul Aydore, Shahebaz, Shalil Awaley, Shangwu Yao, Sharad Vijalapuram, Sharan Yalburgi, shenhanc78, Shivam Rastogi, Shu Haoran, siftikha, Sinclert Pérez, SolutusImmensus, Somya Anand, srajan paliwal, Sriharsha Hatwar, Sri Krishna, Stefan van der Walt, Stephen McDowell, Steven Brown, syonekura, Taehoon Lee, Takanori Hayashi, tarcusx, Taylor G Smith, theriley106, Thomas, Thomas Fan, Thomas Heavey, Tobias Madsen, tobycheese, Tom Augspurger, Tom Dupré la Tour, Tommy, Trevor Stephens, Trishnendu Ghorai, Tulio Casagrande, twosigmajab, Umar Farouk Umar, Urvang Patel, Utkarsh Upadhyay, Vadim Markovtsev, Varun Agrawal, Vathsala Achar, Vilhelm von Ehrenheim, Vinayak Mehta, Vinit, Vinod Kumar L, Viraj Mavani, Viraj Navkal, Vivek Kumar, Vlad Niculae, vqean3, Vrishank Bhardwaj, vufg, wallygauze, Warut Vijitbenjaronk, wdevazelhes, Wenhao Zhang, Wes Barnett, Will, William de Vazelhes, Will Rosenfeld, Xin Xiong, Yiming (Paul) Li, ymazari, Yufeng, Zach Griffith, Zé Vinícius, Zhenqing Hu, Zhiqing Xiao, Zijie (ZJ) Poh