Version 1.2#
Für eine kurze Beschreibung der wichtigsten Highlights des Releases, siehe Release Highlights für scikit-learn 1.2.
Legende für Changelogs
Hauptmerkmal etwas Großes, das Sie vorher nicht tun konnten.
Merkmal etwas, das Sie vorher nicht tun konnten.
Effizienz Ein bestehendes Merkmal erfordert nun möglicherweise weniger Rechenleistung oder Speicher.
Verbesserung eine sonstige kleinere Verbesserung.
Korrektur Etwas, das zuvor nicht wie dokumentiert – oder nach vernünftigen Erwartungen – funktionierte, sollte nun funktionieren.
API-Änderung Sie müssen Ihren Code ändern, um in Zukunft die gleiche Wirkung zu erzielen; oder ein Merkmal wird in Zukunft entfernt.
Version 1.2.2#
März 2023
Änderungsprotokoll#
sklearn.base#
Fix Wenn
set_output(transform="pandas")verwendet wird, behältbase.TransformerMixinden Index bei, wenn die transform-Ausgabe bereits ein DataFrame ist. #25747 von Thomas Fan.
sklearn.calibration#
Fix Eine Deprecation-Warnung wird ausgegeben, wenn das Präfix
base_estimator__verwendet wird, um Parameter des incalibration.CalibratedClassifierCVverwendeten Estimators zu setzen. #25477 von Tim Head.
sklearn.cluster#
Fix Ein Fehler in
cluster.BisectingKMeanswurde behoben, der zufällige Fehler beifitaufgrund einer Permutation der Labels beim Ausführen mehrerer Inits verhinderte. #25563 von Jérémie du Boisberranger.
sklearn.compose#
Fix Ein Fehler in
compose.ColumnTransformerwurde behoben, der nun leere Spaltenauswahlen unterstützt, wennset_output(transform="pandas")verwendet wird. #25570 von Thomas Fan.
sklearn.ensemble#
Fix Eine Deprecation-Warnung wird ausgegeben, wenn das Präfix
base_estimator__verwendet wird, um Parameter der inensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor,ensemble.BaggingClassifierundensemble.BaggingRegressorverwendeten Estimators zu setzen. #25477 von Tim Head.
sklearn.feature_selection#
Fix Ein Fehler wurde behoben, bei dem ein negativer Wert für
tolvonfeature_selection.SequentialFeatureSelectornicht mehr akzeptiert wurde. #25664 von Jérémie du Boisberranger.
sklearn.inspection#
Fix Eine aussagekräftigere Fehlermeldung wird in
inspection.partial_dependenceausgegeben, wenn mit gemischten Datentypen von Kategorien umgegangen wird, die vonnumpy.uniquenicht sortiert werden können. Dieses Problem tritt normalerweise auf, wenn Kategorien vom Typstrsind und fehlende Werte mitnp.nanvorhanden sind. #25774 von Guillaume Lemaitre.
sklearn.isotonic#
Fix Ein Fehler in
isotonic.IsotonicRegressionwurde behoben, bei demisotonic.IsotonicRegression.predictein Pandas DataFrame zurückgab, wenn die globale Konfigurationtransform_output="pandas"gesetzt hatte. #25500 von Guillaume Lemaitre.
sklearn.preprocessing#
Fix Das Attribut
preprocessing.OneHotEncoder.drop_idx_referenziert nun korrekt die verworfene Kategorie im Attributcategories_, wenn seltene Kategorien vorhanden sind. #25589 von Thomas Fan.Fix
preprocessing.OrdinalEncoderunterstützt nun korrektencoded_missing_valueoderunknown_value, die auf die Kardinalität einer Kategorie gesetzt sind, wenn fehlende Werte in den Trainingsdaten vorhanden sind. #25704 von Thomas Fan.
sklearn.tree#
Fix Ein Fehler wurde in
tree.DecisionTreeClassifier,tree.DecisionTreeRegressor,tree.ExtraTreeClassifierundtree.ExtraTreeRegressorbehoben, bei dem in Version 1.2 keine Fehlermeldung mehr ausgegeben wurde, wennmin_sample_split=1gesetzt war. #25744 von Jérémie du Boisberranger.
sklearn.utils#
Fix Ein Fehler in
utils.check_arraywurde behoben, der nun korrekt eine Nicht-Endlichkeitsprüfung gemäß der Array-API-Spezifikation durchführt. #25619 von Thomas Fan.Fix
utils.multiclass.type_of_targetkann Pandas Nullable-Datentypen als Klassifizierungsziele identifizieren. #25638 von Thomas Fan.
Version 1.2.1#
Januar 2023
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 Die angepassten Komponenten in
decomposition.MiniBatchDictionaryLearningkonnten abweichen. Die Online-Updates dersufficient statistics berücksichtigen nun korrekt die Größen der Batches. #25354 von Jérémie du Boisberranger.Fix Das Attribut
categories_vonpreprocessing.OneHotEncoderenthält nun immer ein Array vonobject`s wenn vordefinierte Kategorien verwendet werden, die Zeichenketten sind. Vordefinierte Kategorien, die als Bytes kodiert sind, funktionieren nicht mehr mit `X, das als Zeichenketten kodiert ist. #25174 von Tim Head.
Änderungen, die alle Module betreffen#
Fix Unterstützung für
pandas.Int64-dtypisiertesyfür Klassifikatoren und Regressoren. #25089 von Tim Head.Fix Entfernung von irreführenden Warnungen für Estimators, die intern Nachbarschaftssuchmethoden verwenden. #25129 von Julien Jerphanion.
Fix Ein Fehler wurde behoben, bei dem die aktuelle Konfiguration in Estimators, die
n_jobs > 1verwenden, ignoriert wurde. Dieser Fehler wurde für Aufgaben ausgelöst, die vom Hilfs-Thread vonjoblibverteilt wurden, dasklearn.get_configauf eine leere Thread-lokale Konfiguration zugriff, anstatt auf die Konfiguration, die vom Thread aus sichtbar war, in demjoblib.Parallelzuerst aufgerufen wurde. #25363 von Guillaume Lemaitre.
Änderungsprotokoll#
sklearn.base#
Fix Ein Fehler wurde in
BaseEstimator.__getstate__behoben, der die Serialisierung bestimmter Estimators unter Verwendung von Python 3.11 verhinderte. #25188 von Benjamin Bossan.Fix Das Erben von
base.TransformerMixinumschließt dietransform-Methode nur, wenn die Klasse selbsttransformdefiniert. #25295 von Thomas Fan.
sklearn.datasets#
Fix Eine Inkonsistenz in
datasets.fetch_openmlzwischen dem liac-arff und dem Pandas-Parser wurde behoben, wenn nach dem Trennzeichen ein führendes Leerzeichen eingefügt wurde. Die ARFF-Spezifikationen verlangen, dass führende Leerzeichen ignoriert werden. #25312 von Guillaume Lemaitre.Fix Ein Fehler in
datasets.fetch_openmlwurde behoben, alsparser="pandas"verwendet wurde und einzelne Anführungszeichen und Backslash-Escape-Zeichen nicht richtig behandelt wurden. #25511 von Guillaume Lemaitre.
sklearn.decomposition#
Fix Ein Fehler in
decomposition.MiniBatchDictionaryLearningwurde behoben, bei dem die Online-Updates der sufficient statistics nicht korrekt waren, wennpartial_fitauf Batches unterschiedlicher Größe aufgerufen wurde. #25354 von Jérémie du Boisberranger.Fix
decomposition.DictionaryLearningunterstützt schreibgeschützte NumPy-Arrays besser. Insbesondere unterstützt es große Datensätze, die bei der Verwendung mit Koordinatendescendent-Algorithmen (d. h. wennfit_algorithm='cd') speicherabbildbar sind, besser. #25172 von Julien Jerphanion.
sklearn.ensemble#
Fix
ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifierundensemble.ExtraTreesRegressorunterstützen nun spärliche schreibgeschützte Datensätze. #25341 von Julien Jerphanion
sklearn.feature_extraction#
Fix
feature_extraction.FeatureHasherlöst eine aussagekräftige Fehlermeldung aus, wenn die Eingabe eine Liste von Zeichenketten ist. #25094 von Thomas Fan.
sklearn.linear_model#
Fix Ein Fehler wurde in
linear_model.SGDClassifierundlinear_model.SGDRegressorbehoben, der sie mit dem Parameterverbosegrößer als 0 unbenutzbar machte. #25250 von Jérémie Du Boisberranger.
sklearn.manifold#
Fix
manifold.TSNEfunktioniert nun korrekt, wenn der Ausgabetyp auf Pandas gesetzt ist. #25370 von Tim Head.
sklearn.model_selection#
Fix
model_selection.cross_validatemit Multimetrik-Scoring gibt im Falle einiger fehlerhafter Scorer die nicht fehlerhaften Scorer nun mit korrekten Werten statterror_score-Werten zurück. #23101 von András Simon und Thomas Fan.
sklearn.neural_network#
Fix
neural_network.MLPClassifierundneural_network.MLPRegressorgeben keine Warnungen mehr aus, wenn Daten mit Feature-Namen angepasst werden. #24873 von Tim Head.Fix Verbesserung der Fehlermeldung in
neural_network.MLPClassifierundneural_network.MLPRegressor, wennearly_stopping=Trueist undpartial_fitaufgerufen wird. #25694 von Thomas Fan.
sklearn.preprocessing#
Fix
preprocessing.FunctionTransformer.inverse_transformunterstützt DataFrames, die vollständig numerisch sind, korrekt, wenncheck_inverse=Truegesetzt ist. #25274 von Thomas Fan.Fix
preprocessing.SplineTransformer.get_feature_names_outgibt korrekt Feature-Namen zurück, wennextrapolations="periodic"gesetzt ist. #25296 von Thomas Fan.
sklearn.tree#
Fix
tree.DecisionTreeClassifier,tree.DecisionTreeRegressortree.ExtraTreeClassifierundtree.ExtraTreeRegressorunterstützen nun spärliche schreibgeschützte Datensätze. #25341 von Julien Jerphanion
sklearn.utils#
Fix Das Verhalten von
utils.check_arrayfür Pandas Series vom Typ boolean wurde wiederhergestellt. Der Typ bleibt erhalten, anstatt infloat64konvertiert zu werden. #25147 von Tim Head.API Change
utils.fixes.delayedist in Version 1.2.1 veraltet und wird in Version 1.5 entfernt. Importieren Sie stattdessenutils.parallel.delayedund verwenden Sie es in Verbindung mit dem neu eingeführtenutils.parallel.Parallel, um die ordnungsgemäße Weitergabe der scikit-learn-Konfiguration an die Worker sicherzustellen. #25363 von Guillaume Lemaitre.
Version 1.2.0#
Dezember 2022
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.
Enhancement Der Standardwert von
eigen_tolfürcluster.SpectralClustering,manifold.SpectralEmbedding,cluster.spectral_clusteringundmanifold.spectral_embeddingist nunNone, wenn die Solver'amg'oder'lobpcg'verwendet werden. Diese Änderung verbessert die numerische Stabilität des Solvers, kann aber zu einem anderen Modell führen.Enhancement
linear_model.GammaRegressor,linear_model.PoissonRegressorundlinear_model.TweedieRegressorkönnen mit dem lbfgs-Solver eine höhere Präzision erreichen, insbesondere wenntolauf einen winzigen Wert gesetzt ist. Darüber hinaus wirdverbosenun ordnungsgemäß an L-BFGS-B weitergegeben. #23619 von Christian Lorentzen.Enhancement Der Standardwert für
epsinmetrics.log_losshat sich von1e-15auf"auto"geändert."auto"setztepsaufnp.finfo(y_pred.dtype).eps. #24354 von Safiuddin Khaja und gsiisg.Fix Das Vorzeichen von
components_indecomposition.SparsePCAwurde deterministisch gemacht. #23935 von Guillaume Lemaitre.Fix Die Vorzeichen von
components_indecomposition.FastICAkonnten abweichen. Sie sind nun konsistent und deterministisch mit allen SVD-Solvern. #22527 von Meekail Zain und Thomas Fan.Fix Die Bedingung für das frühe Stoppen wurde in
linear_model._sgd_fast._plain_sgdgeändert, das vonlinear_model.SGDRegressorundlinear_model.SGDClassifierverwendet wird. Die alte Bedingung unterschied nicht zwischen Trainings- und Validierungsdatensatz und hatte die Auswirkung einer Überskalierung der Fehlertoleranz. Dies wurde in #23798 behoben von Harsh Agrawal.Fix Für
model_selection.GridSearchCVundmodel_selection.RandomizedSearchCVwerden die Ränge, die NaN-Scores entsprechen, alle auf den maximal möglichen Rang gesetzt. #24543 von Guillaume Lemaitre.API Change Der Standardwert von
tolwurde von1e-3auf1e-4fürlinear_model.ridge_regression,linear_model.Ridgeundlinear_model.RidgeClassifiergeändert. #24465 von Christian Lorentzen.
Änderungen, die alle Module betreffen#
Major Feature Die
set_outputAPI wurde von allen Transformern übernommen. Meta-Estimators, die Transformer enthalten, wie z. B.pipeline.Pipelineodercompose.ColumnTransformer, definieren ebenfalls eineset_output-Methode. Details finden Sie in SLEP018. #23734 und #24699 von Thomas Fan.Effizienz Low-Level-Routinen für Reduktionen auf paarweisen Abständen für dichte float32-Datensätze wurden refaktorisiert. Die folgenden Funktionen und Schätzer profitieren nun von verbesserten Leistungen in Bezug auf Hardware-Skalierbarkeit und Geschwindigkeitssteigerungen.
Zum Beispiel können
sklearn.neighbors.NearestNeighbors.kneighborsundsklearn.neighbors.NearestNeighbors.radius_neighborsauf einem Laptop jeweils bis zu 20-mal bzw. 5-mal schneller sein als zuvor.Darüber hinaus sind Implementierungen dieser beiden Algorithmen nun für Maschinen mit vielen Kernen geeignet, wodurch sie für Datensätze mit Millionen von Samples nutzbar sind.
#23865 von Julien Jerphanion.
Verbesserung Endlichkeitsprüfungen (Erkennung von NaN- und unendlichen Werten) in allen Schätzern sind nun deutlich effizienter für float32-Daten, indem sie die SIMD-optimierten Primitive von NumPy nutzen. #23446 von Meekail Zain
Verbesserung Endlichkeitsprüfungen (Erkennung von NaN- und unendlichen Werten) in allen Schätzern sind nun schneller, indem ein effizienterer Algorithmus zur frühzeitigen Erkennung verwendet wird. #23197 von Meekail Zain
Verbesserung Unterstützung für Kombinationen von dichten und dünn besetzten Datensatzpaaren für alle Distanzmetriken und für float32- und float64-Datensätze wurde für die folgenden Schätzer hinzugefügt oder deren Leistung wurde verbessert.
#23604 und #23585 von Julien Jerphanion, Olivier Grisel und Thomas Fan, #24556 von Vincent Maladière.
Korrektur Systematische Überprüfung des sha256-Digests von Datensatz-Tarballs, die in Codebeispielen in der Dokumentation verwendet werden. #24617 von Olivier Grisel und Thomas Fan. Dank an Sim4n6 für den Bericht.
Änderungsprotokoll#
sklearn.base#
Verbesserung Einführung der Mixins
base.ClassNamePrefixFeaturesOutMixinundbase.ClassNamePrefixFeaturesOutMixin, die get_feature_names_out für gängige Transformer-Anwendungsfälle definieren. #24688 von Thomas Fan.
sklearn.calibration#
API-Änderung Umbenennung von
base_estimatorinestimatorincalibration.CalibratedClassifierCVzur Verbesserung der Lesbarkeit und Konsistenz. Der Parameterbase_estimatorist veraltet und wird in 1.4 entfernt. #22054 von Kevin Roice.
sklearn.cluster#
Effizienz
cluster.KMeansmitalgorithm="lloyd"ist nun schneller und verbraucht weniger Speicher. #24264 von Vincent Maladière.Verbesserung Die Methoden
predictundfit_predictvoncluster.OPTICSakzeptieren nun dünn besetzte Datentypen für Eingabedaten. #14736 von Hunt Zhan, #20802 von Brandon Pokorny und #22965 von Meekail Zain.Verbesserung
cluster.Birchbehält nun den dtype fürnumpy.float32-Eingaben bei. #22968 vonMeekail Zain <micky774>.Verbesserung
cluster.KMeansundcluster.MiniBatchKMeansakzeptieren nun eine neue Option'auto'fürn_init, die die Anzahl der zufälligen Initialisierungen bei Verwendung voninit='k-means++'zur Effizienz auf eins reduziert. Dies ist der Beginn der Verwerfung der Standardwerte vonn_initin den beiden Klassen, und beide werden ihre Standardwerte in 1.4 aufn_init='auto'ändern. #23038 von Meekail Zain.Verbesserung
cluster.SpectralClusteringundcluster.spectral_clusteringleiten nun den Parametereigen_tolan alle Wahlmöglichkeiten voneigen_solverweiter. Enthält eine neue Optioneigen_tol="auto"und beginnt mit der Verwerfung, um den Standardwert voneigen_tol=0in Version 1.3 aufeigen_tol="auto"zu ändern. #23210 von Meekail Zain.Korrektur
cluster.KMeansunterstützt nun schreibgeschützte Attribute bei der Vorhersage. #24258 von Thomas FanAPI-Änderung Das Attribut
affinityist nun fürcluster.AgglomerativeClusteringveraltet und wird in v1.4 inmetricumbenannt. #23470 von Meekail Zain.
sklearn.datasets#
Verbesserung Einführung des neuen Parameters
parserindatasets.fetch_openml.parser="pandas"ermöglicht die Verwendung des sehr CPU- und speichereffizientenpandas.read_csvParsers zum Laden dichter ARFF-formatierter Datensatzdateien. Es ist möglich,parser="liac-arff"zu übergeben, um den alten LIAC-Parser zu verwenden. Wennparser="auto", werden dichte Datensätze mit "pandas" und dünn besetzte Datensätze mit "liac-arff" geladen. Derzeit istparser="liac-arff"standardmäßig eingestellt und wird in Version 1.4 aufparser="auto"geändert. #21938 von Guillaume Lemaitre.Verbesserung
datasets.dump_svmlight_filewird nun mit einer Cython-Implementierung beschleunigt, was 2-4-fache Geschwindigkeitssteigerungen bietet. #23127 von Meekail ZainVerbesserung Pfadähnliche Objekte, wie z. B. solche, die mit pathlib erstellt wurden, werden nun als Pfade in
datasets.load_svmlight_fileunddatasets.load_svmlight_fileszugelassen. #19075 von Carlos Ramos Carreño.Korrektur Sicherstellen, dass
datasets.fetch_lfw_peopleunddatasets.fetch_lfw_pairsintern Bilder basierend auf dem Parameterslice_zuschneiden. #24951 von Guillaume Lemaitre.
sklearn.decomposition#
Effizienz
decomposition.FastICA.fitwurde hinsichtlich seines Speicherbedarfs und seiner Laufzeit optimiert. #22268 von MohamedBsh.Verbesserung
decomposition.SparsePCAunddecomposition.MiniBatchSparsePCAimplementieren nun eine Funktioninverse_transform. #23905 von Guillaume Lemaitre.Verbesserung
decomposition.FastICAermöglicht dem Benutzer nun die Auswahl, wie die Weißung durchgeführt wird, über den neuen Parameterwhiten_solver, dersvdundeighunterstützt.whiten_solverist standardmäßig aufsvdeingestellt, obwohleighin Fällen, in denennum_features > num_samplesist, schneller und speichereffizienter sein kann. #11860 von Pierre Ablin, #22527 von Meekail Zain und Thomas Fan.Verbesserung
decomposition.LatentDirichletAllocationbehält nun den dtype fürnumpy.float32-Eingaben bei. #24528 von Takeshi Oura und Jérémie du Boisberranger.Fix Das Vorzeichen von
components_indecomposition.SparsePCAwurde deterministisch gemacht. #23935 von Guillaume Lemaitre.API-Änderung Der Parameter
n_itervondecomposition.MiniBatchSparsePCAist veraltet und wird durch die Parametermax_iter,tolundmax_no_improvementersetzt, um mitdecomposition.MiniBatchDictionaryLearningkonsistent zu sein.n_iterwird in Version 1.3 entfernt. #23726 von Guillaume Lemaitre.API-Änderung Das Attribut
n_features_vondecomposition.PCAist zugunsten vonn_features_in_veraltet und wird in 1.4 entfernt. #24421 von Kshitij Mathur.
sklearn.discriminant_analysis#
Hauptmerkmal
discriminant_analysis.LinearDiscriminantAnalysisunterstützt nun die Array API fürsolver="svd". Die Array API-Unterstützung gilt als experimentell und kann sich ohne unseren üblichen Rolling-Deprecation-Zyklus ändern. Weitere Details finden Sie unter Array API-Unterstützung (experimentell). #22554 von Thomas Fan.Korrektur Parameter nur in
fitund nicht in__init__fürdiscriminant_analysis.QuadraticDiscriminantAnalysisvalidieren. #24218 von Stefanie Molin.
sklearn.ensemble#
Hauptmerkmal
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorunterstützen nun Interaktionsbeschränkungen über das Argumentinteraction_cstihrer Konstruktoren. #21020 von Christian Lorentzen. Die Verwendung von Interaktionsbeschränkungen beschleunigt auch die Anpassung. #24856 von Christian Lorentzen.Merkmal Fügt
class_weightzuensemble.HistGradientBoostingClassifierhinzu. #22014 von Thomas Fan.Effizienz Verbesserung der Laufzeitleistung von
ensemble.IsolationForestdurch Vermeidung von Datenkopien. #23252 von Zhehao Liu.Verbesserung
ensemble.StackingClassifierakzeptiert nun jede Art von Basis-Schätzer. #24538 von Guillem G Subies.Verbesserung Ermöglicht die Übergabe des Parameters
categorical_featuresvonensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorals Feature-Namen. #24889 von Olivier Grisel.Verbesserung
ensemble.StackingClassifierunterstützt nun multilable-indicator-Ziel #24146 von Nicolas Peretti, Nestor Navarro, Nati Tomattis und Vincent Maladiere.Verbesserung
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorakzeptieren nun, dass ihr Parametermonotonic_cstals Wörterbuch zusätzlich zum zuvor unterstützten Array-ähnlichen Format übergeben wird. Solche Wörterbücher haben Feature-Namen als Schlüssel und einen der Werte-1,0,1, um Monotoniebeschränkungen für jedes Feature anzugeben. #24855 von Olivier Grisel.Verbesserung Interaktionsbeschränkungen für
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorkönnen nun als Strings für zwei gängige Fälle angegeben werden: "no_interactions" und "pairwise" interactions. #24849 von Tim Head.Korrektur Behebt das Problem, dass
ensemble.AdaBoostClassifierNaN in der Feature-Wichtigkeit ausgibt, wenn mit sehr kleinem Stichprobengewicht trainiert. #20415 von Zhehao Liu.Korrektur
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressorlösen keinen Fehler mehr aus, wenn auf Kategorien vorhergesagt wird, die als negative Werte codiert sind, und betrachten sie stattdessen als Mitglied der "fehlenden Kategorie". #24283 von Thomas Fan.Korrektur
ensemble.HistGradientBoostingClassifierundensemble.HistGradientBoostingRegressormitverbose>=1drucken detaillierte Timing-Informationen zur Berechnung von Histogrammen und zur Suche nach besten Teilungen. Die Zeit im Wurzelknoten fehlte zuvor und ist nun in den gedruckten Informationen enthalten. #24894 von Christian Lorentzen.API-Änderung Umbenennung des Konstruktorparameters
base_estimatorinestimatorin den folgenden Klassen:ensemble.BaggingClassifier,ensemble.BaggingRegressor,ensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor.base_estimatorist in 1.2 veraltet und wird in 1.4 entfernt. #23819 von Adrian Trujillo und Edoardo Abati.API-Änderung Benennen Sie das angepasste Attribut
base_estimator_inestimator_in den folgenden Klassen um:ensemble.BaggingClassifier,ensemble.BaggingRegressor,ensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor,ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifier,ensemble.ExtraTreesRegressor,ensemble.RandomTreesEmbedding,ensemble.IsolationForest.base_estimator_ist in Version 1.2 veraltet und wird in Version 1.4 entfernt. #23819 von Adrian Trujillo und Edoardo Abati.
sklearn.feature_selection#
Fehlerbehebung Behebt einen Fehler in
feature_selection.mutual_info_regressionundfeature_selection.mutual_info_classif, bei dem die kontinuierlichen Merkmale inXunabhängig auf eine Einheitsvarianz skaliert werden sollten, wenn das Zielykontinuierlich oder diskret ist. #24747 von Guillaume Lemaitre
sklearn.gaussian_process#
Fehlerbehebung Behebt die Gradientenberechnung für
gaussian_process.kernels.Maternmitnu=0.5für PyPy (und möglicherweise andere Nicht-CPython-Interpreter). #24245 von Loïc Estève.Fehlerbehebung Die
fit-Methode vongaussian_process.GaussianProcessRegressorändert die Eingabe X nicht, wenn ein benutzerdefiniertes Kernel mit einerdiag-Methode verwendet wird, die einen Teil der Eingabe X zurückgibt. #24405 von Omar Salman.
sklearn.impute#
Erweiterung Parameter
keep_empty_featureshinzugefügt zuimpute.SimpleImputer,impute.KNNImputerundimpute.IterativeImputer, um die Entfernung von Merkmalen, die nur fehlende Werte enthalten, beim Transformieren zu verhindern. #16695 von Vitor Santa Rosa.
sklearn.inspection#
Hauptmerkmal
inspection.partial_dependenceundinspection.PartialDependenceDisplaywurden erweitert, um kategoriale Merkmale zu verarbeiten. #18298 von Madhura Jayaratne und Guillaume Lemaitre.Fehlerbehebung
inspection.DecisionBoundaryDisplaylöst nun einen Fehler aus, wenn die Eingabedaten nicht 2-dimensional sind. #25077 von Arturo Amor.
sklearn.kernel_approximation#
Erweiterung
kernel_approximation.RBFSamplerbehält nun den dtype fürnumpy.float32-Eingaben bei. #24317 vonTim Head <betatim>.Erweiterung
kernel_approximation.SkewedChi2Samplerbehält nun den dtype fürnumpy.float32-Eingaben bei. #24350 von Rahil Parikh.Erweiterung
kernel_approximation.RBFSamplerakzeptiert nun die Option'scale'für den Parametergamma. #24755 von Hleb Levitski.
sklearn.linear_model#
Erweiterung
linear_model.LogisticRegression,linear_model.LogisticRegressionCV,linear_model.GammaRegressor,linear_model.PoissonRegressorundlinear_model.TweedieRegressorerhielten einen neuen Solversolver="newton-cholesky". Dies ist eine Optimierungsroutine der 2. Ordnung (Newton), die eine Cholesky-Zerlegung der Hesse-Matrix verwendet. Wennn_samples >> n_features, hat sich gezeigt, dass der"newton-cholesky"-Solver sowohl schneller konvergiert als auch eine Lösung mit höherer Präzision erzielt als der"lbfgs"-Solver bei Problemen mit One-Hot-kodierten kategorialen Variablen mit seltenen kategorialen Werten. #24637 und #24767 von Christian Lorentzen.Enhancement
linear_model.GammaRegressor,linear_model.PoissonRegressorundlinear_model.TweedieRegressorkönnen mit dem lbfgs-Solver eine höhere Präzision erreichen, insbesondere wenntolauf einen winzigen Wert gesetzt ist. Darüber hinaus wirdverbosenun ordnungsgemäß an L-BFGS-B weitergegeben. #23619 von Christian Lorentzen.Fehlerbehebung
linear_model.SGDClassifierundlinear_model.SGDRegressorlösen einen Fehler aus, wenn alle Validierungsbeispiele ein Stichprobengewicht von Null haben. #23275 vonZhehao Liu <MaxwellLZH>.Fehlerbehebung
linear_model.SGDOneClassSVMführt keine Parameterprüfung mehr im Konstruktor durch. Alle Prüfungen werden nun infit()undpartial_fit()durchgeführt. #24433 von Yogendrasingh, Arisa Y. und Tim Head.Fehlerbehebung Berechnet den durchschnittlichen Verlust neu, wenn Early Stopping in
linear_model.SGDRegressorundlinear_model.SGDClassifieraktiviert ist. Aktualisiert auch die Bedingung für Early Stopping entsprechend. #23798 von Harsh Agrawal.API-Änderung Der Standardwert für den Parameter
solverinlinear_model.QuantileRegressorwird in Version 1.4 von"interior-point"auf"highs"geändert. #23637 von Guillaume Lemaitre.API-Änderung Die String-Option
"none"ist für das Argumentpenaltyinlinear_model.LogisticRegressionveraltet und wird in Version 1.4 entfernt. Verwenden Sie stattdessenNone. #23877 von Zhehao Liu.API Change Der Standardwert von
tolwurde von1e-3auf1e-4fürlinear_model.ridge_regression,linear_model.Ridgeundlinear_model.RidgeClassifiergeändert. #24465 von Christian Lorentzen.
sklearn.manifold#
Merkmal Fügt die Option hinzu, die normalisierte Belastung (normalized stress) in
manifold.MDSzu verwenden. Dies wird durch Setzen des neuen ParametersnormalizeaufTrueaktiviert. #10168 von Łukasz Borchmann, #12285 von Matthias Miltenberger, #13042 von Matthieu Parizy, #18094 von Roth E Conrad und #22562 von Meekail Zain.Erweiterung Fügt den Parameter
eigen_tolzumanifold.SpectralEmbeddinghinzu. Sowohlmanifold.spectral_embeddingals auchmanifold.SpectralEmbeddingleiten nuneigen_tolan alle Optionen voneigen_solverweiter. Enthält eine neue Optioneigen_tol="auto"und beginnt mit der Veralterung, um den Standardwert voneigen_tol=0aufeigen_tol="auto"in Version 1.3 zu ändern. #23210 von Meekail Zain.Erweiterung
manifold.Isomapbehält nun den dtype fürnp.float32-Eingaben bei. #24714 von Rahil Parikh.API-Änderung Eine
"auto"-Option wurde dem Argumentnormalized_stressinmanifold.MDSundmanifold.smacofhinzugefügt. Beachten Sie, dassnormalized_stressnur für nicht-metrische MDS gültig ist. Daher aktiviert die"auto"-Optionnormalized_stress, wennmetric=False, und deaktiviert sie, wennmetric=True."auto"wird der Standardwert fürnormalized_stressin Version 1.4. #23834 von Meekail Zain.
sklearn.metrics#
Merkmal
metrics.ConfusionMatrixDisplay.from_estimator,metrics.ConfusionMatrixDisplay.from_predictionsundmetrics.ConfusionMatrixDisplay.plotakzeptieren einen Parametertext_kw, der an dietext-Funktion von Matplotlib übergeben wird. #24051 von Thomas Fan.Merkmal
metrics.class_likelihood_ratioswird hinzugefügt, um die positiven und negativen Likelihood-Ratios zu berechnen, die sich aus der Konfusionsmatrix eines binären Klassifizierungsproblems ergeben. #22518 von Arturo Amor.Merkmal Fügt
metrics.PredictionErrorDisplayhinzu, um Residuen gegen vorhergesagte und tatsächliche gegen vorhergesagte Werte zu plotten und das Verhalten eines Regressors qualitativ zu bewerten. Die Anzeige kann mit den Klassenmethodenmetrics.PredictionErrorDisplay.from_estimatorundmetrics.PredictionErrorDisplay.from_predictionserstellt werden. #18020 von Guillaume Lemaitre.Merkmal
metrics.roc_auc_scoreunterstützt nun Micro-Averaging (average="micro") für den One-vs-Rest Multiklassenfall (multi_class="ovr"). #24338 von Arturo Amor.Erweiterung Fügt eine Option
"auto"fürepsinmetrics.log_losshinzu. Diese Option setzt deneps-Wert automatisch basierend auf dem Datentyp vony_pred. Darüber hinaus wird der Standardwert vonepsvon1e-15auf die neue Option"auto"geändert. #24354 von Safiuddin Khaja und gsiisg.Fehlerbehebung Ermöglicht
csr_matrixals Eingabe für den Parameter:y_trueder Metrikmetrics.label_ranking_average_precision_score. #23442 von Sean AtukoralaFehlerbehebung
metrics.ndcg_scorelöst nun eine Warnung aus, wenn der Werty_trueeinen negativen Wert enthält. Benutzer können weiterhin negative Werte verwenden, aber das Ergebnis liegt möglicherweise nicht zwischen 0 und 1. Ab v1.4 wird die Übergabe negativer Werte füry_trueeinen Fehler auslösen. #22710 von Conroy Trinh und #23461 von Meekail Zain.Fehlerbehebung
metrics.log_lossmiteps=0gibt nun einen korrekten Wert von 0 odernp.infanstelle vonnanfür Vorhersagen an den Grenzen (0 oder 1) zurück. Es akzeptiert auch Ganzzahleingaben. #24365 von Christian Lorentzen.API-Änderung Der Parameter
sum_over_featuresvonmetrics.pairwise.manhattan_distancesist veraltet und wird in Version 1.4 entfernt. #24630 von Rushil Desai.
sklearn.model_selection#
Merkmal Fügt die Klasse
model_selection.LearningCurveDisplayhinzu, die die einfache Darstellung von Lernkurven ermöglicht, die von der Funktionmodel_selection.learning_curveerhalten wurden. #24084 von Guillaume Lemaitre.Fehlerbehebung Für alle
SearchCV-Klassen und scipy >= 1.10 wird der Rang, der einem NaN-Score entspricht, korrekt auf den maximal möglichen Rang gesetzt, anstatt aufnp.iinfo(np.int32).min. #24141 von Loïc Estève.Fehlerbehebung In sowohl
model_selection.HalvingGridSearchCVals auchmodel_selection.HalvingRandomSearchCVteilen sich Parameterkombinationen mit einem NaN-Score nun den niedrigsten Rang. #24539 von Tim Head.Fix Für
model_selection.GridSearchCVundmodel_selection.RandomizedSearchCVwerden die Ränge, die NaN-Scores entsprechen, alle auf den maximal möglichen Rang gesetzt. #24543 von Guillaume Lemaitre.
sklearn.multioutput#
Merkmal Hinzugefügte boolesche Flag
verbosezu den Klassen:multioutput.ClassifierChainundmultioutput.RegressorChain. #23977 von Eric Fiegel, Chiara Marmo, Lucy Liu, und Guillaume Lemaitre.
sklearn.naive_bayes#
Merkmal Fügt die Methode
predict_joint_log_probazu allen Naive Bayes-Klassifikatoren hinzu. #23683 von Andrey Melnik.Erweiterung Ein neuer Parameter
force_alphawurde zunaive_bayes.BernoulliNB,naive_bayes.ComplementNB,naive_bayes.CategoricalNBundnaive_bayes.MultinomialNBhinzugefügt, der es dem Benutzer ermöglicht, den Parameter alpha auf eine sehr kleine Zahl größer oder gleich 0 zu setzen, die stattdessen zuvor automatisch auf1e-10geändert wurde. #16747 von @arka204, #18805 von @hongshaoyang, #22269 von Meekail Zain.
sklearn.neighbors#
Funktion Fügt die neue Funktion
neighbors.sort_graph_by_row_valueshinzu, um einen CSR-Sparse-Graphen so zu sortieren, dass jede Zeile mit steigenden Werten gespeichert wird. Dies ist nützlich, um die Effizienz bei der Verwendung von vordefinierten Sparse-Distanzmatrizen in verschiedenen Schätzern zu verbessern und eineEfficiencyWarningzu vermeiden. #23139 von Tom Dupre la Tour.Effizienz
neighbors.NearestCentroidist schneller und benötigt weniger Speicher, da er die Caches der CPUs besser nutzt, um Vorhersagen zu berechnen. #24645 von Olivier Grisel.Erweiterung Der Bandbreitenparameter von
neighbors.KernelDensityakzeptiert nun die Definition über die Schätzmethoden von Scott und Silverman. #10468 von Ruben und #22993 von Jovan Stojanovic.Erweiterung
neighbors.NeighborsBaseakzeptiert nun die Minkowski-Semimetrik (d.h. wenn \(0 < p < 1\) fürmetric="minkowski") füralgorithm="auto"oderalgorithm="brute". #24750 von Rudresh VeerkhareKorrektur
neighbors.NearestCentroidgibt nun eine informative Fehlermeldung zur Trainingszeit aus, anstatt mit einer Low-Level-Fehlermeldung zur Vorhersagezeit abzustürzen. #23874 von Juan Gomez.Korrektur Setzt
n_jobs=None(anstelle von1) standardmäßig fürneighbors.KNeighborsTransformerundneighbors.RadiusNeighborsTransformer. #24075 von Valentin Laurent.Erweiterung
neighbors.LocalOutlierFactorbewahrt nun den dtype fürnumpy.float32-Eingaben. #22665 von Julien Jerphanion.
sklearn.neural_network#
Korrektur
neural_network.MLPClassifierundneural_network.MLPRegressorexponieren immer die Parameterbest_loss_,validation_scores_undbest_validation_score_.best_loss_wird aufNonegesetzt, wennearly_stopping=True, währendvalidation_scores_undbest_validation_score_aufNonegesetzt werden, wennearly_stopping=False. #24683 von Guillaume Lemaitre.
sklearn.pipeline#
Erweiterung
pipeline.FeatureUnion.get_feature_names_outkann nun verwendet werden, wenn einer der Transformer inpipeline.FeatureUnion"passthrough"ist. #24058 von Diederik PerdokErweiterung Die Klasse
pipeline.FeatureUnionhat nun ein Attributnamed_transformerszum Zugriff auf Transformer nach Namen. #20331 von Christopher Flynn.
sklearn.preprocessing#
Erweiterung
preprocessing.FunctionTransformerversucht immer,n_features_in_undfeature_names_in_zu setzen, unabhängig vom Parametervalidate. #23993 von Thomas Fan.Korrektur
preprocessing.LabelEncoderkodiert NaNs intransformkorrekt. #22629 von Thomas Fan.API-Änderung Der Parameter
sparsevonpreprocessing.OneHotEncoderist nun veraltet und wird in Version 1.4 entfernt. Verwenden Sie stattdessensparse_output. #24412 von Rushil Desai.
sklearn.svm#
API-Änderung Das Attribut
class_weight_ist nun veraltet fürsvm.NuSVR,svm.SVR,svm.OneClassSVM. #22898 von Meekail Zain.
sklearn.tree#
Erweiterung
tree.plot_tree,tree.export_graphvizverwenden nun ein Kleinbuchstabenx[i]zur Darstellung des Merkmalsi. #23480 von Thomas Fan.
sklearn.utils#
Funktion Ein neues Modul stellt Entwicklungswerkzeuge zur Verfügung, um Schätzer (d.h.
utils.discovery.all_estimators), Anzeigen (d.h.utils.discovery.all_displays) und Funktionen (d.h.utils.discovery.all_functions) in scikit-learn zu entdecken. #21469 von Guillaume Lemaitre.Erweiterung
utils.extmath.randomized_svdakzeptiert nun ein Argumentlapack_svd_driver, um den Lapack-Treiber anzugeben, der in der internen deterministischen SVD des randomisierten SVD-Algorithmus verwendet wird. #20617 von Srinath KailasaErweiterung
utils.validation.column_or_1dakzeptiert nun einen Parameterdtypezur Angabe desy-dypes. #22629 von Thomas Fan.Erweiterung
utils.extmath.cartesianakzeptiert nun Arrays mit unterschiedlichendtypeund wird die Ausgabe auf den am weitesten erlaubtendtypeumwandeln. #25067 von Guillaume Lemaitre.Korrektur
utils.multiclass.type_of_targetbehandelt Sparse-Matrizen nun korrekt. #14862 von Léonard Binet.Korrektur Die HTML-Darstellung schlägt nun nicht mehr fehl, wenn eine Schätzerklasse als Wert in
get_paramsvorhanden ist. #24512 von Thomas Fan.Korrektur
utils.estimator_checks.check_estimatorberücksichtigt nun korrekt das Tagrequires_positive_X. #24667 von Thomas Fan.Korrektur
utils.check_arrayunterstützt nun Pandas Series mitpd.NA, indem eine bessere Fehlermeldung ausgegeben oder ein kompatiblesndarrayzurückgegeben wird. #25080 von Thomas Fan.API-Änderung Die zusätzlichen Schlüsselwortparameter von
utils.extmath.densitysind veraltet und werden in Version 1.4 entfernt. #24523 von Mia Bajic.
Code- und Dokumentationsbeitragende
Danke an alle, die seit Version 1.1 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter
2357juan, 3lLobo, Adam J. Stewart, Adam Kania, Adam Li, Aditya Anulekh, Admir Demiraj, adoublet, Adrin Jalali, Ahmedbgh, Aiko, Akshita Prasanth, Ala-Na, Alessandro Miola, Alex, Alexandr, Alexandre Perez-Lebel, Alex Buzenet, Ali H. El-Kassas, aman kumar, Amit Bera, András Simon, Andreas Grivas, Andreas Mueller, Andrew Wang, angela-maennel, Aniket Shirsat, Anthony22-dev, Antony Lee, anupam, Apostolos Tsetoglou, Aravindh R, Artur Hermano, Arturo Amor, as-90, ashah002, Ashwin Mathur, avm19, Azaria Gebremichael, b0rxington, Badr MOUFAD, Bardiya Ak, Bartłomiej Gońda, BdeGraaff, Benjamin Bossan, Benjamin Carter, berkecanrizai, Bernd Fritzke, Bhoomika, Biswaroop Mitra, Brandon TH Chen, Brett Cannon, Bsh, cache-missing, carlo, Carlos Ramos Carreño, ceh, chalulu, Changyao Chen, Charles Zablit, Chiara Marmo, Christian Lorentzen, Christian Ritter, Christian Veenhuis, christianwaldmann, Christine P. Chai, Claudio Salvatore Arcidiacono, Clément Verrier, crispinlogan, Da-Lan, DanGonite57, Daniela Fernandes, DanielGaerber, darioka, Darren Nguyen, davidblnc, david-cortes, David Gilbertson, David Poznik, Dayne, Dea María Léon, Denis, Dev Khant, Dhanshree Arora, Diadochokinetic, diederikwp, Dimitri Papadopoulos Orfanos, Dimitris Litsidis, drewhogg, Duarte OC, Dwight Lindquist, Eden Brekke, Edern, Edoardo Abati, Eleanore Denies, EliaSchiavon, Emir, ErmolaevPA, Fabrizio Damicelli, fcharras, Felipe Siola, Flynn, francesco-tuveri, Franck Charras, ftorres16, Gael Varoquaux, Geevarghese George, genvalen, GeorgiaMayDay, Gianr Lazz, Hleb Levitski, Glòria Macià Muñoz, Guillaume Lemaitre, Guillem García Subies, Guitared, gunesbayir, Haesun Park, Hansin Ahuja, Hao Chun Chang, Harsh Agrawal, harshit5674, hasan-yaman, henrymooresc, Henry Sorsky, Hristo Vrigazov, htsedebenham, humahn, i-aki-y, Ian Thompson, Ido M, Iglesys, Iliya Zhechev, Irene, ivanllt, Ivan Sedykh, Jack McIvor, jakirkham, JanFidor, Jason G, Jérémie du Boisberranger, Jiten Sidhpura, jkarolczak, João David, JohnathanPi, John Koumentis, John P, John Pangas, johnthagen, Jordan Fleming, Joshua Choo Yun Keat, Jovan Stojanovic, Juan Carlos Alfaro Jiménez, juanfe88, Juan Felipe Arias, JuliaSchoepp, Julien Jerphanion, jygerardy, ka00ri, Kanishk Sachdev, Kanissh, Kaushik Amar Das, Kendall, Kenneth Prabakaran, Kento Nozawa, kernc, Kevin Roice, Kian Eliasi, Kilian Kluge, Kilian Lieret, Kirandevraj, Kraig, krishna kumar, krishna vamsi, Kshitij Kapadni, Kshitij Mathur, Lauren Burke, Léonard Binet, lingyi1110, Lisa Casino, Logan Thomas, Loic Esteve, Luciano Mantovani, Lucy Liu, Maascha, Madhura Jayaratne, madinak, Maksym, Malte S. Kurz, Mansi Agrawal, Marco Edward Gorelli, Marco Wurps, Maren Westermann, Maria Telenczuk, Mario Kostelac, martin-kokos, Marvin Krawutschke, Masanori Kanazu, mathurinm, Matt Haberland, mauroantonioserrano, Max Halford, Maxi Marufo, maximeSaur, Maxim Smolskiy, Maxwell, m. bou, Meekail Zain, Mehgarg, mehmetcanakbay, Mia Bajić, Michael Flaks, Michael Hornstein, Michel de Ruiter, Michelle Paradis, Mikhail Iljin, Misa Ogura, Moritz Wilksch, mrastgoo, Naipawat Poolsawat, Naoise Holohan, Nass, Nathan Jacobi, Nawazish Alam, Nguyễn Văn Diễn, Nicola Fanelli, Nihal Thukarama Rao, Nikita Jare, nima10khodaveisi, Nima Sarajpoor, nitinramvelraj, NNLNR, npache, Nwanna-Joseph, Nymark Kho, o-holman, Olivier Grisel, Olle Lukowski, Omar Hassoun, Omar Salman, osman tamer, ouss1508, Oyindamola Olatunji, PAB, Pandata, partev, Paulo Sergio Soares, Petar Mlinarić, Peter Jansson, Peter Steinbach, Philipp Jung, Piet Brömmel, Pooja M, Pooja Subramaniam, priyam kakati, puhuk, Rachel Freeland, Rachit Keerti Das, Rafal Wojdyla, Raghuveer Bhat, Rahil Parikh, Ralf Gommers, ram vikram singh, Ravi Makhija, Rehan Guha, Reshama Shaikh, Richard Klima, Rob Crockett, Robert Hommes, Robert Juergens, Robin Lenz, Rocco Meli, Roman4oo, Ross Barnowski, Rowan Mankoo, Rudresh Veerkhare, Rushil Desai, Sabri Monaf Sabri, Safikh, Safiuddin Khaja, Salahuddin, Sam Adam Day, Sandra Yojana Meneses, Sandro Ephrem, Sangam, SangamSwadik, SANJAI_3, SarahRemus, Sashka Warner, SavkoMax, Scott Gigante, Scott Gustafson, Sean Atukorala, sec65, SELEE, seljaks, Shady el Gewily, Shane, shellyfung, Shinsuke Mori, Shiva chauhan, Shoaib Khan, Shogo Hida, Shrankhla Srivastava, Shuangchi He, Simon, sonnivs, Sortofamudkip, Srinath Kailasa, Stanislav (Stanley) Modrak, Stefanie Molin, stellalin7, Stéphane Collot, Steven Van Vaerenbergh, Steve Schmerler, Sven Stehle, Tabea Kossen, TheDevPanda, the-syd-sre, Thijs van Weezel, Thomas Bonald, Thomas Germer, Thomas J. Fan, Ti-Ion, Tim Head, Timofei Kornev, toastedyeast, Tobias Pitters, Tom Dupré la Tour, tomiock, Tom Mathews, Tom McTiernan, tspeng, Tyler Egashira, Valentin Laurent, Varun Jain, Vera Komeyer, Vicente Reyes-Puerta, Vinayak Mehta, Vincent M, Vishal, Vyom Pathak, wattai, wchathura, WEN Hao, William M, x110, Xiao Yuan, Xunius, yanhong-zhao-ef, Yusuf Raji, Z Adil Khwaja, zeeshan lone