Version 0.21#

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.21.3#

30. Juli 2019

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.

  • Die Release Notes von v0.20.0 haben versäumt, eine Abwärtsinkompatibilität in metrics.make_scorer zu erwähnen, wenn needs_proba=True und y_true binär ist. Nun soll die Scorer-Funktion ein 1D- y_pred (d. h. Wahrscheinlichkeit der positiven Klasse, Form (n_samples,)) anstelle eines 2D- y_pred (d. h. Form (n_samples, 2)) akzeptieren.

Änderungsprotokoll#

sklearn.cluster#

sklearn.compose#

  • Fix Problem in compose.ColumnTransformer behoben, bei dem die Verwendung von DataFrames mit unterschiedlicher Spaltenreihenfolge zwischen fit und transform dazu führen konnte, dass falsche Spalten stillschweigend an den remainder Transformer übergeben wurden. #14237 von Andreas Schuderer <schuderer>.

sklearn.datasets#

sklearn.ensemble#

sklearn.impute#

sklearn.inspection#

  • Fix Fehler in inspection.plot_partial_dependence behoben, bei dem der Parameter target bei Multiklassenproblemen nicht berücksichtigt wurde. #14393 von Guillem G. Subies.

sklearn.linear_model#

sklearn.neighbors#

sklearn.tree#

  • Fix Fehler in tree.export_text behoben, wenn der Baum nur ein Merkmal hat und ein einzelner Merkmalsname übergeben wird. #14053 von Thomas Fan.

  • Fix Problem in tree.plot_tree behoben, bei dem Entropieberechnungen auch für das gini-Kriterium in DecisionTreeClassifiers angezeigt wurden. #13947 von Frank Hoang.

Version 0.21.2#

24. Mai 2019

Änderungsprotokoll#

sklearn.decomposition#

sklearn.metrics#

sklearn.preprocessing#

sklearn.utils.sparsefuncs#

Version 0.21.1#

17. Mai 2019

Dies ist ein Bugfix-Release, um hauptsächlich einige Paketprobleme in Version 0.21.0 zu beheben. Es enthält auch kleinere Dokumentationsverbesserungen und einige Bugfixes.

Änderungsprotokoll#

sklearn.inspection#

sklearn.metrics#

sklearn.neighbors#

Version 0.21.0#

Mai 2019

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.

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 Hauptfehler#

  • Der Standardwert von max_iter für linear_model.LogisticRegression ist für viele Solver bei dem Standardwert von tol zu gering. Insbesondere haben wir versehentlich den Standardwert max_iter für den liblinear-Solver von 1000 auf 100 Iterationen in #3591 (in Version 0.16 veröffentlicht) geändert. In einer zukünftigen Version hoffen wir, bessere Standardwerte für max_iter und tol heuristisch in Abhängigkeit vom Solver zu wählen (siehe #13317).

Änderungsprotokoll#

Die Unterstützung für Python 3.4 und darunter wurde offiziell eingestellt.

sklearn.base#

  • API-Änderung Der R2-Score, der beim Aufruf von score auf einem Regressor verwendet wird, verwendet ab Version 0.23 multioutput='uniform_average', um konsistent mit metrics.r2_score zu sein. Dies wird sich auf die score-Methode aller Multi-Output-Regressor auswirken (mit Ausnahme von multioutput.MultiOutputRegressor). #13157 von Hanmin Qin.

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.datasets#

