Версия 0.15#

Версия 0.15.2#

4 сентября 2014

Исправления ошибок#

  • Исправлена обработка p параметр расстояния Минковского, который ранее игнорировался в моделях ближайших соседей. С помощью Николай Майоров.

  • Исправлены дублирующиеся альфы в linear_model.LassoLars с ранней остановкой на 32-битном Python. От Оливье Гризель и Fabian Pedregosa.

  • Исправлена сборка под Windows, когда scikit-learn собирается с MSVC, а NumPy собирается с MinGW. Благодаря Оливье Гризель и Федерико Ваджи.

  • Исправлена ошибка переполнения индекса массива в решателе координатного спуска. С помощью Гаэль Варокво.

  • Улучшенная обработка предупреждений об устаревании в numpy 1.9. Благодаря Гаэль Варокво.

  • Удалено ненужное копирование данных в cluster.KMeans. Путем Гаэль Варокво.

  • Явно закрыть открытые файлы, чтобы избежать ResourceWarnings под Python 3. Автор: Calvin Giles.

  • The transform of discriminant_analysis.LinearDiscriminantAnalysis теперь проецирует входные данные на наиболее дискриминантные направления. Автор: Martin Billinger.

  • Исправлен потенциальный переполнение в _tree.safe_realloc by Lars Buitinck.

  • Оптимизация производительности в isotonic.IsotonicRegression. Автор: Роберт Брэдшоу.

  • nose больше не является зависимостью времени выполнения для импорта sklearn, только для запуска тестов. По Joel Nothman.

  • Многочисленные исправления документации и веб-сайта от Joel Nothman, Lars Buitinck Мэтт Пикои другие.

Версия 0.15.1#

1 августа 2014

Исправления ошибок#

  • Сделано cross_validation.cross_val_score использовать cross_validation.KFold вместо cross_validation.StratifiedKFold в задачах многоклассовой классификации. Nikolay Mayorov.

  • Поддержка непредвиденных меток preprocessing.LabelBinarizer для восстановления поведения по умолчанию версии 0.14.1 в целях обратной совместимости. Путем Hamzeh Alsalhi.

  • Исправлен cluster.KMeans критерий остановки, который предотвращал раннее обнаружение сходимости. Авторы: Эдвард Рафф и Гаэль Варокво.

  • Исправлено поведение multiclass.OneVsOneClassifier. в случае равенства голосов на уровне классов путём вычисления правильной суммы баллов прогноза по классам. С помощью Андреас Мюллер.

  • Сделано cross_validation.cross_val_score и grid_search.GridSearchCV принимают списки Python в качестве входных данных. Это особенно полезно для перекрестной проверки и выбора моделей конвейеров обработки текста. Путем Андреас Мюллер.

  • Исправлены проверки входных данных для большинства оценщиков, чтобы принимать входные данные, которые реализуют NumPy __array__ протокол. Это относится к pandas.Series и pandas.DataFrame в последних версиях pandas. С помощью Гаэль Варокво.

  • Исправлена регрессия для linear_model.SGDClassifier с class_weight="auto" на данных с несмежными метками. Путем Оливье Гризель.

Версия 0.15#

15 июля 2014

Основные моменты#

  • Многочисленные улучшения скорости и памяти по всему коду

  • Значительные улучшения скорости и использования памяти для случайных лесов (и дополнительных деревьев), которые также лучше используют параллельные вычисления.

  • Инкрементное обучение для BernoulliRBM

  • Добавлен cluster.AgglomerativeClustering для иерархической агломеративной кластеризации со средними, полными связями и стратегией Уорда.

  • Добавлен linear_model.RANSACRegressor для моделей устойчивой регрессии.

  • Добавлено уменьшение размерности с manifold.TSNE который может быть использован для визуализации многомерных данных.

Журнал изменений#

Новые возможности#

