Версия 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
transformofdiscriminant_analysis.LinearDiscriminantAnalysisтеперь проецирует входные данные на наиболее дискриминантные направления. Автор: Martin Billinger.Исправлен потенциальный переполнение в
_tree.safe_reallocby 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.BaggingClassifierиensemble.BaggingRegressorмета-оценщики для ансамблирования любого вида базового оценщика. См. Бэггинг раздел руководства пользователя для подробностей и примеров. По Gilles Louppe.Новый алгоритм неконтролируемого отбора признаков
feature_selection.VarianceThreshold, от Lars Buitinck.Добавлен
linear_model.RANSACRegressorмета-оценщик для робастной подгонки регрессионных моделей. Путем Йоханнес Шёнбергер.Добавлен
cluster.AgglomerativeClusteringдля иерархической агломеративной кластеризации со стратегиями среднего связывания, полного связывания и Варда, с помощью Нель Варокво и Гаэль Варокво.Сокращённые конструкторы
pipeline.make_pipelineиpipeline.make_unionбыли добавлены Lars Buitinck.Опция перемешивания для
cross_validation.StratifiedKFold. Путем Jeffrey Blackburne.Инкрементальное обучение (
partial_fit) для Гауссовского наивного байесовского классификатора от Имрана Хаке.Добавлен
partial_fittoBernoulliRBMПо Дэнни Салливан.Добавлен
learning_curveутилита для построения графика производительности относительно размера обучения. См. Построение кривых обучения и проверка масштабируемости моделей. Автор: Александр Фабиш.Добавить положительную опцию в
LassoCVиElasticNetCV. Авторы: Брайан Уигналл и Александр Грамфор.Добавлен
linear_model.MultiTaskElasticNetCVиlinear_model.MultiTaskLassoCV. С помощью Manoj Kumar.Добавлен
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_scoreby Arnaud Joly.Значительное улучшение производительности (более чем 100-кратное ускорение для больших задач) в
isotonic.IsotonicRegressionby Эндрю Таллок.-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