Version 0.16#

Version 0.16.1#

14. April 2015

Änderungsprotokoll#

Fehlerbehebungen#

Version 0.16#

26. März 2015

Highlights#

  • Geschwindigkeitsverbesserungen (insbesondere in cluster.DBSCAN), reduzierter Speicherbedarf, Fehlerbehebungen und bessere Standardeinstellungen.

  • Multinomiale Logistische Regression und ein Pfadalgorithmus in linear_model.LogisticRegressionCV.

  • Out-of-Core-Lernen von PCA über decomposition.IncrementalPCA.

  • Wahrscheinlichkeitskalibrierung von Klassifikatoren mittels calibration.CalibratedClassifierCV.

  • Clustering-Methode cluster.Birch für große Datensätze.

  • Skalierbare ungefähre Suche nach nächsten Nachbarn mit Locality-Sensitive Hashing Forests in neighbors.LSHForest.

  • Verbesserte Fehlermeldungen und bessere Validierung bei Verwendung fehlerhafter Eingabedaten.

  • Robustere Integration mit Pandas DataFrames.

Änderungsprotokoll#

Neue Funktionen#

Verbesserungen#

Dokumentationsverbesserungen#

Fehlerbehebungen#

  • Meta-Estimators unterstützen jetzt Ducktyping für das Vorhandensein von decision_function, predict_proba und anderen Methoden. Dies behebt das Verhalten von grid_search.GridSearchCV, grid_search.RandomizedSearchCV, pipeline.Pipeline, feature_selection.RFE, feature_selection.RFECV bei Verschachtelung. Von Joel Nothman

  • Das Attribut scoring von Grid-Search- und Kreuzvalidierungsmethoden wird nicht mehr ignoriert, wenn ein grid_search.GridSearchCV als Basis-Estimator übergeben wird oder der Basis-Estimator kein predict hat.

  • Die Funktion hierarchical.ward_tree gibt nun die Kinder in der gleichen Reihenfolge für die strukturierte und unstrukturierte Version zurück. Von Matteo Visconti di Oleggio Castello.

  • feature_selection.RFECV behandelt nun korrekt Fälle, in denen step ungleich 1 ist. Von Nikolay Mayorov

  • Die decomposition.PCA macht nun die Entweisserung in ihrer inverse_transform rückgängig. Außerdem haben ihre components_ nun immer eine Einheitslänge. Von Michael Eickenberg.

  • Behebt unvollständigen Download des Datensatzes, wenn datasets.download_20newsgroups aufgerufen wird. Von Manoj Kumar.

  • Diverse Korrekturen am Gaußprozess-Subpaket von Vincent Dubourg und Jan Hendrik Metzen.

  • Der Aufruf von partial_fit mit class_weight=='auto' löst eine entsprechende Fehlermeldung aus und schlägt eine Umgehungslösung vor. Von Danny Sullivan.

  • RBFSampler mit gamma=g approximierte bisher rbf_kernel mit gamma=g/2.; die Definition von gamma ist nun konsistent, was Ihre Ergebnisse erheblich ändern kann, wenn Sie einen festen Wert verwenden. (Wenn Sie über gamma kreuzvalidiert haben, spielt das wahrscheinlich keine große Rolle.) Von Dougal Sutherland.

  • Pipeline-Objekt delegiert das Attribut classes_ an den zugrundeliegenden Estimator. Dies ermöglicht beispielsweise das Bagging eines Pipeline-Objekts. Von Arnaud Joly

  • neighbors.NearestCentroid verwendet nun den Median als Zentroid, wenn die Metrik auf manhattan gesetzt ist. Zuvor wurde der Mittelwert verwendet. Von Manoj Kumar

  • Behebt numerische Stabilitätsprobleme in linear_model.SGDClassifier und linear_model.SGDRegressor durch Clipping großer Gradienten und Sicherstellung, dass die Gewichtungs-Reskalierung immer positiv ist (bei großer l2-Regularisierung und großen Lernratenwerten). Von Olivier Grisel

  • Wenn compute_full_tree auf „auto“ gesetzt ist, wird der vollständige Baum bei einer hohen Anzahl von Clustern aufgebaut und bei einer niedrigen Anzahl von Clustern frühzeitig gestoppt, während das Verhalten in cluster.AgglomerativeClustering (und verwandten Klassen) umgekehrt sein sollte. Dies wurde behoben von Manoj Kumar

  • Behebt träge Zentrierung von Daten in linear_model.enet_path und linear_model.lasso_path. Sie war um eins zentriert. Sie wurde auf die Zentrierung um den Ursprung geändert. Von Manoj Kumar

  • Behebt die Handhabung von vorab berechneten Affinitätsmatrizen in cluster.AgglomerativeClustering bei Verwendung von Konnektivitätsbeschränkungen. Von Cathy Deng

  • Korrigiert die Handhabung von partial_fit für class_prior für sklearn.naive_bayes.MultinomialNB und sklearn.naive_bayes.BernoulliNB. Von Trevor Stephens.

  • Behebt einen Absturz in metrics.precision_recall_fscore_support bei Verwendung unsortierter labels im Multi-Label-Setting. Von Andreas Müller.

  • Vermeidet das Überspringen des ersten nächsten Nachbarn in den Methoden radius_neighbors, kneighbors, kneighbors_graph und radius_neighbors_graph in sklearn.neighbors.NearestNeighbors und Familie, wenn die Abfragedaten nicht mit den Fit-Daten übereinstimmen. Von Manoj Kumar.

  • Behebt die Log-Dichteberechnung in mixture.GMM mit gebundener Kovarianz. Von Will Dawson

  • Behebt einen Skalierungsfehler in feature_selection.SelectFdr, bei dem ein Faktor n_features fehlte. Von Andrew Tulloch

  • Behebt Division durch Null in neighbors.KNeighborsRegressor und verwandten Klassen bei Verwendung von Distanzgewichtung und identischen Datenpunkten. Von Garret-R.

  • Behebt Rundungsfehler bei nicht-positiv-definiten Kovarianzmatrizen in GMM. Von Alexis Mignon.

  • Behebt einen Fehler bei der Berechnung bedingter Wahrscheinlichkeiten in naive_bayes.BernoulliNB. Von Hanna Wallach.

  • Die Methode radius_neighbors von neighbors.NearestNeighbors gibt nun die Samples auf der Grenze für algorithm='brute' zurück. Von Yan Yi.

  • Kehrt das Vorzeichen von dual_coef_ in svm.SVC um, um es mit der Dokumentation und decision_function konsistent zu machen. Von Artem Sobolev.

  • Behebt die Handhabung von Gleichständen in isotonic.IsotonicRegression. Wir verwenden nun den gewichteten Durchschnitt der Ziele (sekundäre Methode). Von Andreas Müller und Michael Bommarito.

