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_scoreundmetrics.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 zumodel_selection.GridSearchCV,model_selection.RandomizedSearchCVundmodel_selection.cross_validatein 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 solltenreturn_train_scoreexplizit 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_modelsundregression_modelsaus der Legacy-Implementierung von Gaußschen Prozessen wurden nachträglich als veraltet markiert. #9717 von Kumar Ashutosh.
Fehlerbehebungen#
Vermeidung von Ganzzahl-Überläufen in
metrics.matthews_corrcoef. #9693 von Sam Steingold.Fehler in der Zielfunktion für
manifold.TSNE(sowohl exakt als auch mit der Barnes-Hut-Approximation) behoben, wennn_components >= 3. #9711 von @goncalo-rodrigues.Regression in
model_selection.cross_val_predictbehoben, bei der mitmethod='predict_proba'für einige probabilistische Klassifikatoren ein Fehler ausgelöst wurde. #9641 von James Bourbeau.Fehler behoben, bei dem
datasets.make_classificationseine Eingabeweightsmodifizierte. #9865 von Sachin Kelkar.model_selection.StratifiedShuffleSplitfunktioniert jetzt mit Multi-Output-Multiklassen- oder Multilabel-Daten mit mehr als 1000 Spalten. #9922 von Charlie Brummitt.Fehler bei verschachtelter und bedingter Parameterfestlegung behoben, z. B. gleichzeitige Festlegung eines Pipeline-Schritts und seines Parameters. #9945 von Andreas Müller und Joel Nothman.
Regressionen in 0.19.0 in 0.19.1 behoben
Fehler behoben, bei dem die parallelisierte Vorhersage in Random Forests nicht threadsicher war und (selten) zu willkürlichen Fehlern führen konnte. #9830 von Joel Nothman.
Regression in
model_selection.cross_val_predictbehoben, bei derXnicht mehr als Liste akzeptiert wurde. #9600 von Rasul Kerimov.Handhabung von
model_selection.cross_val_predictfür binäre Klassifizierung mitmethod='decision_function'behoben. #9593 von Reiichiro Nakano und Kernentwicklern.Regression in
pipeline.Pipelinebehoben, bei derstepsnicht mehr als Tupel akzeptiert wurde. #9604 von Joris Van den Bossche.Fehler behoben, bei dem
n_iternicht richtig als veraltet gekennzeichnet wurde, wodurchn_iterfür die vorläufige Verwendung inlinear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressorundlinear_model.Perceptronnicht verfügbar war. #9558 von Andreas Müller.Dataset-Fetcher stellen sicher, dass temporäre Dateien vor dem Löschen geschlossen werden, was unter Windows zu Fehlern führte. #9847 von Joan Massich.
Regression in
manifold.TSNEbehoben, bei der keine anderen Metriken als 'euclidean' und 'precomputed' mehr unterstützt wurden. #9623 von Oli Blum.
Verbesserungen#
Unsere Testsuite und
utils.estimator_checks.check_estimatorkönnen jetzt ohne die Installation von Nose ausgeführt werden. #9697 von Joan Massich.Zur Verbesserung der Benutzerfreundlichkeit des Caching von
pipeline.Pipelinein Version 0.19 kannmemorynun Instanzen vonjoblib.Memoryakzeptieren. Dies nutzt den neuen Hilfsfunktionutils.validation.check_memory. #9584 von Kumar AshutoshEine FutureWarning in SGD-basierten Schätzern wurde weniger ausführlich gemacht. #9802 von Vrishank Bhardwaj.
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.
cluster.KMeansmit sparse X und gegebenen initialen Zentroiden (Bugfix)cross_decomposition.PLSRegressionmitscale=True(Bugfix)ensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressor, wennmin_impurity_splitverwendet wird (Bugfix)Gradient Boosting
loss='quantile'(Bugfix)ensemble.IsolationForest(Bugfix)feature_selection.SelectFdr(Bugfix)linear_model.RANSACRegressor(Bugfix)linear_model.LassoLars(Bugfix)linear_model.LassoLarsIC(Bugfix)manifold.TSNE(Bugfix)neighbors.NearestCentroid(Bugfix)semi_supervised.LabelSpreading(Bugfix)semi_supervised.LabelPropagation(Bugfix)Baumbasierte Modelle, bei denen
min_weight_fraction_leafverwendet wird (Erweiterung)model_selection.StratifiedKFoldmitshuffle=True(diese Änderung, aufgrund von #7823, wurde zum Zeitpunkt der Veröffentlichung nicht in den Release Notes erwähnt)
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
Hinzugefügt:
multioutput.ClassifierChainfür Multilabel-Klassifizierung. Von Adam Kleczewski.Hinzugefügt: Solver
'saga', der die verbesserte Version von Stochastic Average Gradient implementiert, inlinear_model.LogisticRegressionundlinear_model.Ridge. Er ermöglicht die Verwendung der L1-Strafe mit multinomialer logistischer Verlustfunktion und verhält sich während der ersten Epochen der Ridge- und logistischen Regression geringfügig besser als 'sag'. #8446 von Arthur Mensch.
Andere Schätzer
Hinzugefügt: Klasse
neighbors.LocalOutlierFactorzur Anomalieerkennung basierend auf nächsten Nachbarn. #5279 von Nicolas Goix und Alexandre Gramfort.Hinzugefügt: Klasse
preprocessing.QuantileTransformerund Funktionpreprocessing.quantile_transformzur Merkmals normalisierung basierend auf Quantilen. #8363 von Denis Engemann, Guillaume Lemaitre, Olivier Grisel, Raghav RV, Thierry Guillemot und Gael Varoquaux.Der neue Solver
'mu'implementiert eine multiplikative Aktualisierung indecomposition.NMFund ermöglicht die Optimierung aller Beta-Divergenzen, einschließlich der Frobenius-Norm, der verallgemeinerten Kullback-Leibler-Divergenz und der Itakura-Saito-Divergenz. #5295 von Tom Dupre la Tour.
Modellauswahl und -bewertung
model_selection.GridSearchCVundmodel_selection.RandomizedSearchCVunterstützen jetzt die gleichzeitige Auswertung mehrerer Metriken. Weitere Informationen finden Sie im Abschnitt Angabe mehrerer Metriken zur Auswertung des Benutzerhandbuchs. #7388 von Raghav RVHinzugefügt:
model_selection.cross_validate, das die Auswertung mehrerer Metriken ermöglicht. Diese Funktion gibt ein Wörterbuch mit nützlicheren Informationen aus der Kreuzvalidierung zurück, wie z. B. Trainingsbewertungen, Fit-Zeiten und Score-Zeiten. Weitere Informationen finden Sie im Abschnitt Die Funktion cross_validate und die Auswertung mehrerer Metriken des Benutzerhandbuchs. #7388 von Raghav RVHinzugefügt:
metrics.mean_squared_log_error, das den mittleren quadratischen Fehler der logarithmischen Transformation von Zielwerten berechnet, was besonders nützlich für Zielwerte mit einem exponentiellen Trend ist. #7655 von Karan Desai.Hinzugefügt:
metrics.dcg_scoreundmetrics.ndcg_score, die Discounted cumulative gain (DCG) und Normalized discounted cumulative gain (NDCG) berechnen. #7739 von David Gasquez.Hinzugefügt:
model_selection.RepeatedKFoldundmodel_selection.RepeatedStratifiedKFold. #8120 von Neeraj Gangwar.
Verschiedenes
Die Überprüfung, ob Eingabedaten keine NaN- oder Inf-Werte enthalten, kann nun mit
config_contextunterdrü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
Die Beschränkung
min_weight_fraction_leafbei der Baumkonstruktion ist nun effizienter. Sie wählt einen schnellen Pfad, um einen Knoten als Blatt zu deklarieren, wenn sein Gewicht kleiner als das Zweifache des Minimums ist. Beachten Sie, dass der konstruierte Baum vom vorherigen Versionen abweicht, wennmin_weight_fraction_leafverwendet wird. #7441 von Nelson Liu.ensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressorunterstützen nun sparse Eingaben für die Vorhersage. #6101 von Ibraim Ganiev.ensemble.VotingClassifiererlaubt nun die Änderung von Schätzern durch Verwendung vonensemble.VotingClassifier.set_params. Ein Schätzer kann auch durch Setzen aufNoneentfernt werden. #7674 von Yichuan Liu.tree.export_graphvizzeigt nun die konfigurierbare Anzahl von Dezimalstellen an. #8698 von Guillaume Lemaitre.Hinzugefügter Parameter
flatten_transformzuensemble.VotingClassifier, um die Ausgabeform dertransformMethode auf 2 Dimensionen zu ändern. #7794 von Ibraim Ganiev und Herilalaina Rakotoarison.
Lineare, kernelisierte und verwandte Modelle
linear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressorundlinear_model.Perceptronexponieren nun die Parametermax_iterundtol, um die Konvergenz präziser zu steuern. Der Parametern_iterist veraltet, und der angepasste Schätzer exponiert ein Attributn_iter_mit der tatsächlichen Anzahl von Iterationen vor der Konvergenz. #5036 von Tom Dupre la Tour.Hinzugefügter Parameter
average, um die Gewichtungsmittelung inlinear_model.PassiveAggressiveClassifierdurchzuführen. #4939 von Andrea Esuli.linear_model.RANSACRegressorwirft beim Aufruf vonfitkeinen Fehler mehr, wenn in der ersten Iteration keine Inlier gefunden werden. Darüber hinaus werden die Ursachen für übersprungene Iterationen in neu hinzugefügten Attributen,n_skips_*, verfolgt. #7914 von Michael Horrell.In
gaussian_process.GaussianProcessRegressorist die Methodepredictmitreturn_std=Trueerheblich schneller. #8591 von Hadrien Bertrand.Hinzugefügter Parameter
return_stdzur Methodepredictvonlinear_model.ARDRegressionundlinear_model.BayesianRidge. #7838 von Sergey Feldman.Speicherverbrauchverbesserungen: Verhindert die Umwandlung von float32 in float64 in:
linear_model.MultiTaskElasticNet;linear_model.LogisticRegressionbei Verwendung des newton-cg-Solvers; undlinear_model.Ridgebei Verwendung der svd-, sparse_cg-, cholesky- oder lsqr-Solver. #8835, #8061 von Joan Massich und Nicolas Cordier und Thierry Guillemot.
Andere Prädiktoren
Benutzerdefinierte Metriken für die binären Bäume von
sklearn.neighborshaben nun weniger Einschränkungen: sie müssen zwei 1D-Arrays entgegennehmen und einen Float zurückgeben. #6288 von Jake Vanderplas.algorithm='auto'insklearn.neighbors-Schätzern wählt nun den am besten geeigneten Algorithmus für alle Eingabetypen und Metriken aus. #9145 von Herilalaina Rakotoarison und Reddy Chinthala.
Dekompression, Manifold Learning und Clustering
cluster.MiniBatchKMeansundcluster.KMeansverwenden nun deutlich weniger Speicher beim Zuweisen von Datenpunkten zu ihren nächsten Cluster-Zentren. #7721 von Jon Crall.decomposition.PCA,decomposition.IncrementalPCAunddecomposition.TruncatedSVDexponieren nun die Singulärwerte aus der zugrundeliegenden SVD. Sie werden im Attributsingular_values_gespeichert, wie indecomposition.IncrementalPCA. #7685 von Tommy Löfstedtdecomposition.NMFist nun schneller, wennbeta_loss=0ist. #9277 von @hongkahjun.Speicherverbrauchverbesserungen für die Methode
barnes_hutinmanifold.TSNE#7089 von Thomas Moreau und Olivier Grisel.Verbesserungen des Optimierungsplans für Barnes-Hut
manifold.TSNE, sodass die Ergebnisse näher an denen der Referenzimplementierung lvdmaaten/bhtsne liegen, von Thomas Moreau und Olivier Grisel.Speicherverbrauchverbesserungen: Verhindert die Umwandlung von float32 in float64 in
decomposition.PCAunddecomposition.randomized_svd_low_rank. #9067 von Raghav RV.
Vorbereitung und Merkmalsauswahl
Hinzugefügter Parameter
norm_orderzufeature_selection.SelectFromModel, um die Auswahl der Normordnung zu ermöglichen, wenncoef_mehr als 1D ist. #6181 von Antoine Wendlinger.Möglichkeit hinzugefügt, Sparse-Matrizen in
feature_selection.f_regressionmitcenter=Truezu verwenden. #8065 von Daniel LeJeune.Kleine Leistungsverbesserung bei der Erstellung von n-Grammen in
sklearn.feature_extraction.textdurch Bindung von Methoden für Schleifen und Spezialbehandlung von Unigrammen. #7567 von Jaye DoepkeAnnahme über die Daten für
kernel_approximation.SkewedChi2Samplergelockert. Da der Skewed-Chi2-Kernel auf dem offenen Intervall \((-skewedness; +\infty)^d\) definiert ist, sollte die Transform-Funktion nicht prüfen, obX < 0, sondern obX < -self.skewedness. #7573 von Romain Brault.Standard-Kernelparameter wurden in
kernel_approximation.Nystroemvon den Kerneln abhängig gemacht. #5229 von Saurabh Bansod und Andreas Müller.
Modellbewertung und Meta-Estimators
pipeline.Pipelinekann nun Transformer innerhalb einer Pipeline durch Verwendung des Konstruktorparametersmemorycachen. #7990 von Guillaume Lemaitre.Schritte von
pipeline.Pipelinekönnen nun als Attribute desnamed_steps-Attributs zugegriffen werden. #8586 von Herilalaina Rakotoarison.Hinzugefügter Parameter
sample_weightzupipeline.Pipeline.score. #7723 von Mikhail Korobov.Möglichkeit hinzugefügt, den Parameter
n_jobszupipeline.make_unionzu setzen. Für alle anderen kwargs wird einTypeErrorausgelöst. #8028 von Alexander Booth.model_selection.GridSearchCV,model_selection.RandomizedSearchCVundmodel_selection.cross_val_scoreerlauben nun Schätzer mit aufrufbaren Kerneln, die zuvor verboten waren. #8005 von Andreas Müller .model_selection.cross_val_predictgibt nun die Ausgabe der korrekten Form für alle Werte des Argumentsmethodzurück. #7863 von Aman Dalmia.Hinzugefügte Parameter
shuffleundrandom_state, um Trainingsdaten zu mischen, bevor Präfixe davon basierend auf Trainingsgrößen inmodel_selection.learning_curvegenommen werden. #7506 von Narine Kokhlikyan.model_selection.StratifiedShuffleSplitfunktioniert nun mit Multi-Output-Multiklassen- (oder Multilabel-) Daten. #9044 von Vlad Niculae.Geschwindigkeitsverbesserungen für
model_selection.StratifiedShuffleSplit. #5991 von Arthur Mensch und Joel Nothman.Hinzugefügter Parameter
shufflezumodel_selection.train_test_split. #8845 von themrmaxmultioutput.MultiOutputRegressorundmultioutput.MultiOutputClassifierunterstützen nun Online-Lernen mitpartial_fit. :issue:8053von Peng Yu.Hinzugefügter Parameter
max_train_sizezumodel_selection.TimeSeriesSplit#8282 von Aman Dalmia.Weitere Clustering-Metriken sind nun über
metrics.get_scorerundscoring-Parameter verfügbar. #8117 von Raghav RV.Ein Scorer basierend auf
metrics.explained_variance_scoreist ebenfalls verfügbar. #9259 von Hanmin Qin.
Metriken
metrics.matthews_corrcoefunterstützt nun Multiklassen-Klassifizierung. #8094 von Jon Crall.Hinzugefügter Parameter
sample_weightzumetrics.cohen_kappa_score. #8335 von Victor Poughon.
Verschiedenes
utils.estimator_checks.check_estimatorversucht nun sicherzustellen, dass Methoden wietransform,predictetc. keine Attribute auf dem Schätzer setzen. #7533 von Ekaterina Krivich.Typenprüfung zum Parameter
accept_sparsein den Methoden vonsklearn.utils.validationhinzugefügt. Dieser Parameter akzeptiert nun nur noch boolesche Werte, Strings oder Listen/Tupel von Strings.accept_sparse=Noneist veraltet und sollte durchaccept_sparse=Falseersetzt werden. #7880 von Josh Karnofsky.Möglichkeit hinzugefügt, einen Teil einer svmlight-formatierten Datei zu laden, indem ein Byte-Bereich an
datasets.load_svmlight_fileübergeben wird. #935 von Olivier Grisel.dummy.DummyClassifierunddummy.DummyRegressorakzeptieren nun nicht-endliche Merkmale. #8931 von @Attractadore.
Fehlerbehebungen#
Bäume und Ensembles
Speicherleck in Bäumen behoben, wenn Bäume mit
criterion='mae'verwendet wurden. #8002 von Raghav RV.Fehler behoben, bei dem
ensemble.IsolationForesteine falsche Formel für die durchschnittliche Pfadlänge verwendet. #8549 von Peter Wang.Fehler behoben, bei dem
ensemble.AdaBoostClassifiereineZeroDivisionErrorauslöst, wenn Daten mit einzelnen Klassenbezeichnungen angepasst werden. #7501 von Dominik Krzeminski.Fehler behoben in
ensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressor, wo ein Float, der mit0.0mittels==verglichen wurde, zu einem Divisionsfehler führte. #7970 von He Chen.Fehler behoben, bei dem
ensemble.GradientBoostingClassifierundensemble.GradientBoostingRegressorden Parametermin_impurity_splitignorierten. #8006 von Sebastian Pölsterl.Korrigierter
oob_scoreinensemble.BaggingClassifier. #8936 von Michael LewisÜbermäßiger Speicherverbrauch bei der Vorhersage für Random Forest-Schätzer behoben. #8672 von Mike Benfield.
Fehler behoben, bei dem
sample_weightals Liste bei Random Forests in Python 2 Probleme verursachte #8068 von @xor.Fehler behoben, bei dem
ensemble.IsolationForestfehlschlägt, wennmax_featureskleiner als 1 ist. #5732 von Ishank Gulati.Fehler behoben, bei dem Gradient Boosting mit
loss='quantile'negative Fehler für negative Werte vonytrue - ypredberechnete, was zu falschen Werten beim Aufruf von__call__führte. #8087 von Alexis MignonFehler behoben, bei dem
ensemble.VotingClassifiereinen Fehler auslöst, wenn ein NumPy-Array für Gewichte übergeben wird. #7983 von Vincent Pham.Fehler behoben, bei dem
tree.export_graphvizeinen Fehler auslöste, wenn die Länge vonfeatures_namesnicht mitn_featuresim Entscheidungsbaum übereinstimmte. #8512 von Li Li.
Lineare, kernelisierte und verwandte Modelle
Fehler behoben, bei dem
linear_model.RANSACRegressor.fitbis zumax_iterlaufen kann, wenn er früh eine große Inlier-Gruppe findet. #8251 von @aivision2020.Fehler behoben, bei dem
naive_bayes.MultinomialNBundnaive_bayes.BernoulliNBfehlschlagen, wennalpha=0ist. #5814 von Yichuan Liu und Herilalaina Rakotoarison.Fehler behoben, bei dem
linear_model.LassoLarsnicht das gleiche Ergebnis wie die in R verfügbare LassoLars-Implementierung (lars-Bibliothek) liefert. #7849 von Jair Montoya Martinez.Fehler behoben in
linear_model.RandomizedLasso,linear_model.Lars,linear_model.LassoLars,linear_model.LarsCVundlinear_model.LassoLarsCV, bei dem der Parameterprecomputenicht konsistent über die Klassen hinweg verwendet wurde und einige im Docstring vorgeschlagene Werte Fehler auslösen konnten. #5359 von Tom Dupre la Tour.Inkonsistente Ergebnisse zwischen
linear_model.RidgeCVundlinear_model.Ridgebei Verwendung vonnormalize=Truebehoben. #9302 von Alexandre Gramfort.Behebung eines Fehlers, bei dem
linear_model.LassoLars.fitcoef_manchmal als Liste und nicht als ndarray zurückgab. #8160 von CJ Carey.Behebung eines Fehlers in
linear_model.BayesianRidge.fit, damit die Ridge-Parameteralpha_undlambda_konsistent mit den berechneten Koeffizientencoef_undintercept_zurückgegeben werden. #8224 von Peter Gedeck.Behebung eines Fehlers in
svm.OneClassSVM, wo Floats anstelle von Integer-Klassen zurückgegeben wurden. #8676 von Vathsala Achar.Behebung der Berechnung der AIC/BIC-Kriterien in
linear_model.LassoLarsIC. #9022 von Alexandre Gramfort und Mehmet Basbug.Behebung eines Speicherlecks in unserer LibLinear-Implementierung. #9024 von Sergei Lebedev
Behebung eines Fehlers, bei dem Stratified CV-Splitter nicht mit
linear_model.LassoCVfunktionierten. #8973 von Paulo Haddad.Behebung eines Fehlers in
gaussian_process.GaussianProcessRegressor, bei dem die Standardabweichung und Kovarianz, die ohne fitten vorhergesagt wurden, standardmäßig mit einer bedeutungslosen Fehlermeldung fehlschlugen. #6573 von Quazi Marufur Rahman und Manoj Kumar.
Andere Prädiktoren
Korrektur von
semi_supervised.BaseLabelPropagation, umLabelPropagationundLabelSpreadingkorrekt zu implementieren, wie in den referenzierten Arbeiten beschrieben. #9239 von Andre Ambrosio Boechat, Utkarsh Upadhyay und Joel Nothman.
Dekompression, Manifold Learning und Clustering
Behebung der Implementierung von
manifold.TSNEDer Parameter
early_exaggerationhatte keine Auswirkung und wird nun für die ersten 250 Optimierungsiterationen verwendet.Behebung der Ausnahme
AssertionError: Tree consistency failed, wie in #8992 berichtet.Verbesserung des Lernplans, um mit der Referenzimplementierung lvdmaaten/bhtsne übereinzustimmen. von Thomas Moreau und Olivier Grisel.
Behebung eines Fehlers in
decomposition.LatentDirichletAllocation, bei dem die Methodeperplexityfalsche Ergebnisse lieferte, da die Methodetransformab Version 0.18 normalisierte Dokumenten-Topic-Verteilungen zurückgab. #7954 von Gary Foreman.Behebung der Ausgabeform und Fehler bei n_jobs > 1 in
decomposition.SparseCodertransform unddecomposition.sparse_encodefür eindimensionale Daten und eine Komponente. Dies wirkt sich auch auf die Ausgabeform vondecomposition.DictionaryLearningaus. #8086 von Andreas Müller.Behebung der Implementierung von
explained_variance_indecomposition.PCA,decomposition.RandomizedPCAunddecomposition.IncrementalPCA. #9105 von Hanmin Qin.Behebung der Implementierung von
noise_variance_indecomposition.PCA. #9108 von Hanmin Qin.Behebung eines Fehlers, bei dem
cluster.DBSCANein falsches Ergebnis lieferte, wenn die Eingabe eine vortrainierte dünne Matrix mit anfänglich nur Nullen war. #8306 von Akshay GuptaBehebung eines Fehlers beim Anpassen von
cluster.KMeansmit einem dünnen Array X und anfänglichen Zentroiden, bei dem die Mittelwerte von X unnötigerweise von den Zentroiden subtrahiert wurden. #7872 von Josh Karnofsky.Korrekturen an der Eingabevalidierung in
covariance.EllipticEnvelope. #8086 von Andreas Müller.Behebung eines Fehlers in
covariance.MinCovDet, bei dem die Eingabe von Daten, die eine singuläre Kovarianzmatrix erzeugten, dazu führte, dass die Hilfsmethode_c_stepeine Ausnahme auslöste. #3367 von Jeremy StewardBehebung eines Fehlers in
manifold.TSNE, der die Konvergenz des Gradientenabstiegs beeinträchtigte. #8768 von David DeTomaso.Behebung eines Fehlers in
manifold.TSNE, bei dem die falschekl_divergence_gespeichert wurde. #6507 von Sebastian Saeger.Behebung einer fehlerhaften Skalierung in
cross_decomposition.PLSRegressionmitscale=True. #7819 von jayzed82.Die Methode
fitvoncluster.SpectralCoclusteringundcluster.SpectralBiclusteringentspricht der API, indem sieyakzeptiert und das Objekt zurückgibt. #6126, #7814 von Laurent Direr und Maniteja Nandana.Behebung eines Fehlers, bei dem die
sample-Methoden vonsklearn.mixturenicht die angeforderte Anzahl von Samples zurückgaben. #7702 von Levi John Wolf.Behebung der Shrinkage-Implementierung in
neighbors.NearestCentroid. #9219 von Hanmin Qin.
Vorbereitung und Merkmalsauswahl
Für dünne Matrizen wird
preprocessing.normalizemitreturn_norm=Truenun eineNotImplementedErrormit der Norm 'l1' oder 'l2' auslösen und mit der Norm 'max' werden die zurückgegebenen Normen die gleichen sein wie für dichte Matrizen. #7771 von Ang Lu.Behebung eines Fehlers, bei dem
feature_selection.SelectFdrdas Benjamini-Hochberg-Verfahren nicht exakt implementierte. Es konnte früher weniger Merkmale auswählen als beabsichtigt. #7490 von Peng Meng.Behebung eines Fehlers, bei dem
linear_model.RandomizedLassoundlinear_model.RandomizedLogisticRegressionfür dünne Eingaben fehlschlagen. #8259 von Aman Dalmia.Behebung eines Fehlers, bei dem
feature_extraction.FeatureHashermandatorisch eine dünne Zufallsprojektion auf die gehashten Merkmale anwandte, was die Verwendung vonfeature_extraction.text.HashingVectorizerin einer Pipeline mitfeature_extraction.text.TfidfTransformerverhinderte. #7565 von Roman Yurchak.Behebung eines Fehlers, bei dem
feature_selection.mutual_info_regressionn_neighborsnicht korrekt verwendete. #8181 von Guillaume Lemaitre.
Modellbewertung und Meta-Estimators
Behebung eines Fehlers, bei dem
model_selection.BaseSearchCV.inverse_transformself.best_estimator_.transform()anstelle vonself.best_estimator_.inverse_transform()zurückgab. #8344 von Akshay Gupta und Rasmus Eriksson.Hinzufügen des Attributs
classes_zumodel_selection.GridSearchCV,model_selection.RandomizedSearchCV,grid_search.GridSearchCVundgrid_search.RandomizedSearchCV, das mit dem Attributclasses_vonbest_estimator_übereinstimmt. #7661 und #8295 von Alyssa Batula, Dylan Werner-Meier und Stephen Hoover.Behebung eines Fehlers, bei dem
model_selection.validation_curvedenselben Schätzer für jeden Parameterwert wiederverwendete. #7365 von Aleksandr Sandrovskii.model_selection.permutation_test_scorefunktioniert nun mit Pandas-Typen. #5697 von Stijn Tonk.Mehrere Korrekturen an der Eingabevalidierung in
multiclass.OutputCodeClassifier#8086 von Andreas Müller.partial_fitvonmulticlass.OneVsOneClassifierstellt nun sicher, dass alle Klassen im Voraus bereitgestellt werden. #6250 von Asish Panda.Korrektur von
multioutput.MultiOutputClassifier.predict_proba, damit eine Liste von 2D-Arrays und nicht ein 3D-Array zurückgegeben wird. In Fällen, in denen unterschiedliche Zielspalten unterschiedliche Klassenzahlen aufwiesen, wurde einValueErrorbeim Versuch, Matrizen mit unterschiedlichen Dimensionen zu stapeln, ausgelöst. #8093 von Peter Bull.Kreuzvalidierung funktioniert nun mit Pandas-Datentypen, die einen schreibgeschützten Index haben. #9507 von Loic Esteve.
Metriken
metrics.average_precision_scoreinterpoliert nun nicht mehr linear zwischen den Betriebspunkten, sondern gewichtet die Präzision mit der Änderung des Recalls seit dem letzten Betriebspunkt, gemäß dem Wikipedia-Eintrag. (#7356). Von Nick Dingwall und Gael Varoquaux.Behebung eines Fehlers in
metrics.classification._check_targets, der'binary'zurückgab, wenny_trueundy_predbeide'binary'waren, aber die Vereinigung vony_trueundy_pred'multiclass'war. #8377 von Loic Esteve.Behebung eines Integer-Überlauffehlers in
metrics.confusion_matrixund damit inmetrics.cohen_kappa_score. #8354, #7929 von Joel Nothman und Jon Crall.Weitergabe des
gamma-Parameters an denchi2-Kernel inmetrics.pairwise.pairwise_kernelskorrigiert #5211 von Nick Rhinehart, Saurabh Bansod und Andreas Müller.
Verschiedenes
Behebung eines Fehlers, bei dem
datasets.make_classificationfehlschlug, wenn mehr als 30 Merkmale generiert wurden. #8159 von Herilalaina Rakotoarison.Behebung eines Fehlers, bei dem
datasets.make_moonsein falsches Ergebnis lieferte, wennn_samplesungerade war. #8198 von Josh Levy.Einige
fetch_-Funktionen insklearn.datasetsignorierten das Schlüsselwortdownload_if_missing. #7944 von Ralf Gommers.Korrektur von Estimators, um einen
sample_weight-Parameter vom Typpandas.Seriesin ihrerfit-Funktion zu akzeptieren. #7825 von Kathleen Chen.Behebung eines Fehlers in Fällen, in denen
numpy.cumsumnumerisch instabil sein kann, wodurch eine Ausnahme ausgelöst wird, wenn Instabilität identifiziert wird. #7376 und #7331 von Joel Nothman und @yangarbiter.Behebung eines Fehlers, bei dem
base.BaseEstimator.__getstate__die Anpassungen der Kindklassen am Pickling behinderte, wenn sie in einem Mehrfachvererbungs-Kontext verwendet wurden. #8316 von Holger Peters.Aktualisierung von Sphinx-Gallery von 0.1.4 auf 0.1.7 zur Auflösung von Links im Dokumentations-Build mit Sphinx>1.5 #8010, #7986 von Oscar Najera
Hinzufügen des Parameters
data_homezusklearn.datasets.fetch_kddcup99. #9289 von Loic Esteve.Behebung von Dataset-Loadern, die die Python 3-Version von makedirs verwenden, damit sie auch unter Python 2 funktionieren. #9284 von Sebastin Santy.
Mehrere kleinere Fehler wurden mit Dank an die Hinweise von lgtm.com behoben. #9278 von Jean Helie, unter anderem.
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_decreaseanstelle vonmin_impurity_split, der nun als veraltet gilt.min_impurity_decreasehilft, die Aufteilung von Knoten zu stoppen, bei denen die gewichtete Verringerung der Unreinheit durch die Aufteilung nicht mehr mindestensmin_impurity_decreasebeträgt. #8449 von Raghav RV.
Lineare, kernelisierte und verwandte Modelle
Der Parameter
n_iterist inlinear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressorundlinear_model.Perceptronveraltet. Von Tom Dupre la Tour.
Andere Prädiktoren
neighbors.LSHForestwurde veraltet und wird in 0.21 aufgrund schlechter Leistung entfernt. #9078 von Laurent Direr.neighbors.NearestCentroidunterstützt nicht mehrmetric='precomputed', was nun einen Fehler auslöst. #8515 von Sergul Aydore.Der Parameter
alphavonsemi_supervised.LabelPropagationhat keine Auswirkung mehr und wird mit der Entfernung in 0.21 als veraltet markiert. #9239 von Andre Ambrosio Boechat, Utkarsh Upadhyay und Joel Nothman.
Dekompression, Manifold Learning und Clustering
Der Parameter
doc_topic_distrder Methodeperplexityindecomposition.LatentDirichletAllocationwurde als veraltet markiert, da der Benutzer keinen Zugriff mehr auf die unnormalisierte Dokument-Themen-Verteilung hat, die für die Berechnung der Perplexität benötigt wird. #7954 von Gary Foreman.Der Parameter
n_topicsvondecomposition.LatentDirichletAllocationwurde inn_componentsumbenannt und wird in Version 0.21 entfernt. #8922 von @Attractadore.Der Parameter
ridge_alphavondecomposition.SparsePCA.transformist zugunsten des Klassenparameters veraltet. #8137 von Naoya Kanai.cluster.DBSCANverfügt nun über einen Parametermetric_params. #8139 von Naoya Kanai.
Vorbereitung und Merkmalsauswahl
feature_selection.SelectFromModelverfügt nun über eine Methodepartial_fit, aber nur, wenn der zugrunde liegende Schätzer dies ebenfalls tut. Von Andreas Müller.feature_selection.SelectFromModelvalidiert nun den Parameterthresholdund setzt das Attributthreshold_während des Aufrufs vonfit, und nicht mehr während des Aufrufs vontransform. Von Andreas Müller.Der Parameter
non_negativeinfeature_extraction.FeatureHasherist veraltet und wurde durch eine prinzipientreue Alternative,alternate_sign, ersetzt. #7565 von Roman Yurchak.linear_model.RandomizedLogisticRegressionundlinear_model.RandomizedLassosind veraltet und werden in Version 0.21 entfernt. #8995 von Ramana.S.
Modellbewertung und Meta-Estimators
Der Konstruktoreingang
fit_paramsfürmodel_selection.GridSearchCVundmodel_selection.RandomizedSearchCVist veraltet und wird durch die Übergabe von Schlüsselwortparametern an diefit-Methoden dieser Klassen ersetzt. Datenabhängige Parameter, die für das Modelltraining benötigt werden, sollten als Schlüsselwortargumente anfitübergeben werden. Die Einhaltung dieser Konvention ermöglicht die Verwendung der Hyperparameter-Auswahlklassen mit Werkzeugen wiemodel_selection.cross_val_predict. #2879 von Stephen Hoover.In Version 0.21 wird sich das Standardverhalten von Splittern, die die Parameter
test_sizeundtrain_sizeverwenden, ändern. Wenn nurtrain_sizeangegeben wird, wirdtest_sizeals der Rest behandelt. #7459 von Nelson Liu.multiclass.OneVsRestClassifierverfügt nun über die Methodenpartial_fit,decision_functionundpredict_proba, aber nur, wenn der zugrunde liegende Schätzer dies ebenfalls tut. #7812 von Andreas Müller und Mikhail Korobov.multiclass.OneVsRestClassifierverfügt nun über eine Methodepartial_fit, aber nur, wenn der zugrunde liegende Schätzer dies ebenfalls tut. Von Andreas Müller.Die Ausgabeform der
decision_functionfür binäre Klassifizierung inmulticlass.OneVsRestClassifierundmulticlass.OneVsOneClassifierist nun(n_samples,), um den Konventionen von scikit-learn zu entsprechen. #9100 von Andreas Müller.Die Funktion
multioutput.MultiOutputClassifier.predict_probagab früher ein 3D-Array (n_samples,n_classes,n_outputs) zurück. In Fällen, in denen verschiedene Zielspalten unterschiedliche Klassenzahlen hatten, wurde einValueErrorausgelö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 Listen_outputsist und jedes Array für diesen speziellen Output (n_samples,n_classes) ist. #8093 von Peter Bull.Das Attribut
named_stepsdictinpipeline.Pipelinewurde durchutils.Bunchersetzt, um die Tab-Vervollständigung in interaktiven Umgebungen zu ermöglichen. Im Falle eines Konflikts zwischen den Werten vonnamed_stepsund demdict-Attribut wird dasdict-Verhalten priorisiert. #8481 von Herilalaina Rakotoarison.
Verschiedenes
Der Parameter
yintransformundinverse_transformist veraltet. Die Methode sollte keineny-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.utilswurden entsprechend entfernt oder als veraltet markiert. #8854 und #8874 von Naoya KanaiDie Parameter
store_covariancesundcovariances_vondiscriminant_analysis.QuadraticDiscriminantAnalysiswurden instore_covarianceundcovariance_umbenannt, um mit den entsprechenden Parameternamen vondiscriminant_analysis.LinearDiscriminantAnalysisübereinzustimmen. Sie werden in Version 0.21 entfernt. #7998 von JiachengEntfernt in 0.19
utils.fixes.argpartitionutils.fixes.array_equalutils.fixes.astypeutils.fixes.bincountutils.fixes.expitutils.fixes.frombuffer_emptyutils.fixes.in1dutils.fixes.normutils.fixes.rankdatautils.fixes.safe_copy
Veraltet in 0.19, wird in 0.21 entfernt
utils.arpack.eigsutils.arpack.eigshutils.arpack.svdsutils.extmath.fast_dotutils.extmath.logsumexputils.extmath.normutils.extmath.pinvhutils.graph.graph_laplacianutils.random.choiceutils.sparsetools.connected_componentsutils.stats.rankdata
Schätzer mit beiden Methoden
decision_functionundpredict_probamüssen nun eine monotone Beziehung zwischen ihnen haben. Die Methodecheck_decision_proba_consistencywurde in utils.estimator_checks hinzugefügt, um deren Konsistenz zu überprüfen. #7578 von Shubham BhardwajAlle Prüfungen in
utils.estimator_checks, insbesondereutils.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 derfit-Methode gesetzt werden. Insbesondere haben Ensemble-Schätzer (die vonensemble.BaseEnsembleabgeleitet sind)self.estimators_erst nachfitverfü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