Version 0.19#

Version 0.19.2#

Juli 2018

Diese Veröffentlichung dient ausschließlich der Unterstützung von Python 3.7.

Version 0.19.1#

23. Oktober 2017

Dies ist eine Bugfix-Veröffentlichung mit einigen kleineren Verbesserungen an der Dokumentation und Erweiterungen von Funktionen, die in 0.19.0 veröffentlicht wurden.

Beachten Sie, dass es in dieser Version zu geringfügigen Unterschieden in der TSNE-Ausgabe kommen kann (aufgrund von #9623), wenn mehrere Stichproben die gleiche Entfernung zu einer Stichprobe haben.

Änderungsprotokoll#

API-Änderungen#

  • Die Ergänzung von metrics.ndcg_score und metrics.dcg_score, die irrtümlich in Version 0.19.0 übernommen wurden, wurde rückgängig gemacht. Die Implementierungen waren fehlerhaft und nicht dokumentiert.

  • return_train_score, das zu model_selection.GridSearchCV, model_selection.RandomizedSearchCV und model_selection.cross_validate in Version 0.19.0 hinzugefügt wurde, wird seinen Standardwert von True auf False in Version 0.21 ändern. Wir haben festgestellt, dass die Berechnung der Trainingsbewertung in einigen Fällen erhebliche Auswirkungen auf die Laufzeit der Kreuzvalidierung haben kann. Benutzer sollten return_train_score explizit auf False setzen, wenn Vorhersage- oder Bewertungsfunktionen langsam sind und sich nachteilig auf die CV-Laufzeit auswirken, oder auf True, wenn sie die berechneten Bewertungen verwenden möchten. #9677 von Kumar Ashutosh und Joel Nothman.

  • correlation_models und regression_models aus der Legacy-Implementierung von Gaußschen Prozessen wurden nachträglich als veraltet markiert. #9717 von Kumar Ashutosh.

Fehlerbehebungen#

Regressionen in 0.19.0 in 0.19.1 behoben

Verbesserungen#

Code- und Dokumentationsmitwirkende#

Mit Dank an

Joel Nothman, Loic Esteve, Andreas Mueller, Kumar Ashutosh, Vrishank Bhardwaj, Hanmin Qin, Rasul Kerimov, James Bourbeau, Nagarjuna Kumar, Nathaniel Saul, Olivier Grisel, Roman Yurchak, Reiichiro Nakano, Sachin Kelkar, Sam Steingold, Yaroslav Halchenko, diegodlh, felix, goncalo-rodrigues, jkleint, oliblum90, pasbi, Anthony Gitter, Ben Lawson, Charlie Brummitt, Didi Bar-Zev, Gael Varoquaux, Joan Massich, Joris Van den Bossche, nielsenmarkus11

Version 0.19#

12. August 2017

Highlights#

Wir freuen uns, eine Reihe großartiger neuer Funktionen vorstellen zu können, darunter neighbors.LocalOutlierFactor zur Anomalieerkennung, preprocessing.QuantileTransformer für robuste Merkmals transformationen und den Meta-Estimator multioutput.ClassifierChain, um Abhängigkeiten zwischen Klassen bei Multilabel-Problemen einfach zu berücksichtigen. Wir haben einige neue Algorithmen in bestehenden Schätzern, wie z. B. Multiplikative Updates in decomposition.NMF und multinomiale linear_model.LogisticRegression mit L1-Verlust (verwenden Sie solver='saga').

Kreuzvalidierung kann nun Ergebnisse von mehreren Metrikauswertungen zurückgeben. Die neue Funktion model_selection.cross_validate kann viele Bewertungen auf Testdaten sowie Leistung auf dem Trainingssatz und Zeitmessungen zurückgeben. Wir haben die Parameter scoring und refit für Grid/Randomized Search erweitert, um mehrere Metriken zu handhaben.

Sie können auch schneller lernen. Zum Beispiel macht die neue Option zum Caching von Transformationen in pipeline.Pipeline Grid-Suche über Pipelines mit langsamen Transformationen deutlich effizienter. Und Sie können schneller vorhersagen: Wenn Sie sicher sind, was Sie tun, können Sie die Überprüfung, ob die Eingabe endlich ist, mit config_context deaktivieren.

Wir haben auch einige wichtige Korrekturen vorgenommen. Wir haben einen langwierigen Implementierungsfehler in metrics.average_precision_score behoben, seien Sie daher vorsichtig mit früheren Ergebnissen, die von dieser Funktion berichtet wurden. Eine Reihe von Fehlern in der Implementierung von manifold.TSNE wurden behoben, insbesondere in der Standard-Barnes-Hut-Approximation. semi_supervised.LabelSpreading und semi_supervised.LabelPropagation wurden erheblich korrigiert. LabelPropagation war zuvor fehlerhaft. LabelSpreading sollte nun seinen Alpha-Parameter korrekt berücksichtigen.

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.)