sklearn.decomposition#

  • Verbesserung decomposition.KernelPCA hat nun deterministische Ausgaben (Lösung der Vorzeichenambiguität bei der Eigenwertzerlegung der Kernel-Matrix). #13241 von Aurélien Bellet.

  • Korrektur Ein Fehler in decomposition.KernelPCA wurde behoben, fit().transform() liefert nun das korrekte Ergebnis (dasselbe wie fit_transform()) im Falle von nicht entfernten Null-Eigenwerten (remove_zero_eig=False). fit_inverse_transform wurde ebenfalls beschleunigt, indem derselbe Trick wie bei fit_transform verwendet wurde, um die Transformation von X zu berechnen. #12143 von Sylvain Marié

  • Korrektur Ein Fehler in decomposition.NMF wurde behoben, bei dem init = 'nndsvd', init = 'nndsvda' und init = 'nndsvdar' erlaubt waren, wenn n_components < n_features statt n_components <= min(n_samples, n_features). #11650 von Hossein Pourbozorg und Zijie (ZJ) Poh.

  • API-Änderung Der Standardwert des Arguments init in decomposition.non_negative_factorization wird in Version 0.23 von random auf None geändert, um ihn mit decomposition.NMF konsistent zu machen. Eine FutureWarning wird ausgegeben, wenn der Standardwert verwendet wird. #12988 von Zijie (ZJ) Poh.

sklearn.discriminant_analysis#

sklearn.dummy#

sklearn.ensemble#

sklearn.externals#

  • API-Änderung externals.six wurde veraltet, da die Unterstützung für Python 2.7 eingestellt wurde. #12916 von Hanmin Qin.

sklearn.feature_extraction#

sklearn.impute#

  • Hauptfunktion impute.IterativeImputer hinzugefügt, eine Strategie zur Imputation fehlender Werte, indem jede Merkmal mit fehlenden Werten als Funktion anderer Merkmale in einer Round-Robin-Art modelliert wird. #8478 und #12177 von Sergey Feldman und Ben Lawson.

    Die API von IterativeImputer ist experimentell und kann ohne Deprecationszyklus geändert werden. Um sie zu verwenden, müssen Sie explizit enable_iterative_imputer importieren.

    >>> from sklearn.experimental import enable_iterative_imputer  # noqa
    >>> # now you can import normally from sklearn.impute
    >>> from sklearn.impute import IterativeImputer
    
  • Feature Die Klassen impute.SimpleImputer und impute.IterativeImputer haben einen neuen Parameter 'add_indicator', der einfach eine impute.MissingIndicator Transformation an die Ausgabe des Imputers anhängt. Dies ermöglicht einem prädiktiven Schätzer, das Fehlen von Werten zu berücksichtigen. #12583, #13601 von Danylo Baibak.

  • Fix In impute.MissingIndicator wird die implizite Verdichtung vermieden, indem eine Ausnahme ausgelöst wird, wenn die Eingabe spärlich ist und die Eigenschaft missing_values auf 0 gesetzt ist. #13240 von Bartosz Telenczuk.

  • Fix Zwei Fehler in impute.MissingIndicator behoben. Erstens wurden bei spärlichem X alle nicht-Null-Werte, die nicht fehlten, in den transformierten Daten explizit zu False. Zweitens wurden bei features='missing-only' alle Merkmale beibehalten, auch wenn gar keine fehlenden Werte vorhanden waren. #13562 von Jérémie du Boisberranger.

sklearn.inspection#

(neues Unterpaket)

  • Feature Partielle Abhängigkeitsplots (inspection.plot_partial_dependence) werden nun für jeden Regressor oder Klassifikator unterstützt (vorausgesetzt, sie haben eine predict_proba Methode). #12599 von Trevor Stephens und Nicolas Hug.

sklearn.isotonic#

sklearn.linear_model#

sklearn.manifold#

  • Efficiency manifold.trustworthiness verwendet nun einen invertierten Index anstelle einer np.where-Suche, um den Rang der Nachbarn im Eingaberaum zu finden. Dies verbessert die Effizienz insbesondere bei der Berechnung mit vielen Nachbarn und/oder kleinen Datensätzen. #9907 von William de Vazelhes.

sklearn.metrics#

sklearn.mixture#

sklearn.model_selection#

sklearn.multiclass#

  • Fix Behobene ein Problem in multiclass.OneVsOneClassifier.decision_function, bei dem der decision_function-Wert eines gegebenen Samples davon abhing, ob die decision_function allein auf dem Sample oder auf einem Batch, das dieses Sample enthielt, ausgewertet wurde, aufgrund der Skalierung in decision_function. #10440 von Jonathan Ohayon.

sklearn.multioutput#

sklearn.neighbors#

sklearn.neural_network#