Улучшения#

  • Добавить поддержку разреженного ввода в ensemble.AdaBoostClassifier и ensemble.AdaBoostRegressor мета-оценщики. Путём Hamzeh Alsalhi.

  • Улучшения памяти деревьев решений, от Arnaud Joly.

  • Деревья решений теперь могут строиться в порядке лучшего выбора с использованием max_leaf_nodes в качестве критерия остановки. Рефакторинг кода дерева для использования либо стека, либо очереди с приоритетом для построения дерева. Автор Peter Prettenhofer и Gilles Louppe.

  • Деревья решений теперь могут обучаться на массивах в стиле фортрана и C, и на непрерывных массивах без необходимости создания копии. Если входной массив имеет другой dtype, чем np.float32, будет создана копия в стиле фортрана, поскольку макет памяти в стиле фортрана имеет преимущества в скорости. По Peter Prettenhofer и Gilles Louppe.

  • Ускорение регрессионных деревьев за счет оптимизации вычисления критерия средней квадратичной ошибки. Это привело к ускорению модулей дерева, леса и градиентного бустинга деревьев. От Arnaud Joly

  • The img_to_graph и grid_tograph функции в sklearn.feature_extraction.image теперь возвращает np.ndarray вместо np.matrix когда return_as=np.ndarray. См. раздел Примечания для получения дополнительной информации о совместимости.

  • Изменено внутреннее хранение деревьев решений на использование массива структур. Это исправило некоторые мелкие ошибки, улучшило код и дало небольшой прирост скорости. Автор Joel Nothman.

  • Уменьшить использование памяти и накладные расходы при подгонке и прогнозировании с лесами рандомизированных деревьев параллельно с n_jobs != 1 используя новый многопоточный бэкенд joblib 0.8 и освобождая GIL в Cython-коде построения дерева. Путем Оливье Гризель и Gilles Louppe.

  • Ускорение sklearn.ensemble.gradient_boosting модуль. С помощью Gilles Louppe и Peter Prettenhofer.

  • Различные улучшения для sklearn.ensemble.gradient_boosting Вызываемый объект для использования при обратном преобразовании. Он будет получать те же аргументы, что и обратное преобразование, с переадресацией args и kwargs. Если inverse_func равен None, то inverse_func будет тождественной функцией. warm_start аргумент для добавления дополнительных деревьев, max_leaf_nodes аргумент для обучения деревьев в стиле GBM, monitor аргумент fit для инспекции оценщика во время обучения и рефакторинга подробного кода. С помощью Peter Prettenhofer.

  • Быстрее sklearn.ensemble.ExtraTrees путем кэширования значений признаков. Путем Arnaud Joly.

  • Более быстрый алгоритм построения дерева на основе глубины, такой как дерево решений, случайный лес, экстра-деревья или градиентный бустинг деревьев (со стратегией роста на основе глубины), избегая попыток разделения на найденные постоянные признаки в подмножестве выборки. По Arnaud Joly.

  • Добавить min_weight_fraction_leaf параметр предварительной обрезки для древовидных методов: минимальная взвешенная доля входных выборок, требуемая для нахождения в листовом узле. По Noel Dawe.

  • Добавлен metrics.pairwise_distances_argmin_min, автор Philippe Gervais.

  • Добавлен метод predict к cluster.AffinityPropagation и cluster.MeanShift, от Мати́ Блондель.

  • Векторные и матричные умножения были оптимизированы по всей библиотеке с помощью Denis Engemann, и Александр Грамфор. В частности, они должны занимать меньше памяти в старых версиях NumPy (до 1.7.2).

  • Примеры точности-полноты и ROC теперь используют train_test_split и содержат больше объяснений, почему эти метрики полезны. С помощью Кайл Кастнер

  • Алгоритм обучения для decomposition.NMF быстрее для разреженных матриц и имеет гораздо меньшую сложность по памяти, что означает, что он будет масштабироваться до больших наборов данных. С помощью Lars Buitinck.

  • Добавлена опция svd_method со значением по умолчанию "randomized" для decomposition.FactorAnalysis для экономии памяти и значительного ускорения вычислений за счёт Denis Engemann, и Александр Грамфор.

  • Изменено cross_validation.StratifiedKFold чтобы попытаться сохранить как можно больше исходного порядка выборок, чтобы не скрывать переобучение на наборах данных с заметным уровнем зависимости выборок. Путем Daniel Nouri и Оливье Гризель.

  • Добавьте поддержку многомерного вывода в gaussian_process.GaussianProcessRegressor от John Novak.

  • Поддержка предварительно вычисленных матриц расстояний в оценщиках ближайших соседей от Роберт Лейтон и Joel Nothman.

  • Вычисления норм оптимизированы для NumPy 1.6 и более поздних версий с помощью Lars Buitinck. В частности, алгоритм k-means больше не нуждается во временной структуре данных размером с его вход.

  • dummy.DummyClassifier теперь может использоваться для предсказания постоянного выходного значения. Путем Manoj Kumar.

  • dummy.DummyRegressor теперь имеет параметр strategy, который позволяет предсказывать среднее, медиану обучающего набора или постоянное выходное значение. По Maheshakya Wijewardena.

  • Мультиметочная классификация в формате индикатора мультиметок теперь поддерживается metrics.roc_auc_score и metrics.average_precision_score by Arnaud Joly.

  • Значительное улучшение производительности (более чем 100-кратное ускорение для больших задач) в isotonic.IsotonicRegression by Эндрю Таллок.

  • -0.008449 n_jobs>1. Путем Lars Buitinck.

  • Поиск по сетке и перекрестная проверка допускают значения NaN во входных массивах, чтобы предобработчики, такие как preprocessing.Imputer может обучаться внутри цикла перекрестной проверки, избегая потенциально искаженных результатов.

  • Ридж-регрессия теперь может работать с весами выборок в пространстве признаков (ранее только в пространстве выборок). С помощью Michael Eickenberg. Оба решения предоставляются решателем Холецкого.

  • Несколько метрик классификации и регрессии теперь поддерживают взвешенные образцы с новым 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. Путем Noel Dawe.

  • Ускорение генератора образцов datasets.make_multilabel_classification. С помощью Joel Nothman.