Änderungsprotokoll#

Neue Funktionen#

Klassifikatoren und Regressoren

Andere Schätzer

Modellauswahl und -bewertung

Verschiedenes

  • Die Überprüfung, ob Eingabedaten keine NaN- oder Inf-Werte enthalten, kann nun mit config_context unterdrückt werden, auf eigene Gefahr. Dies spart Laufzeit und kann besonders für die Vorhersagezeit nützlich sein. #7548 von Joel Nothman.

  • Test hinzugefügt, um sicherzustellen, dass die Parameterliste in Docstrings mit der Signatur von Funktion/Klasse übereinstimmt. #9206 von Alexandre Gramfort und Raghav RV.

Erweiterungen#

Bäume und Ensembles

Lineare, kernelisierte und verwandte Modelle

Andere Prädiktoren

Dekompression, Manifold Learning und Clustering

Vorbereitung und Merkmalsauswahl

Modellbewertung und Meta-Estimators

Metriken

Verschiedenes

Fehlerbehebungen#

Bäume und Ensembles

Lineare, kernelisierte und verwandte Modelle

Andere Prädiktoren

Dekompression, Manifold Learning und Clustering

Vorbereitung und Merkmalsauswahl

Modellbewertung und Meta-Estimators

Metriken

Verschiedenes

Zusammenfassung der API-Änderungen#

Bäume und Ensembles

  • Gradient Boosting Basismodelle sind keine Estimators mehr. Von Andreas Müller.

  • Alle baumbasierten Estimators akzeptieren nun einen Parameter min_impurity_decrease anstelle von min_impurity_split, der nun als veraltet gilt. min_impurity_decrease hilft, die Aufteilung von Knoten zu stoppen, bei denen die gewichtete Verringerung der Unreinheit durch die Aufteilung nicht mehr mindestens min_impurity_decrease beträgt. #8449 von Raghav RV.

Lineare, kernelisierte und verwandte Modelle

Andere Prädiktoren

Dekompression, Manifold Learning und Clustering

Vorbereitung und Merkmalsauswahl

Modellbewertung und Meta-Estimators

  • Der Konstruktoreingang fit_params für model_selection.GridSearchCV und model_selection.RandomizedSearchCV ist veraltet und wird durch die Übergabe von Schlüsselwortparametern an die fit-Methoden dieser Klassen ersetzt. Datenabhängige Parameter, die für das Modelltraining benötigt werden, sollten als Schlüsselwortargumente an fit übergeben werden. Die Einhaltung dieser Konvention ermöglicht die Verwendung der Hyperparameter-Auswahlklassen mit Werkzeugen wie model_selection.cross_val_predict. #2879 von Stephen Hoover.

  • In Version 0.21 wird sich das Standardverhalten von Splittern, die die Parameter test_size und train_size verwenden, ändern. Wenn nur train_size angegeben wird, wird test_size als der Rest behandelt. #7459 von Nelson Liu.

  • multiclass.OneVsRestClassifier verfügt nun über die Methoden partial_fit, decision_function und predict_proba, aber nur, wenn der zugrunde liegende Schätzer dies ebenfalls tut. #7812 von Andreas Müller und Mikhail Korobov.

  • multiclass.OneVsRestClassifier verfügt nun über eine Methode partial_fit, aber nur, wenn der zugrunde liegende Schätzer dies ebenfalls tut. Von Andreas Müller.

  • Die Ausgabeform der decision_function für binäre Klassifizierung in multiclass.OneVsRestClassifier und multiclass.OneVsOneClassifier ist nun (n_samples,), um den Konventionen von scikit-learn zu entsprechen. #9100 von Andreas Müller.

  • Die Funktion multioutput.MultiOutputClassifier.predict_proba gab früher ein 3D-Array (n_samples, n_classes, n_outputs) zurück. In Fällen, in denen verschiedene Zielspalten unterschiedliche Klassenzahlen hatten, wurde ein ValueError ausgelöst, wenn versucht wurde, Matrizen mit unterschiedlichen Dimensionen zu stapeln. Diese Funktion gibt nun eine Liste von Arrays zurück, wobei die Länge der Liste n_outputs ist und jedes Array für diesen speziellen Output (n_samples, n_classes) ist. #8093 von Peter Bull.

  • Das Attribut named_steps dict in pipeline.Pipeline wurde durch utils.Bunch ersetzt, um die Tab-Vervollständigung in interaktiven Umgebungen zu ermöglichen. Im Falle eines Konflikts zwischen den Werten von named_steps und dem dict-Attribut wird das dict-Verhalten priorisiert. #8481 von Herilalaina Rakotoarison.