Zusammenfassung der API-Änderungen#

  • GridSearchCV und cross_val_score und andere Meta-Estimators konvertieren pandas DataFrames nicht mehr in Arrays, was DataFrame-spezifische Operationen in benutzerdefinierten Estimators ermöglicht.

  • multiclass.fit_ovr, multiclass.predict_ovr, predict_proba_ovr, multiclass.fit_ovo, multiclass.predict_ovo, multiclass.fit_ecoc und multiclass.predict_ecoc sind veraltet. Verwenden Sie stattdessen die zugrundeliegenden Estimators.

  • Nearest Neighbors Estimators haben früher beliebige Schlüsselwortargumente angenommen und diese an ihre Distanzmetrik weitergegeben. Dies wird in scikit-learn 0.18 nicht mehr unterstützt; verwenden Sie stattdessen das Argument metric_params.

  • Der Parameter n_jobs der Methode fit wurde in den Konstruktor des

    LinearRegression-Klasse verschoben.

  • Die Methode predict_proba von multiclass.OneVsRestClassifier gibt nun zwei Wahrscheinlichkeiten pro Sample im Multiklassenfall zurück; dies ist konsistent mit anderen Estimators und der Methodendokumentation, aber frühere Versionen gaben versehentlich nur die positive Wahrscheinlichkeit zurück. Behoben von Will Lamond und Lars Buitinck.

  • Ändert den Standardwert von precompute in linear_model.ElasticNet und linear_model.Lasso auf False. Das Setzen von precompute auf „auto“ erwies sich als langsamer, wenn n_samples > n_features war, da die Berechnung der Gram-Matrix rechenintensiv ist und den Vorteil des Fittens der Gram für nur ein Alpha überwiegt. precompute="auto" ist nun veraltet und wird in 0.18 entfernt. Von Manoj Kumar.

  • Exponiert die Option positive in linear_model.enet_path und linear_model.enet_path, die Koeffizienten auf positiv beschränkt. Von Manoj Kumar.

  • Benutzer sollten nun einen expliziten average-Parameter an sklearn.metrics.f1_score, sklearn.metrics.fbeta_score, sklearn.metrics.recall_score und sklearn.metrics.precision_score übergeben, wenn Multiklassen- oder Multilabel-Klassifizierung (d.h. nicht binär) durchgeführt wird. Von Joel Nothman.

  • scoring-Parameter für Kreuzvalidierung akzeptiert nun 'f1_micro', 'f1_macro' oder 'f1_weighted'. 'f1' ist nun nur noch für die binäre Klassifizierung. Ähnliche Änderungen gelten für 'precision' und 'recall'. Von Joel Nothman.

  • Die Parameter fit_intercept, normalize und return_models in linear_model.enet_path und linear_model.lasso_path wurden entfernt. Sie waren seit 0.14 veraltet.

  • Von nun an lösen alle Estimators konsistent NotFittedError aus, wenn eine der predict-ähnlichen Methoden aufgerufen wird, bevor das Modell trainiert wurde. Von Raghav RV.

  • Die Validierung von Eingabedaten wurde für eine konsistentere Eingabevalidierung überarbeitet. Die Funktion check_arrays wurde durch check_array und check_X_y ersetzt. Von Andreas Müller.

  • Erlaubt X=None in den Methoden radius_neighbors, kneighbors, kneighbors_graph und radius_neighbors_graph in sklearn.neighbors.NearestNeighbors und Familie. Wenn auf None gesetzt, vermeidet dies für jedes Sample, das Sample selbst als ersten nächsten Nachbarn zu setzen. Von Manoj Kumar.

  • Fügt den Parameter include_self in neighbors.kneighbors_graph und neighbors.radius_neighbors_graph hinzu, der vom Benutzer explizit gesetzt werden muss. Wenn auf True gesetzt, wird das Sample selbst als erster nächster Nachbar betrachtet.

  • Der Parameter thresh ist zugunsten des neuen Parameters tol in GMM, DPGMM und VBGMM veraltet. Siehe Abschnitt Enhancements für Details. Von Hervé Bredin.

  • Estimators behandeln Eingaben mit dtype object als numerisch, wenn möglich. Von Andreas Müller

  • Estimators lösen nun konsistent ValueError aus, wenn sie auf leere Daten trainiert werden (weniger als 1 Sample oder weniger als 1 Feature für 2D-Input). Von Olivier Grisel.

  • Die Option shuffle von linear_model.SGDClassifier, linear_model.SGDRegressor, linear_model.Perceptron, linear_model.PassiveAggressiveClassifier und linear_model.PassiveAggressiveRegressor steht nun standardmäßig auf True.

  • cluster.DBSCAN verwendet nun eine deterministische Initialisierung. Der Parameter random_state ist veraltet. Von Erich Schubert.