sklearn.pipeline#

sklearn.preprocessing#

sklearn.svm#

  • Fix Behobene ein Problem in svm.SVC.decision_function wenn decision_function_shape='ovr'. Der decision_function-Wert eines gegebenen Samples unterschied sich davon, ob die decision_function allein auf dem Sample oder auf einem Batch mit demselben Sample ausgewertet wurde, aufgrund der in decision_function verwendeten Skalierung. #10440 von Jonathan Ohayon.

sklearn.tree#

sklearn.utils#

  • Feature utils.resample akzeptiert nun einen Parameter stratify für das Sampling gemäß Klassenverteilungen. #13549 von Nicolas Hug.

  • API Change Der Parameter warn_on_dtype von utils.check_array und utils.check_X_y wurde als veraltet markiert. Eine explizite Warnung für die Datentypkonvertierung in check_pairwise_arrays wurde hinzugefügt, wenn die übergebene metric eine paarweise boolesche Metrik ist. #13382 von Prathmesh Savale.

Mehrere Module#

  • Major Feature Die Methode __repr__() aller Schätzer (verwendet beim Aufrufen von print(estimator)) wurde komplett neu geschrieben und basiert auf der Pretty-Printing-Standardbibliothek von Python. Alle Parameter werden standardmäßig ausgegeben, dies kann jedoch mit der Option print_changed_only in sklearn.set_config geändert werden. #11705 von Nicolas Hug.

  • Major Feature Hinzugefügt: Estimator-Tags. Dies sind Annotationen von Schätzern, die eine programmatische Inspektion ihrer Fähigkeiten ermöglichen, wie z. B. Unterstützung für Sparse-Matrizen, unterstützte Ausgabetypen und unterstützte Methoden. Estimator-Tags bestimmen auch die Tests, die auf einem Schätzer ausgeführt werden, wenn check_estimator aufgerufen wird. Lesen Sie mehr im Benutzerhandbuch. #8022 von Andreas Müller.

  • Efficiency Speicherkopien werden bei der Umwandlung von Arrays in einen anderen Datentyp in mehreren Schätzern vermieden. #11973 von Roman Yurchak.

  • Fix Behobene ein Fehler in der Implementierung der Hilfsfunktion our_rand_r, die plattformübergreifend nicht konsistent funktionierte. #13422 von Madhura Parikh und Clément Doumouro.

Sonstiges#

  • Enhancement Joblib wird nicht mehr in scikit-learn mitgeliefert und wird zu einer Abhängigkeit. Die minimal unterstützte Version ist joblib 0.11, es wird jedoch dringend empfohlen, eine Version >= 0.13 zu verwenden. #13531 von Roman Yurchak.

Änderungen an Schätzerprüfungen#

Diese Änderungen betreffen hauptsächlich Bibliotheksentwickler.

  • Fügt check_fit_idempotent zu check_estimator hinzu, die prüft, ob bei doppeltem Aufruf von fit mit denselben Daten die Ausgabe von predict, predict_proba, transform und decision_function unverändert bleibt. #12328 von Nicolas Hug

  • Viele Prüfungen können nun mit Estimator Tags deaktiviert oder konfiguriert werden. #8022 von Andreas Müller.

Code- und Dokumentationsbeitragende

Vielen Dank an alle, die seit Version 0.20 zur Wartung und Verbesserung des Projekts beigetragen haben, darunter