Verschiedenes

  • Der Parameter y in transform und inverse_transform ist veraltet. Die Methode sollte keinen y-Parameter akzeptieren, da dieser zur Vorhersagezeit verwendet wird. #8174 von Tahar Zanouda, Alexandre Gramfort und Raghav RV.

  • SciPy >= 0.13.3 und NumPy >= 1.8.2 sind nun die minimal unterstützten Versionen für scikit-learn. Die folgenden zurückportierten Funktionen in sklearn.utils wurden entsprechend entfernt oder als veraltet markiert. #8854 und #8874 von Naoya Kanai

  • Die Parameter store_covariances und covariances_ von discriminant_analysis.QuadraticDiscriminantAnalysis wurden in store_covariance und covariance_ umbenannt, um mit den entsprechenden Parameternamen von discriminant_analysis.LinearDiscriminantAnalysis übereinzustimmen. Sie werden in Version 0.21 entfernt. #7998 von Jiacheng

    Entfernt in 0.19

    • utils.fixes.argpartition

    • utils.fixes.array_equal

    • utils.fixes.astype

    • utils.fixes.bincount

    • utils.fixes.expit

    • utils.fixes.frombuffer_empty

    • utils.fixes.in1d

    • utils.fixes.norm

    • utils.fixes.rankdata

    • utils.fixes.safe_copy

    Veraltet in 0.19, wird in 0.21 entfernt

    • utils.arpack.eigs

    • utils.arpack.eigsh

    • utils.arpack.svds

    • utils.extmath.fast_dot

    • utils.extmath.logsumexp

    • utils.extmath.norm

    • utils.extmath.pinvh

    • utils.graph.graph_laplacian

    • utils.random.choice

    • utils.sparsetools.connected_components

    • utils.stats.rankdata

  • Schätzer mit beiden Methoden decision_function und predict_proba müssen nun eine monotone Beziehung zwischen ihnen haben. Die Methode check_decision_proba_consistency wurde in utils.estimator_checks hinzugefügt, um deren Konsistenz zu überprüfen. #7578 von Shubham Bhardwaj

  • Alle Prüfungen in utils.estimator_checks, insbesondere utils.estimator_checks.check_estimator, akzeptieren nun Schätzerinstanzen. Die meisten anderen Prüfungen akzeptieren keine Schätzerklassen mehr. #9019 von Andreas Müller.

  • Es wird sichergestellt, dass Attribute von Schätzern, die mit _ enden, nicht im Konstruktor, sondern erst in der fit-Methode gesetzt werden. Insbesondere haben Ensemble-Schätzer (die von ensemble.BaseEnsemble abgeleitet sind) self.estimators_ erst nach fit verfügbar. #7464 von Lars Buitinck und Loic Esteve.

Code- und Dokumentationsbeitragende#

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