Code-Mitarbeiter#

A. Flaxman, Aaron Schumacher, Aaron Staple, abhishek thakur, Akshay, akshayah3, Aldrian Obaja, Alexander Fabisch, Alexandre Gramfort, Alexis Mignon, Anders Aagaard, Andreas Mueller, Andreas van Cranenburgh, Andrew Tulloch, Andrew Walker, Antony Lee, Arnaud Joly, banilo, Barmaley.exe, Ben Davies, Benedikt Koehler, bhsu, Boris Feld, Borja Ayerdi, Boyuan Deng, Brent Pedersen, Brian Wignall, Brooke Osborn, Calvin Giles, Cathy Deng, Celeo, cgohlke, chebee7i, Christian Stade-Schuldt, Christof Angermueller, Chyi-Kwei Yau, CJ Carey, Clemens Brunner, Daiki Aminaka, Dan Blanchard, danfrankj, Danny Sullivan, David Fletcher, Dmitrijs Milajevs, Dougal J. Sutherland, Erich Schubert, Fabian Pedregosa, Florian Wilhelm, floydsoft, Félix-Antoine Fortin, Gael Varoquaux, Garrett-R, Gilles Louppe, gpassino, gwulfs, Hampus Bengtsson, Hamzeh Alsalhi, Hanna Wallach, Harry Mavroforakis, Hasil Sharma, Helder, Herve Bredin, Hsiang-Fu Yu, Hugues SALAMIN, Ian Gilmore, Ilambharathi Kanniah, Imran Haque, isms, Jake VanderPlas, Jan Dlabal, Jan Hendrik Metzen, Jatin Shah, Javier López Peña, jdcaballero, Jean Kossaifi, Jeff Hammerbacher, Joel Nothman, Jonathan Helmus, Joseph, Kaicheng Zhang, Kevin Markham, Kyle Beauchamp, Kyle Kastner, Lagacherie Matthieu, Lars Buitinck, Laurent Direr, leepei, Loic Esteve, Luis Pedro Coelho, Lukas Michelbacher, maheshakya, Manoj Kumar, Manuel, Mario Michael Krell, Martin, Martin Billinger, Martin Ku, Mateusz Susik, Mathieu Blondel, Matt Pico, Matt Terry, Matteo Visconti dOC, Matti Lyra, Max Linke, Mehdi Cherti, Michael Bommarito, Michael Eickenberg, Michal Romaniuk, MLG, mr.Shu, Nelle Varoquaux, Nicola Montecchio, Nicolas, Nikolay Mayorov, Noel Dawe, Okal Billy, Olivier Grisel, Óscar Nájera, Paolo Puggioni, Peter Prettenhofer, Pratap Vardhan, pvnguyen, queqichao, Rafael Carrascosa, Raghav R V, Rahiel Kasim, Randall Mason, Rob Zinkov, Robert Bradshaw, Saket Choudhary, Sam Nicholls, Samuel Charron, Saurabh Jha, sethdandridge, sinhrks, snuderl, Stefan Otte, Stefan van der Walt, Steve Tjoa, swu, Sylvain Zimmer, tejesh95, terrycojones, Thomas Delteil, Thomas Unterthiner, Tomas Kazmar, trevorstephens, tttthomasssss, Tzu-Ming Kuo, ugurcaliskan, ugurthemaster, Vinayak Mehta, Vincent Dubourg, Vjacheslav Murashkin, Vlad Niculae, wadawson, Wei Xue, Will Lamond, Wu Jiang, x0l, Xinfan Meng, Yan Yi, Yu-Chin