Version 0.15#
Version 0.15.2#
4. September 2014
Fehlerbehebungen#
Behobene Handhabung des Parameters
pder Minkowski-Distanz, der in Nachbarschaftsmodellen zuvor ignoriert wurde. Von Nikolay Mayorov.Behobene doppelte Alphas in
linear_model.LassoLarsmit frühem Stoppen bei 32-Bit-Python. Von Olivier Grisel und Fabian Pedregosa.Behobener Build unter Windows, wenn scikit-learn mit MSVC erstellt wird, während NumPy mit MinGW erstellt wird. Von Olivier Grisel und Federico Vaggi.
Behobener Fehler beim Array-Index-Überlauf im Koordinatenabstiegs-Solver. Von Gael Varoquaux.
Bessere Handhabung von Deprecationswarnungen von numpy 1.9. Von Gael Varoquaux.
Entfernte unnötige Datenkopie in
cluster.KMeans. Von Gael Varoquaux.Offenes Schließen von Dateien zur Vermeidung von
ResourceWarningsunter Python 3. Von Calvin Giles.Die
transformvondiscriminant_analysis.LinearDiscriminantAnalysisprojiziert nun die Eingabe auf die diskriminantesten Richtungen. Von Martin Billinger.Behobener potenzieller Überlauf in
_tree.safe_reallocvon Lars Buitinck.Leistungsoptimierung in
isotonic.IsotonicRegression. Von Robert Bradshaw.noseist keine Laufzeitabhängigkeit mehr für den Import vonsklearn, nur noch zum Ausführen der Tests. Von Joel Nothman.Viele Korrekturen an Dokumentation und Website von Joel Nothman, Lars Buitinck Matt Pico und anderen.
Version 0.15.1#
1. August 2014
Fehlerbehebungen#
cross_validation.cross_val_scoreverwendet nuncross_validation.KFoldanstelle voncross_validation.StratifiedKFoldbei Multi-Output-Klassifizierungsproblemen. Von Nikolay Mayorov.Unterstützung für unbekannte Labels in
preprocessing.LabelBinarizer, um das Standardverhalten von 0.14.1 zur Rückwärtskompatibilität wiederherzustellen. Von Hamzeh Alsalhi.Behobenes Stoppkriterium von
cluster.KMeans, das eine frühzeitige Konvergenzerkennung verhinderte. Von Edward Raff und Gael Varoquaux.Behobenes Verhalten von
multiclass.OneVsOneClassifierbei Stimmengleichheit auf Klassenebene durch Berechnung der korrekten Summe der Vorhersagewerte pro Klasse. Von Andreas Müller.cross_validation.cross_val_scoreundgrid_search.GridSearchCVakzeptieren nun Python-Listen als Eingabedaten. Dies ist besonders nützlich für Kreuzvalidierung und Modellauswahl von Textverarbeitungs-Pipelines. Von Andreas Müller.Behobene Eingabeüberprüfungen der meisten Schätzer, um Eingabedaten zu akzeptieren, die das NumPy
__array__-Protokoll implementieren. Dies ist der Fall fürpandas.Seriesundpandas.DataFramein neueren Versionen von pandas. Von Gael Varoquaux.Behobene Regression für
linear_model.SGDClassifiermitclass_weight="auto"auf Daten mit nicht zusammenhängenden Labels. Von Olivier Grisel.
Version 0.15#
15. Juli 2014
Highlights#
Viele Geschwindigkeits- und Speicherverbesserungen im gesamten Code
Enorme Geschwindigkeits- und Speicherverbesserungen für Random Forests (und Extra Trees), die auch besser von paralleler Berechnung profitieren.
Inkrementelles Training für
BernoulliRBMHinzugefügt wurde
cluster.AgglomerativeClusteringfür hierarchisches agglomeratives Clustering mit durchschnittlichem Linkage, vollständigem Linkage und Ward-Strategien.Hinzugefügt wurde
linear_model.RANSACRegressorfür robuste Regressionsmodelle.Hinzugefügt wurde Dimensionsreduktion mit
manifold.TSNE, die zur Visualisierung hochdimensionaler Daten verwendet werden kann.
Änderungsprotokoll#
Neue Funktionen#
Hinzugefügt wurden die Meta-Estimators
ensemble.BaggingClassifierundensemble.BaggingRegressorzum Ensembling beliebiger Basis-Estimators. Details und Beispiele finden Sie im Abschnitt Bagging des Benutzerhandbuchs. Von Gilles Louppe.Neuer unüberwachter Algorithmus zur Merkmalsauswahl
feature_selection.VarianceThreshold, von Lars Buitinck.Hinzugefügt wurde der Meta-Estimator
linear_model.RANSACRegressorfür das robuste Anpassen von Regressionsmodellen. Von Johannes Schönberger.Hinzugefügt wurde
cluster.AgglomerativeClusteringfür hierarchisches agglomeratives Clustering mit durchschnittlichem Linkage, vollständigem Linkage und Ward-Strategien, von Nelle Varoquaux und Gael Varoquaux.Kurzkonstruktoren
pipeline.make_pipelineundpipeline.make_unionwurden hinzugefügt von Lars Buitinck.Shuffle-Option für
cross_validation.StratifiedKFold. Von Jeffrey Blackburne.Inkrementelles Lernen (
partial_fit) für Gaussian Naive Bayes von Imran Haque.Hinzugefügt wurde
partial_fitzuBernoulliRBM. Von Danny Sullivan.Hinzugefügt wurde das Hilfsprogramm
learning_curve, um die Leistung in Bezug auf die Trainingsgröße zu verfolgen. Siehe Plotting Learning Curves and Checking Models’ Scalability. Von Alexander Fabisch.Option
positiveinLassoCVundElasticNetCVhinzugefügt. Von Brian Wignall und Alexandre Gramfort.Hinzugefügt wurden
linear_model.MultiTaskElasticNetCVundlinear_model.MultiTaskLassoCV. Von Manoj Kumar.Hinzugefügt wurde
manifold.TSNE. Von Alexander Fabisch.
Verbesserungen#
Unterstützung für Sparse-Eingaben zu den Meta-Estimators
ensemble.AdaBoostClassifierundensemble.AdaBoostRegressorhinzugefügt. Von Hamzeh Alsalhi.Speicherverbesserungen bei Entscheidungsbäumen, von Arnaud Joly.
Entscheidungsbäume können nun im Best-First-Verfahren aufgebaut werden, indem
max_leaf_nodesals Stoppkriterium verwendet wird. Der Baumcode wurde refaktoriert, um entweder einen Stack oder eine Prioritätswarteschlange für den Baumaufbau zu verwenden. Von Peter Prettenhofer und Gilles Louppe.Entscheidungsbäume können nun auf Fortran- und C-Stil-Arrays sowie nicht zusammenhängende Arrays ohne Kopie trainiert werden. Wenn das Eingabearray einen anderen dtype als
np.float32hat, wird eine Fortran-Stil-Kopie erstellt, da Fortran-Stil-Speicherlayouts Geschwindigkeitsvorteile bieten. Von Peter Prettenhofer und Gilles Louppe.Geschwindigkeitsverbesserung bei Regressionsbäumen durch Optimierung der Berechnung des mittleren quadratischen Fehlers. Dies führte zu einer Geschwindigkeitsverbesserung der Baum-, Forest- und Gradient-Boosting-Baum-Module. Von Arnaud Joly
Die Funktionen
img_to_graphundgrid_tographinsklearn.feature_extraction.imagegeben nunnp.ndarrayanstelle vonnp.matrixzurück, wennreturn_as=np.ndarrayangegeben ist. Weitere Informationen zur Kompatibilität finden Sie im Abschnitt Hinweise.Änderung der internen Speicherung von Entscheidungsbäumen zur Verwendung eines Struct-Arrays. Dies behob einige kleine Fehler, verbesserte den Code und sorgte für einen kleinen Geschwindigkeitsgewinn. Von Joel Nothman.
Reduzierung des Speicherverbrauchs und des Overheads beim Trainieren und Vorhersagen mit Wäldern von zufälligen Bäumen parallel mit
n_jobs != 1durch Nutzung des neuen Threading-Backends von joblib 0.8 und Freigabe des GIL im Cython-Code des Baumtrainings. Von Olivier Grisel und Gilles Louppe.Geschwindigkeitsverbesserung des Moduls
sklearn.ensemble.gradient_boosting. Von Gilles Louppe und Peter Prettenhofer.Verschiedene Verbesserungen am Modul
sklearn.ensemble.gradient_boosting: ein Argumentwarm_startzum Trainieren zusätzlicher Bäume, ein Argumentmax_leaf_nodeszum Trainieren von GBM-ähnlichen Bäumen, einmonitor-Argument zum Überwachen des Estimators während des Trainings und Refactoring des ausführlichen Codes. Von Peter Prettenhofer.Schnellere
sklearn.ensemble.ExtraTreesdurch Caching von Feature-Werten. Von Arnaud Joly.Schnellerer tiefenbasierter Baumaufbau-Algorithmus wie bei Entscheidungsbäumen, Random Forests, Extra Trees oder Gradient Tree Boosting (mit tiefenbasierter Wachstumsstrategie) durch Vermeidung von Splits auf konstanten Features in der Stichprobe. Von Arnaud Joly.
Hinzugefügt wurde der Vorab-Pruning-Parameter
min_weight_fraction_leaffür baumbasierte Methoden: der minimale gewichtete Anteil der Eingabestichproben, der für einen Blattknoten erforderlich ist. Von Noel Dawe.Hinzugefügt wurde
metrics.pairwise_distances_argmin_min, von Philippe Gervais.Hinzugefügt wurde die
predict-Methode zucluster.AffinityPropagationundcluster.MeanShift, von Mathieu Blondel.Vektor- und Matrixmultiplikationen wurden im gesamten Bibliotheksbestand optimiert von Denis Engemann und Alexandre Gramfort. Insbesondere sollten sie mit älteren NumPy-Versionen (vor 1.7.2) weniger Speicher verbrauchen.
Präzisions-Recall- und ROC-Beispiele verwenden nun
train_test_splitund enthalten weitere Erläuterungen, warum diese Metriken nützlich sind. Von Kyle KastnerDer Trainingsalgorithmus für
decomposition.NMFist schneller für Sparse-Matrizen und hat eine deutlich geringere Speicherkomplexität, was bedeutet, dass er gut auf große Datensätze skaliert. Von Lars Buitinck.Hinzugefügt wurde die Option
svd_methodmit Standardwert "randomized" zudecomposition.FactorAnalysis, um Speicher zu sparen und die Berechnung erheblich zu beschleunigen, von Denis Engemann und Alexandre Gramfort.cross_validation.StratifiedKFoldwurde so geändert, dass versucht wird, so viel wie möglich von der ursprünglichen Reihenfolge der Stichproben beizubehalten, um kein Overfitting bei Datensätzen mit einem nicht unerheblichen Maß an Stichprobenabhängigkeit zu verdecken. Von Daniel Nouri und Olivier Grisel.Hinzugefügt wurde Multi-Output-Unterstützung für
gaussian_process.GaussianProcessRegressorvon John Novak.Unterstützung für vorab berechnete Distanzmatrizen in Nachbarschafts-Estimators von Robert Layton und Joel Nothman.
Normberechnungen optimiert für NumPy 1.6 und spätere Versionen von Lars Buitinck. Insbesondere benötigt der k-Means-Algorithmus keine temporäre Datenstruktur mehr, die der Größe seiner Eingabe entspricht.
dummy.DummyClassifierkann nun verwendet werden, um einen konstanten Ausgabewert vorherzusagen. Von Manoj Kumar.dummy.DummyRegressorhat nun einenstrategy-Parameter, der die Vorhersage des Mittelwerts, des Medians des Trainingsdatensatzes oder eines konstanten Ausgabewerts ermöglicht. Von Maheshakya Wijewardena.Multi-Label-Klassifizierungsausgabe im Multi-Label-Indikatorformat wird nun von
metrics.roc_auc_scoreundmetrics.average_precision_scoreunterstützt, von Arnaud Joly.Signifikante Leistungsverbesserungen (mehr als 100-fache Beschleunigung für große Probleme) in
isotonic.IsotonicRegressionvon Andrew Tulloch.Geschwindigkeits- und Speicherverbesserungen des SGD-Algorithmus für lineare Modelle: Er verwendet nun Threads, keine separaten Prozesse mehr, wenn
n_jobs>1. Von Lars Buitinck.Grid Search und Kreuzvalidierung erlauben NaNs in den Eingabearrays, sodass Vorverarbeiter wie
preprocessing.Imputerinnerhalb der Kreuzvalidierungsschleife trainiert werden können, um potenziell verzerrte Ergebnisse zu vermeiden.Ridge-Regression kann nun mit Stichprobengewichten im Merkmalsraum umgehen (zuvor nur im Stichprobenraum). Von Michael Eickenberg. Beide Lösungen werden vom Cholesky-Solver bereitgestellt.
Mehrere Klassifizierungs- und Regressionsmetriken unterstützen nun gewichtete Stichproben mit dem neuen Argument
sample_weight:metrics.accuracy_score,metrics.zero_one_loss,metrics.precision_score,metrics.average_precision_score,metrics.f1_score,metrics.fbeta_score,metrics.recall_score,metrics.roc_auc_score,metrics.explained_variance_score,metrics.mean_squared_error,metrics.mean_absolute_error,metrics.r2_score. Von Noel Dawe.Beschleunigung des Stichprobengenerators
datasets.make_multilabel_classification. Von Joel Nothman.
Verbesserungen der Dokumentation#
Das Tutorial "Working With Text Data" wurde in den Tutorial-Bereich der Hauptdokumentation integriert. Enthält Übungen und Vorlagen für Tutorien-Präsentationen. Ursprüngliches Tutorial erstellt von mehreren Autoren, darunter Olivier Grisel, Lars Buitinck und viele andere. Integration des Tutorials in die scikit-learn-Dokumentation durch Jaques Grobler
Hinzugefügt wurde die Dokumentation Computational Performance. Diskussion und Beispiele zur Vorhersagelatenz / Durchsatz und verschiedene Faktoren, die die Geschwindigkeit beeinflussen. Zusätzliche Tipps für schnellere Modelle und die Wahl eines Kompromisses zwischen Geschwindigkeit und Vorhersagekraft. Von Eustache Diemert.
Fehlerbehebungen#
Fehlerbehebung in
decomposition.MiniBatchDictionaryLearning:partial_fitfunktionierte nicht richtig.Fehlerbehebung in
linear_model.stochastic_gradient:l1_ratiowurde als(1.0 - l1_ratio)verwendet.Fehlerbehebung in
multiclass.OneVsOneClassifiermit String-Labels.Fehlerbehebung in
LassoCVundElasticNetCV: Sie berechneten die Gram-Matrix nicht vor mitprecompute=Trueoderprecompute="auto"undn_samples > n_features. Von Manoj Kumar.Fehlerhafte Schätzung der Freiheitsgrade in
feature_selection.f_regressionbei nicht zentrierten Variaten. Von Virgile Fritsch.Fehlerhafte Race Condition bei paralleler Verarbeitung mit
pre_dispatch != "all"(z. B. incross_val_score). Von Olivier Grisel.Fehlerauslösung in
cluster.FeatureAgglomerationundcluster.WardAgglomeration, wenn keine Stichproben gegeben sind, anstatt eine bedeutunglose Clusterbildung zurückzugeben.Fehlerbehebung in
gradient_boosting.GradientBoostingRegressormitloss='huber':gammawurde möglicherweise nicht initialisiert.Fehlerhafte Feature-Wichtigkeiten, wie sie mit einem Wald von zufälligen Bäumen berechnet wurden, wenn mit
sample_weight != Noneund/oder mitbootstrap=Truetrainiert wurde. Von Gilles Louppe.
Zusammenfassung der API-Änderungen#
sklearn.hmmist veraltet. Die Entfernung ist für die Version 0.17 geplant.Die Verwendung von
covariance.EllipticEnvelopwurde nach der Deprecation entfernt. Bitte verwenden Sie stattdessencovariance.EllipticEnvelope.cluster.Wardist veraltet. Verwenden Sie stattdessencluster.AgglomerativeClustering.cluster.WardClusteringist veraltet. Verwenden Siestattdessen
cluster.AgglomerativeClustering.cross_validation.Bootstrapist veraltet.cross_validation.KFoldodercross_validation.ShuffleSplitwerden stattdessen empfohlen.Direkte Unterstützung für das Multi-Label-Format "Sequenz von Sequenzen" (oder Liste von Listen) ist veraltet. Zur Konvertierung in und aus dem unterstützten binären Indikator-Matrix-Format verwenden Sie
preprocessing.MultiLabelBinarizer. Von Joel Nothman.Hinzugefügt wurde die
score-Methode zudecomposition.PCA, analog zu probabilistischem PCA, und das ModellProbabilisticPCAwurde als veraltet erklärt, da seine Score-Implementierung nicht korrekt war. Die Berechnung nutzt nun auch das Lemma der Matrixinversion für schnellere Berechnungen. Von Alexandre Gramfort.Die
score-Methode vondecomposition.FactorAnalysisgibt nun die durchschnittliche Log-Likelihood der Stichproben zurück. Verwenden Siescore_samples, um die Log-Likelihood jeder Stichprobe zu erhalten. Von Alexandre Gramfort.Das Generieren von booleschen Masken (Einstellung
indices=False) aus Kreuzvalidierungsgeneratoren ist veraltet. Die Unterstützung für Masken wird in Version 0.17 entfernt. Die Generatoren haben seit Version 0.10 standardmäßig Arrays von Indizes erzeugt. Von Joel Nothman.1D-Arrays, die Strings mit
dtype=object(wie sie in Pandas verwendet werden) enthalten, werden nun als gültige Klassifizierungsziele betrachtet. Dies behebt eine Regression aus Version 0.13 in einigen Klassifikatoren. Von Joel Nothman.Falscher Korrekturwert für das Attribut
explained_variance_ratio_inRandomizedPCA. Von Alexandre Gramfort.Passen Sie die Alphas für jedes
l1_ratioanstelle vonmean_l1_ratioinlinear_model.ElasticNetCVundlinear_model.LassoCVan. Dies ändert die Form vonalphas_von(n_alphas,)zu(n_l1_ratio, n_alphas), wenn das angegebenel1_ratioein eindimensionales Array-ähnliches Objekt mit einer Länge größer als eins ist. Von Manoj Kumar.Beheben Sie
linear_model.ElasticNetCVundlinear_model.LassoCVbei der Anpassung des Achsenabschnitts und wenn die Eingabedaten spärlich sind. Das automatische Gitter von Alphas wurde nicht korrekt berechnet und die Skalierung mit normalize war falsch. Von Manoj Kumar.Korrigieren Sie die falsche maximale Anzahl der Merkmale, die bei jeder Aufteilung für Entscheidungsbäume, Random Forests und Gradient Tree Boosting gezogen werden (
max_features). Zuvor begann die Zählung der Anzahl der gezogenen Merkmale erst nach einem nicht konstanten Merkmal in der Aufteilung. Diese Fehlerbehebung wirkt sich auf die Rechen- und Generalisierungsleistung dieser Algorithmen bei Vorhandensein konstanter Merkmale aus. Um die vorherige Generalisierungsleistung wiederherzustellen, sollten Sie den Wert vonmax_featuresändern. Von Arnaud Joly.Korrigieren Sie die falsche maximale Anzahl der Merkmale, die bei jeder Aufteilung für
ensemble.ExtraTreesClassifierundensemble.ExtraTreesRegressorgezogen werden (max_features). Zuvor wurden nur nicht konstante Merkmale in der Aufteilung als gezogen gezählt. Jetzt werden konstante Merkmale als gezogen gezählt. Außerdem muss mindestens ein Merkmal nicht konstant sein, um eine gültige Aufteilung vorzunehmen. Diese Fehlerbehebung wirkt sich auf die Rechen- und Generalisierungsleistung von Extra Trees bei Vorhandensein konstanter Merkmale aus. Um die vorherige Generalisierungsleistung wiederherzustellen, sollten Sie den Wert vonmax_featuresändern. Von Arnaud Joly.Korrigieren Sie
utils.class_weight.compute_class_weight, wennclass_weight=="auto". Zuvor war dies für Eingaben mitdtype, die nicht ganzzahlig waren, fehlerhaft, und das zurückgegebene gewichtete Array war falsch. Von Manoj Kumar.Korrigieren Sie
cross_validation.Bootstrap, umValueErrorzurückzugeben, wennn_train + n_test > n. Von Ronald Phlypo.
Personen#
Liste der Mitwirkenden für Version 0.15 nach Anzahl der Commits.
312 Olivier Grisel
275 Lars Buitinck
221 Gael Varoquaux
148 Arnaud Joly
134 Johannes Schönberger
119 Gilles Louppe
113 Joel Nothman
111 Alexandre Gramfort
95 Jaques Grobler
89 Denis Engemann
83 Peter Prettenhofer
83 Alexander Fabisch
62 Mathieu Blondel
60 Eustache Diemert
60 Nelle Varoquaux
49 Michael Bommarito
45 Manoj-Kumar-S
28 Kyle Kastner
26 Andreas Mueller
22 Noel Dawe
21 Maheshakya Wijewardena
21 Brooke Osborn
21 Hamzeh Alsalhi
21 Jake VanderPlas
21 Philippe Gervais
19 Bala Subrahmanyam Varanasi
12 Ronald Phlypo
10 Mikhail Korobov
8 Thomas Unterthiner
8 Jeffrey Blackburne
8 eltermann
8 bwignall
7 Ankit Agrawal
7 CJ Carey
6 Daniel Nouri
6 Chen Liu
6 Michael Eickenberg
6 ugurthemaster
5 Aaron Schumacher
5 Baptiste Lagarde
5 Rajat Khanduja
5 Robert McGibbon
5 Sergio Pascual
4 Alexis Metaireau
4 Ignacio Rossi
4 Virgile Fritsch
4 Sebastian Säger
4 Ilambharathi Kanniah
4 sdenton4
4 Robert Layton
4 Alyssa
4 Amos Waterland
3 Andrew Tulloch
3 murad
3 Steven Maude
3 Karol Pysniak
3 Jacques Kvam
3 cgohlke
3 cjlin
3 Michael Becker
3 hamzeh
3 Eric Jacobsen
3 john collins
3 kaushik94
3 Erwin Marsi
2 csytracy
2 LK
2 Vlad Niculae
2 Laurent Direr
2 Erik Shilts
2 Raul Garreta
2 Yoshiki Vázquez Baeza
2 Yung Siang Liau
2 abhishek thakur
2 James Yu
2 Rohit Sivaprasad
2 Roland Szabo
2 amormachine
2 Alexis Mignon
2 Oscar Carlsson
2 Nantas Nardelli
2 jess010
2 kowalski87
2 Andrew Clegg
2 Federico Vaggi
2 Simon Frid
2 Félix-Antoine Fortin
1 Ralf Gommers
1 t-aft
1 Ronan Amicel
1 Rupesh Kumar Srivastava
1 Ryan Wang
1 Samuel Charron
1 Samuel St-Jean
1 Fabian Pedregosa
1 Skipper Seabold
1 Stefan Walk
1 Stefan van der Walt
1 Stephan Hoyer
1 Allen Riddell
1 Valentin Haenel
1 Vijay Ramesh
1 Will Myers
1 Yaroslav Halchenko
1 Yoni Ben-Meshulam
1 Yury V. Zaytsev
1 adrinjalali
1 ai8rahim
1 alemagnani
1 alex
1 benjamin wilson
1 chalmerlowe
1 dzikie drożdże
1 jamestwebber
1 matrixorz
1 popo
1 samuela
1 François Boulogne
1 Alexander Measure
1 Ethan White
1 Guilherme Trein
1 Hendrik Heuer
1 IvicaJovic
1 Jan Hendrik Metzen
1 Jean Michel Rouly
1 Eduardo Ariño de la Rubia
1 Jelle Zijlstra
1 Eddy L O Jansson
1 Denis
1 John
1 John Schmidt
1 Jorge Cañardo Alastuey
1 Joseph Perla
1 Joshua Vredevoogd
1 José Ricardo
1 Julien Miotte
1 Kemal Eren
1 Kenta Sato
1 David Cournapeau
1 Kyle Kelley
1 Daniele Medri
1 Laurent Luce
1 Laurent Pierron
1 Luis Pedro Coelho
1 DanielWeitzenfeld
1 Craig Thompson
1 Chyi-Kwei Yau
1 Matthew Brett
1 Matthias Feurer
1 Max Linke
1 Chris Filo Gorgolewski
1 Charles Earl
1 Michael Hanke
1 Michele Orrù
1 Bryan Lunt
1 Brian Kearns
1 Paul Butler
1 Paweł Mandera
1 Peter
1 Andrew Ash
1 Pietro Zambelli
1 staubda