Joel Nothman, Loic Esteve, Andreas Mueller, Guillaume Lemaitre, Olivier Grisel, Hanmin Qin, Raghav RV, Alexandre Gramfort, themrmax, Aman Dalmia, Gael Varoquaux, Naoya Kanai, Tom Dupré la Tour, Rishikesh, Nelson Liu, Taehoon Lee, Nelle Varoquaux, Aashil, Mikhail Korobov, Sebastin Santy, Joan Massich, Roman Yurchak, RAKOTOARISON Herilalaina, Thierry Guillemot, Alexandre Abadie, Carol Willing, Balakumaran Manoharan, Josh Karnofsky, Vlad Niculae, Utkarsh Upadhyay, Dmitry Petrov, Minghui Liu, Srivatsan, Vincent Pham, Albert Thomas, Jake VanderPlas, Attractadore, JC Liu, alexandercbooth, chkoar, Óscar Nájera, Aarshay Jain, Kyle Gilliam, Ramana Subramanyam, CJ Carey, Clement Joudet, David Robles, He Chen, Joris Van den Bossche, Karan Desai, Katie Luangkote, Leland McInnes, Maniteja Nandana, Michele Lacchia, Sergei Lebedev, Shubham Bhardwaj, akshay0724, omtcyfz, rickiepark, waterponey, Vathsala Achar, jbDelafosse, Ralf Gommers, Ekaterina Krivich, Vivek Kumar, Ishank Gulati, Dave Elliott, ldirer, Reiichiro Nakano, Levi John Wolf, Mathieu Blondel, Sid Kapur, Dougal J. Sutherland, midinas, mikebenfield, Sourav Singh, Aseem Bansal, Ibraim Ganiev, Stephen Hoover, AishwaryaRK, Steven C. Howell, Gary Foreman, Neeraj Gangwar, Tahar, Jon Crall, dokato, Kathy Chen, ferria, Thomas Moreau, Charlie Brummitt, Nicolas Goix, Adam Kleczewski, Sam Shleifer, Nikita Singh, Basil Beirouti, Giorgio Patrini, Manoj Kumar, Rafael Possas, James Bourbeau, James A. Bednar, Janine Harper, Jaye, Jean Helie, Jeremy Steward, Artsiom, John Wei, Jonathan LIgo, Jonathan Rahn, seanpwilliams, Arthur Mensch, Josh Levy, Julian Kuhlmann, Julien Aubert, Jörn Hees, Kai, shivamgargsya, Kat Hempstalk, Kaushik Lakshmikanth, Kennedy, Kenneth Lyons, Kenneth Myers, Kevin Yap, Kirill Bobyrev, Konstantin Podshumok, Arthur Imbert, Lee Murray, toastedcornflakes, Lera, Li Li, Arthur Douillard, Mainak Jas, tobycheese, Manraj Singh, Manvendra Singh, Marc Meketon, MarcoFalke, Matthew Brett, Matthias Gilch, Mehul Ahuja, Melanie Goetz, Meng, Peng, Michael Dezube, Michal Baumgartner, vibrantabhi19, Artem Golubin, Milen Paskov, Antonin Carette, Morikko, MrMjauh, NALEPA Emmanuel, Namiya, Antoine Wendlinger, Narine Kokhlikyan, NarineK, Nate Guerin, Angus Williams, Ang Lu, Nicole Vavrova, Nitish Pandey, Okhlopkov Daniil Olegovich, Andy Craze, Om Prakash, Parminder Singh, Patrick Carlson, Patrick Pei, Paul Ganssle, Paulo Haddad, Paweł Lorek, Peng Yu, Pete Bachant, Peter Bull, Peter Csizsek, Peter Wang, Pieter Arthur de Jong, Ping-Yao, Chang, Preston Parry, Puneet Mathur, Quentin Hibon, Andrew Smith, Andrew Jackson, 1kastner, Rameshwar Bhaskaran, Rebecca Bilbro, Remi Rampin, Andrea Esuli, Rob Hall, Robert Bradshaw, Romain Brault, Aman Pratik, Ruifeng Zheng, Russell Smith, Sachin Agarwal, Sailesh Choyal, Samson Tan, Samuël Weber, Sarah Brown, Sebastian Pölsterl, Sebastian Raschka, Sebastian Saeger, Alyssa Batula, Abhyuday Pratap Singh, Sergey Feldman, Sergul Aydore, Sharan Yalburgi, willduan, Siddharth Gupta, Sri Krishna, Almer, Stijn Tonk, Allen Riddell, Theofilos Papapanagiotou, Alison, Alexis Mignon, Tommy Boucher, Tommy Löfstedt, Toshihiro Kamishima, Tyler Folkman, Tyler Lanigan, Alexander Junge, Varun Shenoy, Victor Poughon, Vilhelm von Ehrenheim, Aleksandr Sandrovskii, Alan Yee, Vlasios Vasileiou, Warut Vijitbenjaronk, Yang Zhang, Yaroslav Halchenko, Yichuan Liu, Yuichi Fujikawa, affanv14, aivision2020, xor, andreh7, brady salz, campustrampus, Agamemnon Krasoulis, ditenberg, elena-sharova, filipj8, fukatani, gedeck, guiniol, guoci, hakaa1, hongkahjun, i-am-xhy, jakirkham, jaroslaw-weber, jayzed82, jeroko, jmontoyam, jonathan.striebel, josephsalmon, jschendel, leereeves, martin-hahn, mathurinm, mehak-sachdeva, mlewis1729, mlliou112, mthorrell, ndingwall, nuffe, yangarbiter, plagree, pldtc325, Breno Freitas, Brett Olsen, Brian A. Alfano, Brian Burns, polmauri, Brandon Carter, Charlton Austin, Chayant T15h, Chinmaya Pancholi, Christian Danielsen, Chung Yen, Chyi-Kwei Yau, pravarmahajan, DOHMATOB Elvis, Daniel LeJeune, Daniel Hnyk, Darius Morawiec, David DeTomaso, David Gasquez, David Haberthür, David Heryanto, David Kirkby, David Nicholson, rashchedrin, Deborah Gertrude Digges, Denis Engemann, Devansh D, Dickson, Bob Baxley, Don86, E. Lynch-Klarup, Ed Rogers, Elizabeth Ferriss, Ellen-Co2, Fabian Egli, Fang-Chieh Chou, Bing Tian Dai, Greg Stupp, Grzegorz Szpak, Bertrand Thirion, Hadrien Bertrand, Harizo Rajaona, zxcvbnius, Henry Lin, Holger Peters, Icyblade Dai, Igor Andriushchenko, Ilya, Isaac Laughlin, Iván Vallés, Aurélien Bellet, JPFrancoia, Jacob Schreiber, Asish Mahapatra