Версия 0.17#
Версия 0.17.1#
18 февраля 2016
Журнал изменений#
Исправления ошибок#
Обновить встроенную joblib до версии 0.9.4, которая исправляет важную ошибку в
joblib.Parallelчто может незаметно привести к неверным результатам при работе с наборами данных размером более 1 МБ: joblib/joblibИсправлено чтение дампов Bunch, сгенерированных с scikit-learn версии <= 0.16. Это может затронуть пользователей, которые уже загрузили набор данных с scikit-learn 0.16 и загружают его с scikit-learn 0.17. См. #6196 для того, как это повлияло на
datasets.fetch_20newsgroups. С помощью Лоик Эстеве.Исправлена ошибка, которая мешала использовать оценку ROC AUC для выполнения поиска по сетке на нескольких CPU / ядрах на больших массивах. См. #6147 По Оливье Гризель.
Исправлена ошибка, которая мешала правильно установить
presortпараметр вensemble.GradientBoostingRegressor. См. #5857 Автор: Эндрю МакКаллох.Исправлена ошибка joblib при оценке перплексии
decomposition.LatentDirichletAllocationмодель. См. #6258 Автор: Chyi-Kwei Yau.
Версия 0.17#
5 ноября 2015
Журнал изменений#
Новые возможности#
Все классы Scaler, кроме
preprocessing.RobustScalerможет быть обучен онлайн, вызываяpartial_fit. С помощью Джорджио Патрини.Новый класс
ensemble.VotingClassifierреализует ансамблевый классификатор по принципу "большинства голосов" / "мягкого голосования" для объединения оценщиков классификации. С помощью Sebastian Raschka.Новый класс
preprocessing.RobustScalerпредоставляет альтернативуpreprocessing.StandardScalerдля покомпонентного центрирования и нормализации диапазона, устойчивых к выбросам. Путем Thomas Unterthiner.Новый класс
preprocessing.MaxAbsScalerпредоставляет альтернативуpreprocessing.MinMaxScalerдля покомпонентной нормализации диапазона, когда данные уже центрированы или разрежены. С помощью Thomas Unterthiner.Новый класс
preprocessing.FunctionTransformerпревращает Python функцию вPipeline-совместимый объект-трансформер. Автор: Joe Jevnik.Новые классы
cross_validation.LabelKFoldиcross_validation.LabelShuffleSplitгенерировать обучающие-тестовые разбиения, соответственно аналогичноcross_validation.KFoldиcross_validation.ShuffleSplit, за исключением того, что свертки обусловлены массивом меток. Путем Брайан МакФи, Жан Коссаифи и Gilles Louppe.decomposition.LatentDirichletAllocationреализует тематическую модель Latent Dirichlet Allocation с онлайн-вариационным выводом. По Chyi-Kwei Yau, с кодом на основе реализации Matt Hoffman. (#3659)Новый решатель
sagреализует стохастический градиентный спуск со средним градиентом и доступен в обоихlinear_model.LogisticRegressionиlinear_model.Ridge. Этот решатель очень эффективен для больших наборов данных. С помощью Дэнни Салливан и Tom Dupre la Tour. (#4738)Новый решатель
cdреализует Coordinate Descent вdecomposition.NMF. Предыдущий решатель на основе проектированного градиента все еще доступен при установке нового параметраsolvertopg, но устарел и будет удален в 0.19 вместе сdecomposition.ProjectedGradientNMFи параметрыsparseness,eta,betaиnls_max_iter. Новые параметрыalphaиl1_ratioуправление L1 и L2 регуляризацией, иshuffleдобавляет шаг перемешивания вcdрешатель. Путем Tom Dupre la Tour и Мати́ Блондель.
Улучшения#
manifold.TSNEтеперь поддерживает приближенную оптимизацию с помощью метода Барнса-Хата, что приводит к значительно более быстрому обучению. Автор: Кристофер Эрик Муди. (#4025)cluster.MeanShiftтеперь поддерживает параллельное выполнение, как реализовано вmean_shiftфункция. С помощью Мартино Сорбаро.naive_bayes.GaussianNBтеперь поддерживает обучение сsample_weight. Путем Ян Хендрик Метцен.dummy.DummyClassifierтеперь поддерживает стратегию предварительного обучения. С помощью Arnaud Joly.Добавлен
fit_predictметод дляmixture.GMMи подклассы. Путем Cory Lorenz.Добавлен
metrics.label_ranking_lossметрика. По Arnaud Joly.Добавлен
metrics.cohen_kappa_scoreметрика.Добавлен
warm_startпараметр конструктора для ансамблевых моделей бэггинга, чтобы увеличить размер ансамбля. Путем Tim Head.Добавлена возможность использовать метрики регрессии с несколькими выходами без усреднения. Авторы: Константин Шмельков и Michael Eickenberg.
Добавлен
stratifyопция дляcross_validation.train_test_splitдля стратифицированного разделения. Автор: Miroslav Batchkarov.The
tree.export_graphvizфункция теперь поддерживает эстетические улучшения дляtree.DecisionTreeClassifierиtree.DecisionTreeRegressor, включая опции окрашивания узлов по их преобладающему классу или неопределенности, отображения имен переменных и использования пропорций узлов вместо исходных подсчетов выборок. С помощью Тревор Стивенс.Улучшенная скорость
newton-cgsolver вlinear_model.LogisticRegression, избегая вычисления потерь. Мати́ Блондель и Tom Dupre la Tour.The
class_weight="auto"эвристики в классификаторах, поддерживающихclass_weightбыл устаревшим и заменен наclass_weight="balanced"опция, которая имеет более простую формулу и интерпретацию. По Ханна Валлах и Андреас Мюллер.Добавить
class_weightпараметр для автоматического взвешивания образцов по частоте классов дляlinear_model.PassiveAggressiveClassifier. С помощью Тревор Стивенс.Добавлены обратные ссылки со страниц справочника API на руководство пользователя. Автор: Андреас Мюллер.
The
labelsпараметр дляsklearn.metrics.f1_score,sklearn.metrics.fbeta_score,sklearn.metrics.recall_scoreиsklearn.metrics.precision_scoreбыла расширена. Теперь можно игнорировать одну или несколько меток, например, когда многоклассовая задача имеет основной класс для игнорирования. Путем Joel Nothman.Добавить
sample_weightподдержка дляlinear_model.RidgeClassifier. Путем Тревор Стивенс.Предоставить возможность разреженного вывода из
sklearn.metrics.pairwise.cosine_similarity. С помощью Джайдев Дешпанде.Добавить
preprocessing.minmax_scaleдля предоставления функционального интерфейса дляpreprocessing.MinMaxScaler. С помощью Thomas Unterthiner.dump_svmlight_filenow handles multi-label datasets. By Chih-Wei Chang.Загрузчик набора данных RCV1 (
sklearn.datasets.fetch_rcv1). С помощью Tom Dupre la Tour.Классический двухклассовый набор данных "Wisconsin Breast Cancer" теперь включен в scikit-learn, доступен с
datasets.load_breast_cancer.Обновлено до joblib 0.9.3 для использования нового автоматического группирования коротких задач. Это позволяет scikit-learn использовать параллелизм, когда много очень коротких задач выполняется параллельно, например, с помощью
grid_search.GridSearchCVмета-оценщик сn_jobs > 1используется с большой сеткой параметров на небольшом наборе данных. С помощью Vlad Niculae, Оливье Гризель и Лоик Эстеве.Для получения более подробной информации об изменениях в joblib 0.9.3 см. примечания к выпуску: joblib/joblib
Улучшенная скорость (в 3 раза за итерацию) для
decomposition.DictLearningс методом координатного спуска изlinear_model.Lasso. С помощью Артур Менш.Параллельная обработка (с использованием потоков) для запросов ближайших соседей (с использованием ball-tree) от Николая Майорова.
Разрешить
datasets.make_multilabel_classificationвыводить разреженнуюy. Автор: Kashif Rasul.cluster.DBSCANтеперь принимает разреженную матрицу предвычисленных расстояний, позволяя эффективное по памяти предвычисление расстояний. Автор Joel Nothman.tree.DecisionTreeClassifierтеперь предоставляетapplyметод для получения индексов листьев, в которые предсказываются образцы. С помощью Daniel Galvez и Gilles Louppe.Ускорение регрессоров дерева решений, случайных лесов, экстра-деревьев и градиентного бустинга за счет вычисления прокси-величины улучшения нечистоты во время роста дерева. Эта прокси-величина такова, что разбиение, максимизирующее это значение, также максимизирует улучшение нечистоты. Путем Arnaud Joly, Jacob Schreiber и Gilles Louppe.
Ускорение методов на основе деревьев за счет уменьшения количества вычислений, необходимых при вычислении меры нечистоты с учетом линейной зависимости вычисляемых статистик. Эффект особенно заметен с дополнительными деревьями и на наборах данных с категориальными или разреженными признаками. Путем Arnaud Joly.
ensemble.GradientBoostingRegressorиensemble.GradientBoostingClassifierтеперь предоставляютapplyметод для получения индексов листьев, в которые попадает каждый образец при каждой попытке. По Jacob Schreiber.Добавить
sample_weightподдержка дляlinear_model.LinearRegression. Автор: Сонни Ху. (#4881)Добавить
n_iter_without_progresstomanifold.TSNEдля управления критерием остановки. Автор: Санти Вильяльба. (#5186)Добавлен необязательный параметр
random_stateвlinear_model.Ridge, чтобы установить начальное значение псевдослучайного генератора, используемого вsagрешатель. По Tom Dupre la Tour.Добавлен необязательный параметр
warm_startвlinear_model.LogisticRegressionЕсли установлено значение True, солверыlbfgs,newton-cgиsagбудет инициализирован с коэффициентами, вычисленными в предыдущем обучении. С помощью Tom Dupre la Tour.Добавлен
sample_weightподдержка дляlinear_model.LogisticRegressionдляlbfgs,newton-cg, иsagрешателей. С помощью Valentin Stolbunov. Поддержка добавлена вliblinearрешатель. По Manoj Kumar.Добавлен необязательный параметр
presorttoensemble.GradientBoostingRegressorиensemble.GradientBoostingClassifier, сохраняя поведение по умолчанию таким же. Это позволяет градиентным бустерам отключать предварительную сортировку при построении глубоких деревьев или использовании разреженных данных. С помощью Jacob Schreiber.Изменено
metrics.roc_curveудалить ненужные пороги по умолчанию. С помощью TransformedTargetRegressor.Добавлен
feature_selection.SelectFromModelмета-трансформер, который может использоваться вместе с оценщиками, имеющимиcoef_илиfeature_importances_атрибут для выбора важных признаков входных данных. С помощью Maheshakya Wijewardena, Joel Nothman и Manoj Kumar.Добавлен
metrics.pairwise.laplacian_kernel. По Clyde Fare.covariance.GraphLassoпозволяет отдельно контролировать критерий сходимости для подзадачи Elastic-Net черезenet_tolпараметр.Улучшенная подробность вывода в
decomposition.DictionaryLearning.ensemble.RandomForestClassifierиensemble.RandomForestRegressorбольше не хранит явно выборки, используемые в бэггинге, что приводит к значительно уменьшенному объему памяти для хранения моделей случайного леса.Добавлен
positiveопция дляlinear_model.Larsиlinear_model.lars_pathдля принудительного положительного значения коэффициентов. (#5131)Добавлен
X_norm_squaredпараметр дляmetrics.pairwise.euclidean_distancesдля предоставления предвычисленных квадратов норм дляX.Добавлен
fit_predictметод дляpipeline.Pipeline.Добавлен
preprocessing.minmax_scaleфункция.
Исправления ошибок#
Fixed non-determinism in
dummy.DummyClassifierс разреженным многометочным выводом. С помощью Андреас Мюллер.Исправлена форма вывода
linear_model.RANSACRegressorto(n_samples, ). С помощью Андреас Мюллер.Исправлена ошибка в
decomposition.DictLearningкогдаn_jobs < 0. С помощью Андреас Мюллер.Исправлена ошибка, где
grid_search.RandomizedSearchCVможет потреблять много памяти для больших дискретных сеток. С помощью Joel Nothman.Исправлена ошибка в
linear_model.LogisticRegressionCVгдеpenaltyигнорировался в окончательной подгонке. Автор: Manoj Kumar.Исправлена ошибка в
ensemble.forest.ForestClassifierпри вычислении oob_score и X является sparse.csc_matrix. Путём Ankur Ankan.Все регрессоры теперь последовательно обрабатывают и предупреждают при получении
yявляется числом с плавающей запятой. См.(n_samples, 1). С помощью Андреас Мюллер и Henry Lin. (#5431)Исправление в
cluster.KMeansперераспределение кластеров для разреженного ввода с помощью Lars Buitinck.Исправлена ошибка в
discriminant_analysis.LinearDiscriminantAnalysisчто может вызывать асимметричные ковариационные матрицы при использовании сжатия. Путем Martin Billinger.Исправлено
cross_validation.cross_val_predictдля оценщиков с разреженными предсказаниями. Автор: Будда Пракаш.Исправлен
predict_probaметодlinear_model.LogisticRegressionиспользовать soft-max вместо нормализации one-vs-rest. При Manoj Kumar. (#5182)Исправлен
partial_fitметодlinear_model.SGDClassifierпри вызове сaverage=True. С помощью Эндрю Лэмб. (#5282)Загрузчики наборов данных используют разные имена файлов в Python 2 и Python 3, чтобы избежать проблем совместимости при пиклинге. Путем Оливье Гризель. (#5355)
Исправлена ошибка в
naive_bayes.GaussianNBчто привело к зависимости результатов классификации от масштаба. Путем Jake Vanderplas.Временно исправлено
linear_model.Ridge, что было некорректно при подгонке пересечения в случае разреженных данных. Исправление автоматически меняет решатель на 'sag' в этом случае. #5360 by Tom Dupre la Tour.Исправлена ошибка производительности в
decomposition.RandomizedPCAна данных с большим количеством признаков и меньшим количеством образцов. (#4478) По Андреас Мюллер, Лоик Эстеве и Джорджио Патрини.Исправлена ошибка в
cross_decomposition.PLSчто приводило к нестабильному и платформозависимому выводу, а также сбою наfit_transform. Путем Артур Менш.Исправления в
Bunchкласс, используемый для хранения наборов данных.Исправлено
ensemble.plot_partial_dependenceигнорируяpercentilesпараметр.Предоставление
setкак словарь вCountVectorizerбольше не приводит к несогласованным результатам при сериализации.Исправлены условия, когда предвычисленная матрица Грама должна быть пересчитана в
linear_model.LinearRegression,linear_model.OrthogonalMatchingPursuit,linear_model.Lassoиlinear_model.ElasticNet.Исправлена несогласованная организация памяти в решателе координатного спуска, которая влияла на
linear_model.DictionaryLearningиcovariance.GraphLasso. (#5337) По Оливье Гризель.manifold.LocallyLinearEmbeddingбольше не игнорируетregпараметр.Оценщики ближайших соседей с пользовательскими метриками расстояния теперь могут быть сериализованы. (#4362)
Исправлена ошибка в
pipeline.FeatureUnionгдеtransformer_weightsне обрабатывались должным образом при выполнении поиска по сетке.Исправлена ошибка в
linear_model.LogisticRegressionиlinear_model.LogisticRegressionCVпри использованииclass_weight='balanced'илиclass_weight='auto'. Путем Tom Dupre la Tour.Исправлена ошибка #5495 при выполнении OVR(SVC(decision_function_shape=”ovr”)). Исправлено Элвис Доматоб.
Сводка изменений API#
Атрибут
data_min,data_maxиdata_rangeвpreprocessing.MinMaxScalerустарели и не будут доступны с версии 0.19. Вместо этого класс теперь предоставляетdata_min_,data_max_иdata_range_. С помощью Джорджио Патрини.Все классы Scaler теперь имеют
scale_атрибут, покомпонентное масштабирование, применяемое ихtransformметоды. Старый атрибутstd_вpreprocessing.StandardScalerустарел и заменен наscale_; он не будет доступен в 0.19. К Джорджио Патрини.svm.SVCиsvm.NuSVCтеперь имеютdecision_function_shapeпараметр, чтобы сделать их функцию принятия решений формы(n_samples, n_classes)установкойdecision_function_shape='ovr'. Это будет поведением по умолчанию, начиная с версии 0.19. По Андреас Мюллер.Передача одномерных массивов данных в качестве входных данных для оценщиков теперь устарела, так как это вызывало путаницу в том, как элементы массива должны интерпретироваться как признаки или как выборки. Теперь все массивы данных должны иметь явную форму
(n_samples, n_features). Путем Вайгнеш Биродкар.lda.LDAиqda.QDAбыли перемещены вdiscriminant_analysis.LinearDiscriminantAnalysisиdiscriminant_analysis.QuadraticDiscriminantAnalysis.The
store_covarianceиtolпараметры были перемещены из метода fit в конструктор вdiscriminant_analysis.LinearDiscriminantAnalysisиstore_covariancesиtolпараметры были перемещены из метода fit в конструктор вdiscriminant_analysis.QuadraticDiscriminantAnalysis.Модели, наследующие от
_LearntSelectorMixinбольше не будет поддерживать методы transform. (т.е., RandomForests, GradientBoosting, LogisticRegression, DecisionTrees, SVMs и модели, связанные с SGD). Оберните эти модели в метапреобразовательfeature_selection.SelectFromModelчтобы удалить признаки (согласноcoefs_илиfeature_importances_), которые находятся ниже определенного порогового значения.cluster.KMeansповторно запускает назначение кластеров в случае отсутствия сходимости, чтобы обеспечить согласованностьpredict(X)иlabels_. С помощью Вайгнеш Биродкар.Модели классификатора и регрессора теперь помечены как таковые с использованием
_estimator_typeатрибут.Итераторы перекрестной проверки всегда предоставляют индексы для обучающей и тестовой выборок, а не булевы маски.
The
decision_functionна всех регрессорах была устаревшей и будет удалена в 0.19. Используйтеpredictвместо этого.datasets.load_lfw_pairsустарел и будет удален в версии 0.19. Используйтеdatasets.fetch_lfw_pairsвместо этого.Устаревший
hmmмодуль был удалён.Устаревший
Bootstrapитератор перекрестной проверки был удален.Устаревший
WardиWardAgglomerativeклассы были удалены. Используйтеcluster.AgglomerativeClusteringвместо этого.cross_validation.check_cvтеперь является публичной функцией.Свойство
residues_oflinear_model.LinearRegressionустарел и будет удалён в версии 0.19.Устаревший
n_jobsпараметрlinear_model.LinearRegressionбыл перемещен в конструктор.Удалены устаревшие
class_weightпараметр изlinear_model.SGDClassifier’sfitметод. Используйте вместо этого параметр конструктора.Устаревшая поддержка формата мультиметок в виде последовательности последовательностей (или списка списков) была удалена. Для преобразования в поддерживаемый формат двоичной индикаторной матрицы и обратно используйте
MultiLabelBinarizer.Поведение при вызове
inverse_transformметодPipeline.pipelineизменится в версии 0.19. Он больше не будет преобразовывать одномерный ввод в двумерный.Устаревшие атрибуты
indicator_matrix_,multilabel_иclasses_ofpreprocessing.LabelBinarizerбыли удалены.Используя
gamma=0вsvm.SVCиsvm.SVRдля автоматической установки gamma в1. / n_featuresустарел и будет удален в версии 0.19. Используйтеgamma="auto"вместо этого.
Участники кода#
Aaron Schumacher, Adithya Ganesh, akitty, Alexandre Gramfort, Alexey Grigorev, Ali Baharev, Allen Riddell, Ando Saabas, Andreas Mueller, Andrew Lamb, Anish Shah, Ankur Ankan, Anthony Erlinger, Ari Rouvinen, Arnaud Joly, Arnaud Rachez, Arthur Mensch, banilo, Barmaley.exe, benjaminirving, Boyuan Deng, Brett Naul, Brian McFee, Buddha Prakash, Chi Zhang, Chih-Wei Chang, Christof Angermueller, Christoph Gohlke, Christophe Bourguignat, Christopher Erick Moody, Chyi-Kwei Yau, Cindy Sridharan, CJ Carey, Clyde-fare, Cory Lorenz, Dan Blanchard, Daniel Galvez, Daniel Kronovet, Danny Sullivan, Data1010, David, David D Lowe, David Dotson, djipey, Dmitry Spikhalskiy, Donne Martin, Dougal J. Sutherland, Dougal Sutherland, edson duarte, Eduardo Caro, Eric Larson, Eric Martin, Erich Schubert, Fernando Carrillo, Frank C. Eckert, Frank Zalkow, Gael Varoquaux, Ganiev Ibraim, Gilles Louppe, Giorgio Patrini, giorgiop, Graham Clenaghan, Gryllos Prokopis, gwulfs, Henry Lin, Hsuan-Tien Lin, Immanuel Bayer, Ishank Gulati, Jack Martin, Jacob Schreiber, Jaidev Deshpande, Jake Vanderplas, Jan Hendrik Metzen, Jean Kossaifi, Jeffrey04, Jeremy, jfraj, Jiali Mei, Joe Jevnik, Joel Nothman, John Kirkham, John Wittenauer, Joseph, Joshua Loyal, Jungkook Park, KamalakerDadi, Kashif Rasul, Keith Goodman, Kian Ho, Konstantin Shmelkov, Kyler Brown, Lars Buitinck, Lilian Besson, Loic Esteve, Louis Tiao, maheshakya, Maheshakya Wijewardena, Manoj Kumar, MarkTab marktab.net, Martin Ku, Martin Spacek, MartinBpr, martinosorb, MaryanMorel, Masafumi Oyamada, Mathieu Blondel, Matt Krump, Matti Lyra, Maxim Kolganov, mbillinger, mhg, Michael Heilman, Michael Patterson, Miroslav Batchkarov, Nelle Varoquaux, Nicolas, Nikolay Mayorov, Olivier Grisel, Omer Katz, Óscar Nájera, Pauli Virtanen, Peter Fischer, Peter Prettenhofer, Phil Roth, pianomania, Preston Parry, Raghav RV, Rob Zinkov, Robert Layton, Rohan Ramanath, Saket Choudhary, Sam Zhang, santi, saurabh.bansod, scls19fr, Sebastian Raschka, Sebastian Saeger, Shivan Sornarajah, SimonPL, sinhrks, Skipper Seabold, Sonny Hu, sseg, Stephen Hoover, Steven De Gryze, Steven Seguin, Theodore Vasiloudis, Thomas Unterthiner, Tiago Freitas Pereira, Tian Wang, Tim Head, Timothy Hopper, tokoroten, Tom Dupré la Tour, Trevor Stephens, Valentin Stolbunov, Vighnesh Birodkar, Vinayak Mehta, Vincent, Vincent Michel, vstolbunov, wangz10, Wei Xue, Yucheng Low, Yury Zhauniarovich, Zac Stewart, zhai_pro, Zichen Wang