Версия 0.18#
Предупреждение
Scikit-learn 0.18 — последний крупный выпуск scikit-learn, поддерживающий Python 2.6. Более поздние версии scikit-learn потребуют Python 2.7 или выше.
Версия 0.18.2#
20 июня 2017
Журнал изменений#
Участники кода#
Aman Dalmia, Loic Esteve, Nate Guerin, Sergei Lebedev
Версия 0.18.1#
11 ноября 2016 года
Журнал изменений#
Улучшения#
Улучшено
sample_without_replacementскорость за счёт использования numpy.random.permutation в большинстве случаев. В результате выборки могут отличаться в этом выпуске для фиксированного случайного состояния. Затронутые модели:Это также влияет на
datasets.make_classificationметод.
Исправления ошибок#
Исправлена проблема, где
min_grad_normиn_iter_without_progressпараметры не использовалисьmanifold.TSNE. #6497 by Себастьян ЗэгерИсправлена ошибка для значений решений svm, когда
decision_function_shapeявляетсяovrвsvm.SVC.svm.SVCdecision_function был некорректен в версиях 0.17.0 по 0.18.0. #7724 by Бинг Тянь ДайАтрибут
explained_variance_ratioofdiscriminant_analysis.LinearDiscriminantAnalysisрассчитанные с использованием SVD и собственного решателя теперь имеют одинаковую длину. #7632 by JPFrancoiaИсправляет проблему в Одномерный отбор признаков где функции оценки не принимали многоклассовые цели. #7676 by Mohammed Affan
Фиксированная установка параметров при вызове
fitнесколько раз наfeature_selection.SelectFromModel. #7756 by Андреас МюллерИсправляет проблему в
partial_fitметодmulticlass.OneVsRestClassifierкогда количество классов, используемых вpartial_fitбыло меньше общего количества классов в данных. #7786 by Srivatsan RameshИсправляет проблему в
calibration.CalibratedClassifierCVгде сумма вероятностей каждого класса для данных не равнялась 1, иCalibratedClassifierCVтеперь обрабатывает случай, когда обучающий набор имеет меньшее количество классов, чем общие данные. #7799 by Srivatsan RameshИсправлена ошибка, где
sklearn.feature_selection.SelectFdrне реализовал точно процедуру Бенджамини-Хохберга. Ранее он мог выбирать меньше признаков, чем следовало. #7490 by Peng Meng.sklearn.manifold.LocallyLinearEmbeddingтеперь корректно обрабатывает целочисленные входные данные. #6282 by Jake Vanderplas.The
min_weight_fraction_leafparameter древовидных классификаторов и регрессоров теперь по умолчанию предполагает равные веса выборки, еслиsample_weightаргумент не передаётся вfitфункция. Ранее параметр молча игнорировался. #7301 by Nelson Liu.Численная проблема с
linear_model.RidgeCVна центрированных данных, когдаn_features > n_samples. #6178 by Bertrand ThirionКлонирование/сериализация классов критериев разделения деревьев теперь безопасна для памяти #7680 by Ибраим Ганиев.
Исправлена ошибка, где
decomposition.NMFустанавливает егоn_iters_атрибут вtransform(). #7553 by Екатерина Кривич.sklearn.linear_model.LogisticRegressionCVтеперь корректно обрабатывает строковые метки. #5874 by Рагхав РВ.Исправлена ошибка, где
sklearn.model_selection.train_test_splitвызвал ошибку, когдаstratifyявляется списком строковых меток. #7593 by Рагхав РВ.Исправлена ошибка, где
sklearn.model_selection.GridSearchCVиsklearn.model_selection.RandomizedSearchCVне были сериализуемы pickle из-за ошибки сериализации вnp.ma.MaskedArray. #7594 by Рагхав РВ.Все утилиты перекрёстной проверки в
sklearn.model_selectionтеперь разрешают однократные сплиттеры кросс-валидации дляcvпараметр. Также недетерминированные разделители перекрестной проверки (где несколько вызововsplitпроизводить различные разбиения) могут использоваться какcvпараметр.sklearn.model_selection.GridSearchCVбудет перекрестно проверять каждую настройку параметра на разбиении, созданном первымsplitвызова к разделителю перекрестной проверки. #7660 by Рагхав РВ.Исправлена ошибка, где
preprocessing.MultiLabelBinarizer.fit_transformвернул недопустимую CSR-матрицу. #7750 by CJ Кэри.Исправлена ошибка, где
metrics.pairwise.cosine_distancesможет возвращать небольшое отрицательное расстояние. #7732 by Артсион.
Сводка изменений API#
Деревья и леса
The
min_weight_fraction_leafparameter древовидных классификаторов и регрессоров теперь по умолчанию предполагает равные веса выборки, еслиsample_weightаргумент не передаётся вfitфункция. Ранее параметр молча игнорировался. #7301 by Nelson Liu.Клонирование/сериализация классов критериев разделения дерева теперь безопасна для памяти. #7680 by Ибраим Ганиев.
Линейные, ядерные и связанные модели
Длина
explained_variance_ratioofdiscriminant_analysis.LinearDiscriminantAnalysisизменено для решателей Eigen и SVD. Атрибут теперь имеет длину min(n_components, n_classes - 1). #7632 by JPFrancoiaЧисленная проблема с
linear_model.RidgeCVна центрированных данных, когдаn_features > n_samples. #6178 by Bertrand Thirion
Версия 0.18#
28 сентября 2016
Улучшения выбора модели и изменения API#
Модуль model_selection
Новый модуль
sklearn.model_selection, который объединяет функциональность ранееsklearn.cross_validation,sklearn.grid_searchиsklearn.learning_curve, открывает новые возможности, такие как вложенная перекрестная проверка и лучшее управление поиском параметров с Pandas.Многое останется прежним, но есть некоторые ключевые различия. Прочитайте ниже, чтобы узнать больше об изменениях.
Независимые от данных CV-сплиттеры, позволяющие выполнять вложенную перекрестную проверку
Новые сплиттеры кросс-валидации, определенные в
sklearn.model_selectionбольше не инициализируются какими-либо параметрами, зависящими от данных, такими какy. Вместо этого они предоставляютsplitметод, который принимает данные и выдаёт генератор для различных разбиений.Это изменение позволяет использовать разделители перекрёстной проверки для выполнения вложенной перекрёстной проверки, что облегчается
model_selection.GridSearchCVиmodel_selection.RandomizedSearchCVutilities.Улучшенный атрибут cv_results_
Новый
cv_results_атрибут (изmodel_selection.GridSearchCVиmodel_selection.RandomizedSearchCV) введен вместоgrid_scores_атрибут представляет собой словарь одномерных массивов, где элементы в каждом массиве соответствуют настройкам параметров (т.е. кандидатам для поиска).The
cv_results_словарь можно легко импортировать вpandasв качествеDataFrameдля исследования результатов поиска.The
cv_results_массивы включают оценки для каждого разделения перекрестной проверки (с ключами, такими как'split0_test_score'), а также их среднее ('mean_test_score') и стандартное отклонение ('std_test_score').Ранги для кандидатов поиска (основанные на их среднем показателе перекрестной проверки) доступны по адресу
cv_results_['rank_test_score'].Значения параметров для каждого параметра хранятся отдельно как маскированные объектные массивы numpy. Значение для данного кандидата поиска маскируется, если соответствующий параметр неприменим. Дополнительно список всех словарей параметров хранится в
cv_results_['params'].Параметры n_folds и n_iter переименованы в n_splits
Некоторые имена параметров изменились:
n_foldsпараметра в новомmodel_selection.KFold,model_selection.GroupKFold(см. ниже изменение названия), иmodel_selection.StratifiedKFoldтеперь переименован вn_splits.n_iterпараметр вmodel_selection.ShuffleSplit, новый классmodel_selection.GroupShuffleSplitиmodel_selection.StratifiedShuffleSplitтеперь переименован вn_splits.Переименование классов-разделителей, которые принимают метки групп вместе с данными
Разделители перекрестной проверки
LabelKFold,LabelShuffleSplit,LeaveOneLabelOutиLeavePLabelOutбыли переименованы вmodel_selection.GroupKFold,model_selection.GroupShuffleSplit,model_selection.LeaveOneGroupOutиmodel_selection.LeavePGroupsOutсоответственно.Обратите внимание на изменение от единственного к множественному числу в
model_selection.LeavePGroupsOut.Параметры меток подгонки переименованы в группы
The
labelsпараметр вsplitметод переименованных разделителейmodel_selection.GroupKFold,model_selection.LeaveOneGroupOut,model_selection.LeavePGroupsOut,model_selection.GroupShuffleSplitпереименован вgroupsследуя новой номенклатуре их имен классов.Параметр n_labels переименован в n_groups
Параметр
n_labelsв переименованномmodel_selection.LeavePGroupsOutизменено наn_groups.Оценки обучения и информация о времени
cv_results_также включает оценки обучения для каждого разбиения перекрестной проверки (с ключами, такими как'split0_train_score'), а также их среднее ('mean_train_score') и стандартное отклонение ('std_train_score'). Чтобы избежать затрат на вычисление оценки обучения, установитеreturn_train_score=False.Кроме того, среднее значение и стандартное отклонение времени, затраченного на разбиение, обучение и оценку модели по всем разбиениям перекрестной проверки, доступны по ключу
'mean_time'и'std_time'соответственно.
Журнал изменений#
Новые возможности#
Классификаторы и регрессоры
Модуль гауссовских процессов был переработан и теперь предлагает классификацию и регрессионные оценки через
gaussian_process.GaussianProcessClassifierиgaussian_process.GaussianProcessRegressor. Среди прочего, новая реализация поддерживает инженерию ядер, градиентную оптимизацию гиперпараметров или выборку функций из априорного и апостериорного GP. Предоставляется обширная документация и примеры. По Ян Хендрик Метцен.Добавлен новый алгоритм обучения с учителем: Многослойный перцептрон #3204 by Иссам Х. Ларажди
Добавлен
linear_model.HuberRegressor, линейная модель, устойчивая к выбросам. #5291 by Manoj Kumar.Добавлен
multioutput.MultiOutputRegressorмета-оценщик. Он преобразует регрессоры с одним выходом в регрессоры с несколькими выходами, обучая один регрессор на каждый выход. Автор Tim Head.
Другие оценщики
Новый
mixture.GaussianMixtureиmixture.BayesianGaussianMixtureзаменяют прежние модели смесей, используя более быстрый вывод для получения более надежных результатов. #7295 by Вэй Сюэ и Thierry Guillemot.Класс
decomposition.RandomizedPCAтеперь учитывается вdecomposition.PCAи он доступен при вызове с параметромsvd_solver='randomized'. Количество по умолчаниюn_iterдля'randomized'изменилось на 4. Старое поведение PCA восстанавливается с помощьюsvd_solver='full'. Дополнительный решатель вызываетarpackи выполняет усечённое (нерандомизированное) SVD. По умолчанию выбирается наилучший решатель в зависимости от размера входных данных и запрашиваемого количества компонент. #5299 by Джорджио Патрини.Добавлены две функции для оценки взаимной информации:
feature_selection.mutual_info_classifиfeature_selection.mutual_info_regression. Эти функции могут быть использованы вfeature_selection.SelectKBestиfeature_selection.SelectPercentileв качестве функций оценки. Путем Андреа Брави и Nikolay Mayorov.Добавлен
ensemble.IsolationForestкласс для обнаружения аномалий на основе случайных лесов. С помощью Nicolas Goix.Добавлен
algorithm="elkan"tocluster.KMeansреализация быстрого алгоритма K-Means Элкана. С помощью Андреас Мюллер.
Выбор и оценка модели
Добавлен
metrics.fowlkes_mallows_score, индекс Фоулкса-Мэллоуза, который измеряет сходство двух кластеризаций набора точек По Арно Фушэ и Thierry Guillemot.Добавлен
metrics.calinski_harabaz_score, который вычисляет оценку Калинского и Харабаза для оценки полученной кластеризации набора точек. С помощью Арно Фушэ и Thierry Guillemot.Добавлен новый разделитель перекрестной проверки
model_selection.TimeSeriesSplitдля обработки данных временных рядов. #6586 by YenChen LinИтераторы перекрестной проверки заменяются разделителями перекрестной проверки, доступными из
sklearn.model_selection, позволяя выполнять вложенную перекрестную проверку. См. Улучшения выбора модели и изменения API для получения дополнительной информации. #4294 by Рагхав РВ.
Улучшения#
Деревья и ансамбли
Добавлен новый критерий разделения для
tree.DecisionTreeRegressor, средняя абсолютная ошибка. Этот критерий также может использоваться вensemble.ExtraTreesRegressor,ensemble.RandomForestRegressor, и оценщики градиентного бустинга. #6667 by Nelson Liu.Добавлен взвешенный критерий ранней остановки на основе примесей для роста дерева решений. #6954 by Nelson Liu
Оценщики случайного леса, экстра-деревьев и дерева решений теперь имеют метод
decision_pathкоторый возвращает путь решений для образцов в дереве. С помощью Arnaud Joly.Добавлен новый пример, раскрывающий структуру дерева решений. Путем Arnaud Joly.
Случайный лес, экстра-деревья, деревья решений и оценщик градиентного бустинга принимают параметр
min_samples_splitиmin_samples_leafпредоставляется в процентах от обучающих выборок. Путем yelite и Arnaud Joly.Оценщики градиентного бустинга принимают параметр
criterionдля указания критерия разделения, используемого во встроенных деревьях решений. #6667 by Nelson Liu.Объем памяти уменьшен (иногда значительно) для
ensemble.bagging.BaseBaggingи классы, которые наследуются от него, т.е.,ensemble.BaggingClassifier,ensemble.BaggingRegressor, иensemble.IsolationForest, путем динамического создания атрибутаestimators_samples_только когда это необходимо. Путем David Staub.Добавлен
n_jobsиsample_weightпараметры дляensemble.VotingClassifierдля обучения базовых оценщиков параллельно. #5805 by Ибраим Ганиев.
Линейные, ядерные и связанные модели
В
linear_model.LogisticRegression, решатель SAG теперь доступен в мультиномиальном случае. #5251 by Tom Dupre la Tour.linear_model.RANSACRegressor,svm.LinearSVCиsvm.LinearSVRтеперь поддерживаетsample_weight. Путем Imaculate.Добавить параметр
losstolinear_model.RANSACRegressorдля измерения ошибки на образцах в каждом испытании. С помощью Manoj Kumar.Предсказание вневыборочных событий с помощью изотонической регрессии (
isotonic.IsotonicRegression) теперь намного быстрее (более чем в 1000 раз в тестах с синтетическими данными). С помощью Jonathan Arfa.Изотоническая регрессия (
isotonic.IsotonicRegression) теперь использует лучший алгоритм, чтобы избежатьO(n^2)поведение в патологических случаях, а также обычно быстрее (##6691). С помощью Antony Lee.naive_bayes.GaussianNBтеперь принимает априорные вероятности классов, не зависящие от данных, через параметрpriors. С помощью Guillaume Lemaitre.linear_model.ElasticNetиlinear_model.Lassoтеперь работает сnp.float32входные данные без преобразования их вnp.float64. Это позволяет уменьшить потребление памяти. #6913 by YenChen Lin.semi_supervised.LabelPropagationиsemi_supervised.LabelSpreadingтеперь принимают произвольные функции ядра в дополнение к строкамknnиrbf. #5762 by Utkarsh Upadhyay.
Разложение, обучение многообразию и кластеризация
Добавлен
inverse_transformфункция дляdecomposition.NMFдля вычисления матрицы данных исходной формы. С помощью Аниш Шах.cluster.KMeansиcluster.MiniBatchKMeansтеперь работает сnp.float32иnp.float64входные данные без их преобразования. Это позволяет уменьшить потребление памяти, используяnp.float32. #6846 by Себастьян Зэгер и YenChen Lin.
Предобработка и отбор признаков
preprocessing.RobustScalerтеперь принимаетquantile_rangeпараметр. #5929 by Константин Подшумок.feature_extraction.FeatureHasherтеперь принимает строковые значения. #6173 by Ryad Zenine и Devashish Deshpande.Аргументы ключевых слов теперь могут передаваться в
funcвpreprocessing.FunctionTransformerс помощьюkw_argsпараметр. Путем Брайан МакФи.feature_selection.SelectKBestиfeature_selection.SelectPercentileтеперь принимают функции оценки, которые принимают X, y на вход и возвращают только оценки. С помощью Nikolay Mayorov.
Оценка модели и мета-оценщики
multiclass.OneVsOneClassifierиmulticlass.OneVsRestClassifierтеперь поддерживаетpartial_fit. С помощью Asish Panda и Филипп Доулинг.Добавлена поддержка замены или отключения
pipeline.Pipelineиpipeline.FeatureUnionкомпоненты с использованиемset_paramsинтерфейс, который обеспечиваетsklearn.grid_search. См. Выбор уменьшения размерности с помощью Pipeline и GridSearchCV По Joel Nothman и Роберт МакГиббон.Новый
cv_results_атрибутmodel_selection.GridSearchCV(иmodel_selection.RandomizedSearchCV) может быть легко импортирован в pandas какDataFrame. См. Улучшения выбора модели и изменения API для получения дополнительной информации. #6697 by Рагхав РВ.Обобщение
model_selection.cross_val_predictМожно передавать названия методов, такие какpredict_probaдля использования в рамках кросс-валидации вместо стандартногоpredict. Путем Ори Зив и Sears Merritt.Оценки обучения и время, затраченное на обучение с последующей оценкой для каждого кандидата поиска, теперь доступны в
cv_results_dict. См. Улучшения выбора модели и изменения API для получения дополнительной информации. #7325 by Eugene Chen и Рагхав РВ.
Метрики
Добавлен
labelsфлаг дляmetrics.log_lossчтобы явно предоставить метки, когда количество классов вy_trueиy_predотличаются. #7239 by Hong Guangguo с помощью Mads Jensen и Nelson Liu.Поддержка разреженных матриц сопряженности в оценке кластеризации (
metrics.cluster.supervised) для масштабирования на большое количество кластеров. #7419 by Грегори Стапп и Joel Nothman.Добавить
sample_weightпараметр дляmetrics.matthews_corrcoef. Путем Джатин Шах и Рагхав РВ.Ускорение
metrics.silhouette_scoreиспользуя векторизованные операции. С помощью Manoj Kumar.Добавить
sample_weightпараметр дляmetrics.confusion_matrix. Путем Bernardo Stein.
Разное
Добавлен
n_jobsпараметр дляfeature_selection.RFECVдля вычисления оценки на тестовых фолдах параллельно. С помощью Manoj KumarКодовая база не содержит сгенерированных файлов C/C++ cython: они генерируются во время сборки. Дистрибутивные пакеты по-прежнему будут содержать сгенерированные файлы C/C++. Благодаря Артур Менш.
Уменьшить использование памяти для 32-битных массивов с плавающей точкой
utils.sparse_func.mean_variance_axisиutils.sparse_func.incr_mean_variance_axisподдерживая cython слитые типы. Благодаря YenChen Lin.The
ignore_warningsтеперь принимают аргумент category, чтобы игнорировать только предупреждения указанного типа. От Thierry Guillemot.Добавлен параметр
return_X_yи тип возвращаемого значения(data, target) : tupleопция дляdatasets.load_irisнабор данных #7049,datasets.load_breast_cancerнабор данных #7152,datasets.load_digitsнабор данных,datasets.load_diabetesнабор данных,datasets.load_linnerudнабор данных,datasets.load_bostonнабор данных #7154 by Manvendra Singh.Упрощение
cloneфункция, устаревает поддержка для оценщиков, которые изменяют параметры в__init__. #5540 by Андреас Мюллер.При распаковке оценщика scikit-learn в версии, отличной от той, в которой оценщик был обучен, возникает
UserWarningвозникает, см. документация по сохранению моделей для получения дополнительных сведений. (#7248) По Андреас Мюллер.
Исправления ошибок#
Деревья и ансамбли
Случайный лес, экстра-деревья, деревья решений и градиентный бустинг больше не будут принимать
min_samples_split=1поскольку для разделения узла дерева решений требуется не менее 2 образцов. По Arnaud Jolyensemble.VotingClassifierтеперь вызываетNotFittedErrorifpredict,transformилиpredict_probaвызываются на неподогнанном оценщике. от Sebastian Raschka.Исправлена ошибка, где
ensemble.AdaBoostClassifierиensemble.AdaBoostRegressorбудет работать плохо, еслиrandom_stateбыл исправлен (#7411). С помощью Joel Nothman.Исправлена ошибка в ансамблях с рандомизацией, где ансамбль не устанавливал
random_stateна базовых оценщиках в конвейере или подобной вложенности. (#7411). Обратите внимание, результаты дляensemble.BaggingClassifierensemble.BaggingRegressor,ensemble.AdaBoostClassifierиensemble.AdaBoostRegressorтеперь будет отличаться от предыдущих версий. По Joel Nothman.
Линейные, ядерные и связанные модели
Исправлен некорректный расчет градиента для
loss='squared_epsilon_insensitive'вlinear_model.SGDClassifierиlinear_model.SGDRegressor(#6764). С помощью Вэньхуа Ян.Исправлена ошибка в
linear_model.LogisticRegressionCVгдеsolver='liblinear'не принималclass_weights='balanced. (#6817). С помощью Tom Dupre la Tour.Исправлена ошибка в
neighbors.RadiusNeighborsClassifierгде ошибка возникала, когда выбросы были помечены и указана функция весов (#6902). С помощью LeonieBorne.Исправление
linear_model.ElasticNetразреженная функция принятия решений для соответствия выходных данных с плотными в случае множественного вывода.
Разложение, обучение многообразию и кластеризация
decomposition.RandomizedPCAколичество по умолчаниюiterated_powerравно 4 вместо 3. #5141 by Джорджио Патрини.utils.extmath.randomized_svdвыполняет 4 степенные итерации по умолчанию вместо 0. На практике этого достаточно для получения хорошего приближения истинных собственных значений/векторов при наличии шума. Когдаn_componentsмал (< .1 * min(X.shape))n_iterустановлено в 7, если пользователь не указал большее число. Это улучшает точность при малом количестве компонентов. #5299 by Джорджио Патрини.Несогласованность отбеливания/неотбеливания между компонентами
decomposition.PCAиdecomposition.RandomizedPCA(теперь разложено в PCA, см. Новые возможности) исправлено.components_хранятся без отбеливания. #5299 by Джорджио Патрини.Исправлена ошибка в
manifold.spectral_embeddingгде диагональ ненормированной матрицы Лапласа была некорректно установлена в 1. #4995 by Peter Fischer.Исправлена некорректная инициализация
utils.arpack.eigshна всех случаях. Влияет наcluster.bicluster.SpectralBiclustering,decomposition.KernelPCA,manifold.LocallyLinearEmbedding, иmanifold.SpectralEmbedding(#5012). С помощью Peter Fischer.Атрибут
explained_variance_ratio_рассчитанный с использованием решателя SVDdiscriminant_analysis.LinearDiscriminantAnalysisтеперь возвращает корректные результаты. Благодаря JPFrancoia
Предобработка и отбор признаков
preprocessing.data._transform_selectedтеперь всегда передает копию изXдля преобразования функции, когдаcopy=True(#7194). С помощью Caio Oliveira.
Оценка модели и мета-оценщики
model_selection.StratifiedKFoldтеперь вызывает ошибку, если все n_labels для отдельных классов меньше n_folds. #6182 by Devashish Deshpande.Исправлена ошибка в
model_selection.StratifiedShuffleSplitгде обучающие и тестовые образцы могут перекрываться в некоторых крайних случаях, см. #6121 для подробностей. По Лоик Эстеве.Исправление в
sklearn.model_selection.StratifiedShuffleSplitвозвращать разбиения размераtrain_sizeиtest_sizeво всех случаях (#6472). С помощью Андреас Мюллер.Перекрёстная проверка
multiclass.OneVsOneClassifierиmulticlass.OneVsRestClassifierтеперь работает с предварительно вычисленными ядрами. #7350 by Рассел Смит.Исправить неполное
predict_probaделегирование метода отmodel_selection.GridSearchCVtolinear_model.SGDClassifier(#7159) на Yichuan Liu.
Метрики
Исправлена ошибка в
metrics.silhouette_scoreв которых кластеры размера 1 были неправильно оценены. Они должны получить оценку 0. От Joel Nothman.Исправлена ошибка в
metrics.silhouette_samplesтак что теперь он работает с произвольными метками, а не только с теми, которые находятся в диапазоне от 0 до n_clusters - 1.Исправлена ошибка, при которой ожидаемая и скорректированная взаимная информация были неверными, если ячейки контингентности кластеров превышали
2**16. С помощью Joel Nothman.metrics.pairwise_distancesтеперь преобразует массивы в логические массивы, когда требуется вscipy.spatial.distance. #5460 by Tom Dupre la Tour.Исправлена поддержка разреженного ввода в
metrics.silhouette_scoreа также пример examples/text/document_clustering.py. С помощью YenChen Lin.metrics.roc_curveиmetrics.precision_recall_curveбольше не округлятьy_scoreзначения при создании ROC-кривых; это вызывало проблемы у пользователей с очень малыми различиями в оценках (#7353).
Разное
model_selection.tests._search._check_param_gridтеперь работает корректно со всеми типами, которые расширяют/реализуютSequence(кроме строки), включая range (Python 3.x) и xrange (Python 2.x). #7323 от Вячеслава Ковалевского.utils.extmath.randomized_range_finderболее численно устойчив, когда запрашивается много степенных итераций, поскольку по умолчанию применяет LU-нормализацию. Еслиn_iter<2численные проблемы маловероятны, поэтому нормализация не применяется. Доступны другие варианты нормализации:'none', 'LU'и'QR'. #5141 by Джорджио Патрини.Исправлена ошибка, при которой некоторые форматы
scipy.sparseматрица, и оценщики с ними в качестве параметров не могли быть переданы вbase.clone. Путем Лоик Эстеве.datasets.load_svmlight_fileтеперь может читать длинные целочисленные значения QID. #7101 by Ибраим Ганиев.
Сводка изменений API#
Линейные, ядерные и связанные модели
residual_metricбыл устаревшим вlinear_model.RANSACRegressor. Используйтеlossвместо. С помощью Manoj Kumar.Доступ к публичным атрибутам
.X_и.y_был устаревшим вisotonic.IsotonicRegression. С помощью Jonathan Arfa.
Разложение, обучение многообразию и кластеризация
Старый
mixture.DPGMMустарело в пользу новогоmixture.BayesianGaussianMixture(с параметромweight_concentration_prior_type='dirichlet_process'). Новый класс решает вычислительные проблемы старого класса и вычисляет гауссовскую смесь с априорным распределением Дирихле быстрее, чем раньше. #7295 by Вэй Сюэ и Thierry Guillemot.Старый
mixture.VBGMMустарело в пользу новогоmixture.BayesianGaussianMixture(с параметромweight_concentration_prior_type='dirichlet_distribution'). Новый класс решает вычислительные проблемы старого класса и вычисляет вариационную байесовскую гауссову смесь быстрее, чем раньше. #6651 by Вэй Сюэ и Thierry Guillemot.Старый
mixture.GMMустарело в пользу новогоmixture.GaussianMixture. Новый класс вычисляет гауссовскую смесь быстрее, чем раньше, и некоторые вычислительные проблемы были решены. #6666 by Вэй Сюэ и Thierry Guillemot.
Оценка модели и мета-оценщики
The
sklearn.cross_validation,sklearn.grid_searchиsklearn.learning_curveбыли устаревшими, и классы и функции были реорганизованы вsklearn.model_selectionмодуля. Ссылка Улучшения выбора модели и изменения API для получения дополнительной информации. #4294 by Рагхав РВ.The
grid_scores_атрибутmodel_selection.GridSearchCVиmodel_selection.RandomizedSearchCVустарел в пользу атрибутаcv_results_. Ссылка Улучшения выбора модели и изменения API для получения дополнительной информации. #6697 by Рагхав РВ.Параметры
n_iterилиn_foldsв старых разделителях CV заменены новым параметромn_splitsпоскольку он может обеспечить согласованный и однозначный интерфейс для представления количества разделений на обучающую и тестовую выборки. #7187 by YenChen Lin.classesпараметр был переименован вlabelsвmetrics.hamming_loss. #7260 by Sebastián Vanrell.Классы разделителей
LabelKFold,LabelShuffleSplit,LeaveOneLabelOutиLeavePLabelsOutпереименованы вmodel_selection.GroupKFold,model_selection.GroupShuffleSplit,model_selection.LeaveOneGroupOutиmodel_selection.LeavePGroupsOutсоответственно. Также параметрlabelsвsplitметод недавно переименованных сплиттеровmodel_selection.LeaveOneGroupOutиmodel_selection.LeavePGroupsOutпереименован вgroups. Дополнительно вmodel_selection.LeavePGroupsOut, параметрn_labelsпереименован вn_groups. #6660 by Рагхав РВ.Названия ошибок и потерь для
scoringпараметры теперь имеют префикс'neg_', такие какneg_mean_squared_error. Версии без префикса устарели и будут удалены в версии 0.20. #7261 by Tim Head.
Участники кода#
Адитья Джоши, Алехандро, Александр Фабиш, Александр Логинов, Александр Миниушкин, Александр Руди, Александр Абади, Александр Абрахам, Александр Грамфор, Александр Сен, alexfields, Альваро Ульоа, alyssaq, Амлан Кар, Андреас Мюллер, andrew giessel, Эндрю Джексон, Эндрю МакКаллох, Эндрю Мюррей, Аниш Шах, Арафат, Арчит Шарма, Ариэль Рокем, Арно Жоли, Арно Рашез, Артур Менш, Эш Гувер, asnt, b0noI, Бехзад Табибиан, Бернардо, Бернхард Кратцвальд, Бхаргав Мангипуди, blakeflei, Боюань Дэн, Брэндон Картер, Бретт Наул, Брайан МакФи, Кайо Оливейра, Камило Ламус, Кэрол Уиллинг, Cass, CeShine Lee, Чарльз Труонг, Чи-Квей Яу, CJ Carey, codevig, Колин Ни, Дэн Шиблер, Дэниел, Дэниел Хник, Дэвид Эллис, Дэвид Николсон, Дэвид Стауб, Дэвид Талер, Дэвид Уоршоу, Давиде Лазанья, Дебора, definitelyuncertain, Диди Бар-Зев, djipey, dsquareindia, edwinENSAE, Элиас Куте, Элвис ДОХМАТОБ, Итан Уайт, Фабиан Педрегоса, Фабио Тиккони, fisache, Флориан Вильгельм, Фрэнсис, Фрэнсис О’Донован, Гаэль Вароакс, Ганиев Ибраим, ghg, Жиль Лупп, Джорджо Патрини, Джованни Керубин, Джованни Ланцани, Гленн Цянь, Гордон Мор, govin-vatsan, Грэм Клэнаган, Грег Редда, Грег Стапп, Гийом Леметр, Густав Мёртберг, halwai, Харизо Раджаона, Гарри Маврофоракис, hashcode55, hdmetor, Генри Лин, Хобсон Лейн, Хьюго Боун-Андерсон, Игорь Андрющенко, Imaculate, Инки Хван, Исаак Сиджаранамуал, Ишанк Гулати, Иссам Лараджи, Ивер Йордал, jackmartin, Джейкоб Шрайбер, Джейк Вандерплас, Джеймс Фидлер, Джеймс Раутли, Ян Зикес, Янна Бреттинген, jarfa, Джейсон Ласка, jblackburne, jeff levesque, Джеффри Блэкберн, Jeffrey04, Джереми Хинц, jeremynixon, Жером, Джессика Юнг, Джилл-Дженн Ви, Джимми Джиа, Цзиюань Цянь, Джоэл Нотман, johannah, Джон, Джон Боерсма, Джон Киркхэм, Джон Мёллер, jonathan.striebel, joncrall, Джорди, Джозеф Муньос, Джошуа Кук, JPFrancoia, jrfiedler, JulianKahnert, juliathebrave, kaichogami, КамалакерДади, Кеннет Лайонс, Кевин Ван, kingjr, kjell, Константин Подшумок, Корнел Кельчевски, Кришна Кальян, krishnakalyan3, Квл Патнам, Кайл Джексон, Ларс Бёйтинк, ldavid, LeiG, ЛейтонЧжан, Лиланд МакИннес, Лян-Чи Хси, Лилиан Бессон, lizsz, Лоик Эстеве, Луи Тиао, Леони Борн, Мадс Йенсен, Манитеджа Нандана, Манодж Кумар, Манвендра Сингх, Марко, Марио Крелл, Марк Бао, Марк Сзепинец, Мартин Мадсен, MartinBpr, Марьян Морель, Массил, Матеус, Матьё Блондель, Матьё Дюбуа, Маттео, Маттиас Экман, Макс Мороз, Майкл Шерер, michiaki ariga, Михаил Коробов, Мусса Таифи, mrandrewandrade, Мридул Сет, nadya-p, Наоя Канаи, Нейт Джордж, Нелле Вароакс, Нельсон Лю, Ник Джеймс, NickleDave, Нико, Николя Гуа, Николай Майоров, ningchi, nlathia, okbalefthanded, Охлопков, Оливье Гризель, Панос Лоридас, Пол Стрикленд, Перрин Летелье, pestrickland, Питер Фишер, Питер, Пин-Яо, Чанг, practicalswift, Престон Пэрри, Циму Чжэн, Рачит Кансал, Рагхав РВ, Ральф Гоммерс, Рамана.С, Раммиг, Рэнди Олсон, Роб Александр, Роберт Лутц, Робин Шукер, Рохан Джайн, Руйфэн Чжэн, Райан Ю, Реми Леоне, saihttam, Сайвинг Йонг, Сэм Шлейфер, Сэмюэль Сен-Жан, Сартадж Сингх, Сасанк Чиламкурти, saurabh.bansod, Скотт Эндрюс, Скотт Лоу, seales, Себастьян Рашка, Себастьян Сегер, Себастьян Ванрелль, Сергей Лебедев, шагун Содхани, шанмуга cv, Шашанк Шекхар, shawpan, shengxiduan, Шота, shuckle16, Скиппер Сиболд, sklearn-ci, SmedbergM, srvanrell, Себастьен Лерик, Таранджит, themrmax, Тьерри, Тьерри Гийомо, Томас, Томас Халлок, Томас Моро, Тим Хед, tKammy, toastedcornflakes, Том, TomDLT, Тошихиро Камишима, tracer0tong, Трент Хаук, trevorstephens, Туэ Во, Варун, Варун Джеваликар, Вячеслав, Вигнеш Биродкар, Викрам, Виллу Руусманн, Винаяк Мехта, walter, waterponey, Вэньхуа Ян, Вэньцзянь Хуан, Уилл Уэлч, wyseguy7, xyguo, yanlend, Ярослав Хальченко, yelite, Йен, ЙенЧенЛин, Ичуань Лю, Йоав Рам, Йошики, Чжэн ЖуйФэн, zivori, Оскар Нахера