Улучшения документации#

  • Учебник по работе с текстовыми данными теперь включен в раздел учебников основной документации. Включает упражнения и заготовки для презентации учебника. Оригинальный учебник создан несколькими авторами, включая Оливье Гризель, Ларс Бюйтинк и многие другие. Интеграция учебных материалов в документацию scikit-learn выполнена Jaques Grobler

  • Добавлен Вычислительная производительность документация. Обсуждение и примеры задержки предсказания / пропускной способности и различных факторов, влияющих на скорость. Дополнительные советы по построению более быстрых моделей и выбору соответствующего компромисса между скоростью и предсказательной силой. Автор Юсташ Дьемер.

Исправления ошибок#

  • Исправлена ошибка в decomposition.MiniBatchDictionaryLearning : partial_fit работал некорректно.

  • Исправлена ошибка в linear_model.stochastic_gradient : l1_ratio был использован как (1.0 - l1_ratio) .

  • Исправлена ошибка в multiclass.OneVsOneClassifier со строковыми метками.

  • Исправлена ошибка в LassoCV и ElasticNetCV: они не будут предварительно вычислять матрицу Грама с precompute=True или precompute="auto" и n_samples > n_features. С помощью Manoj Kumar.

  • Исправлена некорректная оценка степеней свободы в feature_selection.f_regression когда переменные не центрированы. Путем Virgile Fritsch.

  • Исправлено состояние гонки при параллельной обработке с pre_dispatch != "all" (например, в cross_val_score). С помощью Оливье Гризель.

  • Вызвать ошибку в cluster.FeatureAgglomeration и cluster.WardAgglomeration когда не предоставлены образцы, вместо возврата бессмысленной кластеризации.

  • Исправлена ошибка в gradient_boosting.GradientBoostingRegressor с loss='huber': gamma может быть не инициализирован.

  • Исправлены важности признаков, вычисленные с помощью леса рандомизированных деревьев при обучении с sample_weight != None и/или с bootstrap=True. Путем Gilles Louppe.