adanhawth, Aditya Vyas, Adrin Jalali, Agamemnon Krasoulis, Albert Thomas, Alberto Torres, Alexandre Gramfort, amourav, Andrea Navarrete, Andreas Mueller, Andrew Nystrom, assiaben, Aurélien Bellet, Bartosz Michałowski, Bartosz Telenczuk, bauks, BenjaStudio, bertrandhaut, Bharat Raghunathan, brentfagan, Bryan Woods, Cat Chenal, Cheuk Ting Ho, Chris Choe, Christos Aridas, Clément Doumouro, Cole Smith, Connossor, Corey Levinson, Dan Ellis, Dan Stine, Danylo Baibak, daten-kieker, Denis Kataev, Didi Bar-Zev, Dillon Gardner, Dmitry Mottl, Dmitry Vukolov, Dougal J. Sutherland, Dowon, drewmjohnston, Dror Atariah, Edward J Brown, Ekaterina Krivich, Elizabeth Sander, Emmanuel Arias, Eric Chang, Eric Larson, Erich Schubert, esvhd, Falak, Feda Curic, Federico Caselli, Frank Hoang, Fibinse Xavier, Finn O’Shea, Gabriel Marzinotto, Gabriel Vacaliuc, Gabriele Calvo, Gael Varoquaux, GauravAhlawat, Giuseppe Vettigli, Greg Gandenberger, Guillaume Fournier, Guillaume Lemaitre, Gustavo De Mari Pereira, Hanmin Qin, haroldfox, hhu-luqi, Hunter McGushion, Ian Sanders, JackLangerman, Jacopo Notarstefano, jakirkham, James Bourbeau, Jan Koch, Jan S, janvanrijn, Jarrod Millman, jdethurens, jeremiedbb, JF, joaak, Joan Massich, Joel Nothman, Jonathan Ohayon, Joris Van den Bossche, josephsalmon, Jérémie Méhault, Katrin Leinweber, ken, kms15, Koen, Kossori Aruku, Krishna Sangeeth, Kuai Yu, Kulbear, Kushal Chauhan, Kyle Jackson, Lakshya KD, Leandro Hermida, Lee Yi Jie Joel, Lily Xiong, Lisa Sarah Thomas, Loic Esteve, louib, luk-f-a, maikia, mail-liam, Manimaran, Manuel López-Ibáñez, Marc Torrellas, Marco Gaido, Marco Gorelli, MarcoGorelli, marineLM, Mark Hannel, Martin Gubri, Masstran, mathurinm, Matthew Roeschke, Max Copeland, melsyt, mferrari3, Mickaël Schoentgen, Ming Li, Mitar, Mohammad Aftab, Mohammed AbdelAal, Mohammed Ibraheem, Muhammad Hassaan Rafique, mwestt, Naoya Iijima, Nicholas Smith, Nicolas Goix, Nicolas Hug, Nikolay Shebanov, Oleksandr Pavlyk, Oliver Rausch, Olivier Grisel, Orestis, Osman, Owen Flanagan, Paul Paczuski, Pavel Soriano, pavlos kallis, Pawel Sendyk, peay, Peter, Peter Cock, Peter Hausamann, Peter Marko, Pierre Glaser, pierretallotte, Pim de Haan, Piotr Szymański, Prabakaran Kumaresshan, Pradeep Reddy Raamana, Prathmesh Savale, Pulkit Maloo, Quentin Batista, Radostin Stoyanov, Raf Baluyot, Rajdeep Dua, Ramil Nugmanov, Raúl García Calvo, Rebekah Kim, Reshama Shaikh, Rohan Lekhwani, Rohan Singh, Rohan Varma, Rohit Kapoor, Roman Feldbauer, Roman Yurchak, Romuald M, Roopam Sharma, Ryan, Rüdiger Busche, Sam Waterbury, Samuel O. Ronsin, SandroCasagrande, Scott Cole, Scott Lowe, Sebastian Raschka, Shangwu Yao, Shivam Kotwalia, Shiyu Duan, smarie, Sriharsha Hatwar, Stephen Hoover, Stephen Tierney, Stéphane Couvreur, surgan12, SylvainLan, TakingItCasual, Tashay Green, thibsej, Thomas Fan, Thomas J Fan, Thomas Moreau, Tom Dupré la Tour, Tommy, Tulio Casagrande, Umar Farouk Umar, Utkarsh Upadhyay, Vinayak Mehta, Vishaal Kapoor, Vivek Kumar, Vlad Niculae, vqean3, Wenhao Zhang, William de Vazelhes, xhan, Xing Han Lu, xinyuliu12, Yaroslav Halchenko, Zach Griffith, Zach Miller, Zayd Hammoudeh, Zhuyi Xue, Zijie (ZJ) Poh, ^__^