Сводка изменений API#

  • sklearn.hmm устарел. Его удаление запланировано на выпуск 0.17.

  • Использование covariance.EllipticEnvelop был удалён после устаревания. Пожалуйста, используйте covariance.EllipticEnvelope вместо этого.

  • cluster.Ward устарел. Используйте cluster.AgglomerativeClustering вместо этого.

  • cluster.WardClustering устарел. Используйте

  • cluster.AgglomerativeClustering вместо этого.

  • cross_validation.Bootstrap устарело. cross_validation.KFold или cross_validation.ShuffleSplit рекомендуются вместо этого.

  • Прямая поддержка формата мультиметок в виде последовательности последовательностей (или списка списков) устарела. Для преобразования в поддерживаемый формат бинарной индикаторной матрицы и обратно используйте preprocessing.MultiLabelBinarizer. Путем Joel Nothman.

  • Добавить метод score в decomposition.PCA следуя модели вероятностного PCA и устаревает ProbabilisticPCA модель, чья реализация оценки неверна. Теперь вычисление также использует лемму обращения матрицы для более быстрого вычисления. С помощью Александр Грамфор.

  • Метод оценки decomposition.FactorAnalysis теперь возвращает среднее логарифмическое правдоподобие образцов. Используйте score_samples для получения логарифмического правдоподобия каждого образца. По Александр Грамфор.

  • Генерация булевых масок (настройка indices=False) из генераторов перекрестной проверки устарело. Поддержка масок будет удалена в версии 0.17. Генераторы по умолчанию производят массивы индексов с версии 0.10. К Joel Nothman.

  • 1-мерные массивы, содержащие строки с dtype=object (как используется в Pandas) теперь считаются допустимыми целями классификации. Это исправляет регрессию из версии 0.13 в некоторых классификаторах. По Joel Nothman.

  • Исправить неправильный explained_variance_ratio_ атрибут в RandomizedPCA. Путем Александр Грамфор.

  • Подобрать альфы для каждого l1_ratio вместо mean_l1_ratio в linear_model.ElasticNetCV и linear_model.LassoCV. Это изменяет форму alphas_ из (n_alphas,) to (n_l1_ratio, n_alphas) если l1_ratio предоставлен одномерный массивоподобный объект длины больше единицы. По Manoj Kumar.

  • Исправление linear_model.ElasticNetCV и linear_model.LassoCV при подгонке intercept и разреженных входных данных. Автоматическая сетка alphas была вычислена некорректно, и масштабирование с normalize было ошибочным. С помощью Manoj Kumar.

  • Исправлена неправильная максимальная количество извлекаемых признаков (max_features) на каждом разбиении для деревьев решений, случайных лесов и градиентного бустинга деревьев. Ранее подсчет количества выбранных признаков начинался только после одного непостоянного признака в разбиении. Это исправление ошибки повлияет на вычислительную производительность и обобщающую способность этих алгоритмов при наличии постоянных признаков. Чтобы вернуть предыдущую обобщающую способность, вам следует изменить значение max_features. Путем Arnaud Joly.

  • Исправлена неправильная максимальная количество извлекаемых признаков (max_features) на каждом разбиении для ensemble.ExtraTreesClassifier и ensemble.ExtraTreesRegressor. Ранее только непостоянные признаки в разбиении считались выбранными. Теперь постоянные признаки также считаются выбранными. Кроме того, хотя бы один признак должен быть непостоянным, чтобы сделать допустимое разбиение. Это исправление ошибки повлияет на вычислительную и обобщающую производительность дополнительных деревьев в присутствии постоянных признаков. Чтобы вернуть предыдущую обобщающую производительность, следует изменить значение max_features. Путем Arnaud Joly.

  • Исправление utils.class_weight.compute_class_weight когда class_weight=="auto". Ранее он был сломан для ввода нецелочисленных dtype и возвращаемый взвешенный массив был неверным. Исправлено Manoj Kumar.

  • Исправление cross_validation.Bootstrap для возврата ValueError когда n_train + n_test > n. С помощью Рональд Флипо.

Люди#

Список участников для выпуска 0.15 по количеству коммитов.

  • 312 Оливье Гризель

  • 275 Ларс Бёйтинк

  • 221 Gael Varoquaux

  • 148 Arnaud Joly

  • 134 Йоханнес Шёнбергер

  • 119 Gilles Louppe

  • 113 Joel Nothman

  • 111 Александр Грамфор

  • 95 Jaques Grobler

  • 89 Denis Engemann

  • 83 Peter Prettenhofer

  • 83 Александр Фабиш

  • 62 Mathieu Blondel

  • 60 Юсташ Димерт

  • 60 Nelle Varoquaux

  • 49 Michael Bommarito

  • 45 Manoj-Kumar-S

  • 28 Кайл Кастнер

  • 26 Андреас Мюллер

  • 22 Ноэл Доу

  • 21 Maheshakya Wijewardena

  • 21 Brooke Osborn

  • 21 Хамзех Альсалхи

  • 21 Джейк ВандерПлас

  • 21 Philippe Gervais

  • 19 Bala Subrahmanyam Varanasi

  • 12 Рональд Флипо

  • 10 Mikhail Korobov

  • 8 Thomas Unterthiner

  • 8 Jeffrey Blackburne

  • 8 eltermann

  • 8 bwignall

  • 7 Анкит Агравал

  • 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 Виржиль Фрич

  • 4 Sebastian Säger

  • 4 Ilambharathi Kanniah

  • 4 sdenton4

  • 4 Роберт Лейтон

  • 4 Alyssa

  • 4 Amos Waterland

  • 3 Andrew Tulloch

  • 3 murad

  • 3 Стивен Мод

  • 3 Karol Pysniak

  • 3 Жак Квам

  • 3 cgohlke

  • 3 cjlin

  • 3 Michael Becker

  • 3 hamzeh

  • 3 Эрик Джейкобсен

  • 3 john collins

  • 3 kaushik94

  • 3 Erwin Marsi

  • 2 csytracy

  • 2 LK

  • 2 Vlad Niculae

  • 2 Лоран Дирер

  • 2 Erik Shilts

  • 2 Рауль Гаррета

  • 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 Саймон Фрид

  • 2 Félix-Antoine Fortin

  • 1 Ralf Gommers

  • 1 t-aft

  • 1 Ronan Amicel

  • 1 Rupesh Kumar Srivastava

  • 1 Ryan Wang

  • 1 Самюэль Шаррон

  • 1 Samuel St-Jean

  • 1 Фабиан Педрегоса

  • 1 Skipper Seabold

  • 1 Стефан Валк

  • 1 Stefan van der Walt

  • 1 Stephan Hoyer

  • 1 Allen Riddell

  • 1 Валентин Хенель

  • 1 Виджай Рамеш

  • 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 дикие дрожжи

  • 1 jamestwebber

  • 1 matrixorz

  • 1 popo

  • 1 samuela

  • 1 Франсуа Булонь

  • 1 Мера Александра

  • 1 Итан Уайт

  • 1 Guilherme Trein

  • 1 Хендрик Хойер

  • 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 Денис

  • 1 John

  • 1 John Schmidt

  • 1 Хорхе Каньярдо Аластуэй

  • 1 Joseph Perla

  • 1 Джошуа Вредевуд

  • 1 José Ricardo

  • 1 Жюльен Миотт

  • 1 Kemal Eren

  • 1 Кента Сато

  • 1 Дэвид Курнапо

  • 1 Кайл Келли

  • 1 Daniele Medri

  • 1 Laurent Luce

  • 1 Laurent Pierron

  • 1 Луис Педро Коэльо

  • 1 DanielWeitzenfeld

  • 1 Крейг Томпсон

  • 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 Брайан Лант

  • 1 Брайан Кернс

  • 1 Paul Butler

  • 1 Paweł Mandera

  • 1 Пётр

  • 1 Andrew Ash

  • 1 Пьетро Дзамбелли

  • 1 staubda