Версия 0.23#
Для краткого описания основных особенностей выпуска, пожалуйста, обратитесь к Основные новости выпуска scikit-learn 0.23.
Легенда для списков изменений
Основная функция что-то большое, что вы не могли сделать раньше.
Функция что-то, что вы не могли делать раньше.
Эффективность существующий признак теперь может не требовать столько вычислений или памяти.
Улучшение различные мелкие улучшения.
Исправление то, что ранее не работало, как задокументировано – или согласно разумным ожиданиям – теперь должно работать.
Изменение API вам потребуется изменить свой код, чтобы добиться того же эффекта в будущем; или функция будет удалена в будущем.
Версия 0.23.2#
Измененные модели#
Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.
Исправление
inertia_атрибутcluster.KMeansиcluster.MiniBatchKMeans.
Подробности перечислены в журнале изменений ниже.
(Хотя мы стараемся лучше информировать пользователей, предоставляя эту информацию, мы не можем гарантировать, что этот список полный.)
Журнал изменений#
sklearn.cluster#
Исправление Исправлена ошибка в
cluster.KMeansгде ошибки округления могут помешать объявить сходимость, когдаtol=0. #17959 by Жереми дю Буаберранже.Исправление Исправлена ошибка в
cluster.KMeansиcluster.MiniBatchKMeansгде сообщаемая инерция была некорректно взвешена по весам выборок. #17848 by Жереми дю Буаберранже.Исправление Исправлена ошибка в
cluster.MeanShiftсbin_seeding=True. Когда оцененная ширина полосы равна 0, поведение эквивалентноbin_seeding=False. #17742 by Jeremie du Boisberranger.Исправление Исправлена ошибка в
cluster.AffinityPropagation, что дает неверные кластеры, когда тип массива — float32. #17995 by Thomaz Santana и Аманда Д'Суза.
sklearn.decomposition#
Исправление Исправлена ошибка в
decomposition.MiniBatchDictionaryLearning.partial_fitкоторый должен обновить словарь, выполняя итерацию только один раз по мини-пакету. #17433 by Кьяра Мармо.Исправление Избегайте переполнений в Windows в
decomposition.IncrementalPCA.partial_fitдля большихbatch_sizeиn_samplesзначения. #17985 by Алан Батлер и Аманда Д'Суза.
sklearn.ensemble#
Исправление Исправлена ошибка в
ensemble.MultinomialDevianceгде среднее значение logloss было некорректно рассчитано как сумма logloss. #17694 by Маркус Ремпфлер и Tsutomu Kusanagi.Исправление Исправления
ensemble.StackingClassifierиensemble.StackingRegressorсовместимость с оценщиками, которые не определяютn_features_in_. #17357 by Томас Фан.
sklearn.feature_extraction#
Исправление Исправлена ошибка в
feature_extraction.text.CountVectorizerгде инвариантность порядка выборок нарушалась, когдаmax_featuresбыл установлен, и признаки имели одинаковое количество. #18016 by Томас Фан, Roman Yurchak, и Joel Nothman.
sklearn.linear_model#
Исправление
linear_model.lars_pathне перезаписываетXкогдаX_copy=TrueиGram='auto'. #17914 by Томас Фан.
sklearn.manifold#
Исправление Исправлена ошибка, где
metrics.pairwise_distancesвызовет ошибку, еслиmetric='seuclidean'иXне является типомnp.float64. #15730 by Форрест Кох.
sklearn.metrics#
Исправление Исправлена ошибка в
metrics.mean_squared_errorгде среднее нескольких значений RMSE было некорректно рассчитано как корень из среднего нескольких значений MSE. #17309 by Swier Heeres.
sklearn.pipeline#
Исправление
pipeline.FeatureUnionвыдает предупреждение об устаревании, когдаNoneвключён вtransformer_list. #17360 by Томас Фан.
sklearn.utils#
Исправление Исправление
utils.estimator_checks.check_estimatorтак, чтобы все тестовые случаи поддерживалиbinary_onlyтег оценщика. #17812 by Bruno Charron.
Версия 0.23.1#
18 мая 2020
Журнал изменений#
sklearn.cluster#
Эффективность
cluster.KMeansэффективность была улучшена для очень маленьких наборов данных. В частности, она больше не может создавать простаивающие потоки. #17210 и #17235 by Jeremie du Boisberranger.Исправление Исправлена ошибка в
cluster.KMeansгде веса образцов, предоставленные пользователем, были изменены на месте. #17204 by Jeremie du Boisberranger.
Разное#
Исправление Исправлена ошибка в
reprсторонних оценщиков, которые используют**kwargsпараметр в их конструкторе, когдаchanged_onlyравно True что теперь является значением по умолчанию. #17205 by Nicolas Hug.
Версия 0.23.0#
12 мая 2020
Принудительное использование только ключевых аргументов#
В стремлении обеспечить ясное и однозначное использование библиотеки, большинство параметров конструкторов и функций теперь ожидается передавать в качестве ключевых аргументов (т.е. используя param=value синтаксис) вместо позиционного. Для
облегчения перехода, FutureWarning вызывается, если параметр, доступный только по ключевому слову,
используется как позиционный. В версии 1.0 (переименование 0.25) эти параметры
будут строго доступны только по ключевому слову, и TypeError будет вызвано исключение.
#15005 by Joel Nothman, Адрин Джалали, Томас Фан, и
Nicolas Hug. См. SLEP009
для получения дополнительной информации.
Измененные модели#
Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.
Исправление
ensemble.BaggingClassifier,ensemble.BaggingRegressor, иensemble.IsolationForest.Исправление
cluster.KMeansсalgorithm="elkan"иalgorithm="full".Исправление
cluster.BirchИсправление
compose.ColumnTransformer.get_feature_namesИсправление
compose.ColumnTransformer.fitИсправление
datasets.make_multilabel_classificationИсправление
decomposition.PCAсn_components='mle'Улучшение
decomposition.NMFиdecomposition.non_negative_factorizationс входными данными типа float32.Исправление
decomposition.KernelPCA.inverse_transformИзменение API
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorИсправление
estimator_samples_вensemble.BaggingClassifier,ensemble.BaggingRegressorиensemble.IsolationForestИсправление
ensemble.StackingClassifierиensemble.StackingRegressorсsample_weightИсправление
gaussian_process.GaussianProcessRegressorИсправление
linear_model.RANSACRegressorсsample_weight.Исправление
linear_model.RidgeClassifierCVИсправление
metrics.mean_squared_errorсsquaredиmultioutput='raw_values'.Исправление
metrics.mutual_info_scoreс отрицательными оценками.Исправление
metrics.confusion_matrixс нулевой длинойy_trueиy_predИсправление
neural_network.MLPClassifierИсправление
preprocessing.StandardScalerсpartial_fitи разреженный ввод.Исправление
preprocessing.Normalizerс norm='max'Исправление Любая модель, использующая
svm.libsvmилиsvm.liblinearсолвер, включаяsvm.LinearSVC,svm.LinearSVR,svm.NuSVC,svm.NuSVR,svm.OneClassSVM,svm.SVC,svm.SVR,linear_model.LogisticRegression.Исправление
tree.DecisionTreeClassifier,tree.ExtraTreeClassifierиensemble.GradientBoostingClassifierа такжеpredictметодtree.DecisionTreeRegressor,tree.ExtraTreeRegressor, иensemble.GradientBoostingRegressorи входные данные только для чтения float32 вpredict,decision_pathиpredict_proba.
Подробности перечислены в журнале изменений ниже.
(Хотя мы стараемся лучше информировать пользователей, предоставляя эту информацию, мы не можем гарантировать, что этот список полный.)
Журнал изменений#
sklearn.cluster#
Эффективность
cluster.Birchреализация метода predict избегает высокого потребления памяти, вычисляя матрицу расстояний с использованием схемы с разбиением на блоки. #16149 by Jeremie du Boisberranger и Алекс Шакед.Эффективность Основная функция Критические части
cluster.KMeansимеют более оптимизированную реализацию. Параллелизм теперь осуществляется по данным, а не по инициализациям, что обеспечивает лучшую масштабируемость. #11950 by Jeremie du Boisberranger.Улучшение
cluster.KMeansтеперь поддерживает разреженные данные, когдаsolver = "elkan". #11950 by Jeremie du Boisberranger.Улучшение
cluster.AgglomerativeClusteringимеет более быструю и эффективную по памяти реализацию кластеризации с одиночной связью. #11514 by Leland McInnes.Исправление
cluster.KMeansсalgorithm="elkan"теперь сходится сtol=0как при значении по умолчаниюalgorithm="full". #16075 by Erich Schubert.Исправление Исправлена ошибка в
cluster.Birchгдеn_clustersпараметр не мог иметьnp.int64тип. #16484 by Jeremie du Boisberranger.Исправление
cluster.AgglomerativeClusteringдобавить конкретную ошибку, когда матрица расстояний не квадратная иaffinity=precomputed. #16257 by Simona Maggio.Изменение API The
n_jobsпараметрcluster.KMeans,cluster.SpectralCoclusteringиcluster.SpectralBiclusteringустарел. Теперь используется параллелизм на основе OpenMP. Для получения подробной информации о том, как управлять количеством потоков, обратитесь к Параллелизм примечания. #11950 by Jeremie du Boisberranger.Изменение API The
precompute_distancesпараметрcluster.KMeansустарел. Не имеет эффекта. #11950 by Jeremie du Boisberranger.Изменение API The
random_stateпараметр был добавлен вcluster.AffinityPropagation. #16801 by @rcwoolston и Кьяра Мармо.
sklearn.compose#
Эффективность
compose.ColumnTransformerтеперь работает быстрее при работе с датафреймами и строками, используемыми для указания подмножеств данных для преобразователей. #16431 by Томас Фан.Улучшение
compose.ColumnTransformerметодget_feature_namesтеперь поддерживает'passthrough'столбцов, где имя признака является либо именем столбца для датафрейма, либо'xi'для индекса столбцаi. #14048 by Льюис Болл.Исправление
compose.ColumnTransformerметодget_feature_namesтеперь возвращает корректные результаты, когда один из шагов преобразователя применяется к пустому списку столбцов #15963 by Roman Yurchak.Исправление
compose.ColumnTransformer.fitвыдаст ошибку при выборе имени столбца, которое не является уникальным в датафрейме. #16431 by Томас Фан.
sklearn.datasets#
Эффективность
datasets.fetch_openmlимеет сниженное использование памяти, поскольку больше не хранит полный поток текста набора данных в памяти. #16084 by Joel Nothman.Функция
datasets.fetch_california_housingтеперь поддерживает гетерогенные данные с использованием pandas путем установкиas_frame=True. #15950 by Стефани Эндрюс и Решама Шайх.Функция встроенные загрузчики наборов данных
datasets.load_breast_cancer,datasets.load_diabetes,datasets.load_digits,datasets.load_iris,datasets.load_linnerudиdatasets.load_wineтеперь поддерживает загрузку как pandasDataFrameпутем установкиas_frame=True. #15980 by @wconnell и Решама Шайх.Улучшение Добавлен
return_centersпараметр вdatasets.make_blobs, который может использоваться для возврата центров каждого кластера. #15709 by @shivamgargsya и Venkatachalam N.Улучшение Функции
datasets.make_circlesиdatasets.make_moonsтеперь принимает кортеж из двух элементов. #15707 by Мацей Дж. Микульски.Исправление
datasets.make_multilabel_classificationтеперь генерируетValueErrorдля аргументовn_classes < 1ORlength < 1. #16006 by Rushabh Vasani.Изменение API The
StreamHandlerбыл удален изsklearn.loggerчтобы избежать двойного логирования сообщений в распространённых случаях, когда обработчик прикреплён к корневому логгеру, и следовать рекомендации документации по логированию Python для библиотек оставлять обработку лог-сообщений пользователям и коду приложения. #16451 by Christoph Deil.
sklearn.decomposition#
Улучшение
decomposition.NMFиdecomposition.non_negative_factorizationтеперь сохраняет тип данных float32. #16280 by Jeremie du Boisberranger.Улучшение
decomposition.TruncatedSVD.transformтеперь работает быстрее на заданных разреженныхcscматрицы. #16837 by @wornbb.Исправление
decomposition.PCAс floatn_componentsпараметр, будет исключительно выбирать компоненты, объясняющие дисперсию большую чемn_components. #15669 by Кришна ЧайтаньяИсправление
decomposition.PCAсn_components='mle'теперь корректно обрабатывает малые собственные значения и не определяет 0 как правильное количество компонентов. #16224 by Лиза Шветлик, и Gelavizh Ahmadi и Многомерные целевые переменные, предсказанные с помощью нескольких предикторов. Примечание: отдельные модели генерируются для каждого предиктора. и #16841 by Nicolas Hug.Исправление
decomposition.KernelPCAметодinverse_transformтеперь применяет правильное обратное преобразование к преобразованным данным. #16655 by Льюис Болл.Исправление Исправлена ошибка, которая вызывала
decomposition.KernelPCAиногда вызыватьinvalid value encountered in multiplyво времяfit. #16718 by Gui Miotto.Функция Добавлен
n_components_атрибут дляdecomposition.SparsePCAиdecomposition.MiniBatchSparsePCA. #16981 by Mateusz Górski.
sklearn.ensemble#
Основная функция
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorтеперь поддерживает sample_weight. #14696 by Адрин Джалали и Nicolas Hug.Функция Ранняя остановка в
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorтеперь определяется с помощью новогоearly_stoppingпараметр вместоn_iter_no_change. Значение по умолчанию 'auto', которое включает раннюю остановку, если в обучающем наборе не менее 10 000 выборок. #14516 by Johann Faouzi.Основная функция
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorПервый график показывает, что с увеличением количества образцов #15582 by Nicolas Hug.Изменение API Добавлен булевый
verboseфлаг для классов:ensemble.VotingClassifierиensemble.VotingRegressor. #16069 by Sam Bail, Ханна Брюс Макдональд, Решама Шайх, и Кьяра Мармо.Изменение API Исправлена ошибка в
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorкоторый не будет учитыватьmax_leaf_nodesпараметр, если критерий был достигнут одновременно сmax_depthкритериев. #16183 by Nicolas Hug.Исправление Изменена конвенция для
max_depthпараметрensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressor. Глубина теперь соответствует количеству ребер от корня до самого глубокого листа. Теперь разрешены пни (деревья с одним разделением). #16182 by Santhosh BИсправление Исправлена ошибка в
ensemble.BaggingClassifier,ensemble.BaggingRegressorиensemble.IsolationForestгде атрибутestimators_samples_не сгенерировал правильные индексы, используемые во времяfit. #16437 by Jin-Hwan CHO.Исправление Исправлена ошибка в
ensemble.StackingClassifierиensemble.StackingRegressorгдеsample_weightаргумент не передавался вcross_val_predictпри оценке базовых оценщиков на фолдах перекрестной проверки для получения входных данных для мета-оценщика. #16539 by Билл ДеРоуз.Функция Добавлена дополнительная опция
loss="poisson"toensemble.HistGradientBoostingRegressor, который добавляет отклонение Пуассона с логарифмической связью, полезной для моделирования данных подсчёта. #16692 by Christian LorentzenИсправление Исправлена ошибка, где
ensemble.HistGradientBoostingRegressorиensemble.HistGradientBoostingClassifierбудет неудачным при нескольких вызовах fit, когдаwarm_start=True,early_stopping=True, и нет проверочного набора. #16663 by Томас Фан.
sklearn.feature_extraction#
Эффективность
feature_extraction.text.CountVectorizerтеперь сортирует признаки после их обрезки по частоте документа. Это улучшает производительность для наборов данных с большим словарным запасом в сочетании сmin_dfилиmax_df. #15834 by Сантьяго М. Мола.
sklearn.feature_selection#
Улучшение Добавлена поддержка многомерных выходных данных в
feature_selection.RFEиfeature_selection.RFECV. #16103 by Divyaprabha M.Изменение API Добавляет
feature_selection.SelectorMixinобратно в публичный API. #16132 by @trimeta.
sklearn.gaussian_process#
Улучшение
gaussian_process.kernels.Maternвозвращает ядро RBF, когдаnu=np.inf. #15503 by Сэм Диксон.Исправление Исправлена ошибка в
gaussian_process.GaussianProcessRegressorчто привело к предсказанным стандартным отклонениям только между 0 и 1, когда WhiteKernel не используется. #15782 by @plgreenLIRU.
sklearn.impute#
Улучшение
impute.IterativeImputerпринимает как скалярные, так и массиво-подобные входные данные дляmax_valueиmin_value. Входные данные в виде массивов позволяют указать разные максимальные и минимальные значения для каждого признака. #16403 by Narendra Mukherjee.Улучшение
impute.SimpleImputer,impute.KNNImputer, иimpute.IterativeImputerпринимает nullable integer dtype pandas с пропущенными значениями. #16508 by Томас Фан.
sklearn.inspection#
Функция
inspection.partial_dependenceиinspection.plot_partial_dependenceтеперь поддерживает быстрый метод 'recursion' дляensemble.RandomForestRegressorиtree.DecisionTreeRegressor. #15864 by Nicolas Hug.
sklearn.linear_model#
Основная функция Добавлены обобщенные линейные модели (GLM) с ненормальными распределениями ошибок, включая
linear_model.PoissonRegressor,linear_model.GammaRegressorиlinear_model.TweedieRegressorкоторые используют распределения Пуассона, Гамма и Твиди соответственно. #14300 by Christian Lorentzen, Roman Yurchak, и Оливье Гризель.Основная функция Поддержка
sample_weightвlinear_model.ElasticNetиlinear_model.Lassoдля плотной матрицы признаковX. #15436 by Christian Lorentzen.Эффективность
linear_model.RidgeCVиlinear_model.RidgeClassifierCVтеперь не выделяют потенциально большой массив для хранения двойных коэффициентов для всех гиперпараметров во время егоfit, ни массив для хранения всех ошибок или предсказаний LOO, если толькоstore_cv_valuesявляетсяTrue. #15652 by Жером Докес.Улучшение
linear_model.LassoLarsиlinear_model.Larsтеперь поддерживаетjitterпараметр, который добавляет случайный шум к целевой переменной. Это может помочь со стабильностью в некоторых крайних случаях. #15179 by @angelaambroz.Исправление Исправлена ошибка, где если
sample_weightпараметр был передан в метод fitlinear_model.RANSACRegressor, он не будет передан в обернутыйbase_estimatorво время подгонки конечной модели. #15773 by Джереми Александр.Исправление Добавить
best_score_атрибут дляlinear_model.RidgeCVиlinear_model.RidgeClassifierCV. #15655 by Жером Докес.Исправление Исправлена ошибка в
linear_model.RidgeClassifierCVпередать конкретную стратегию оценки. Перед тем как внутренний оценщик выводит оценку вместо предсказаний. #14848 by Venkatachalam N.Исправление
linear_model.LogisticRegressionтеперь избежит ненужной итерации, когдаsolver='newton-cg'путем проверки на неполноценность или равенство вместо строгой неполноценности для максимумаabsgradиtolвutils.optimize._newton_cg. #16266 by Rushabh Vasani.Изменение API Устаревшие публичные атрибуты
standard_coef_,standard_intercept_,average_coef_, иaverage_intercept_вlinear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressor. #16261 by Carlos Brandt.Исправление Эффективность
linear_model.ARDRegressionболее стабилен и намного быстрее, когдаn_samples > n_features. Теперь он может масштабироваться до сотен тысяч образцов. Исправление стабильности может привести к изменениям в количестве ненулевых коэффициентов и в прогнозируемом выходе. #16849 by Nicolas Hug.Исправление Исправлена ошибка в
linear_model.ElasticNetCV,linear_model.MultiTaskElasticNetCV,linear_model.LassoCVиlinear_model.MultiTaskLassoCVгде обучение завершилось бы неудачей при использовании бэкенда joblib loky. #14264 by Жереми дю Буаберранже.Эффективность Ускорение
linear_model.MultiTaskLasso,linear_model.MultiTaskLassoCV,linear_model.MultiTaskElasticNet,linear_model.MultiTaskElasticNetCVизбегая более медленных вызовов BLAS уровня 2 на небольших массивах #17021 by Алекс Грамфор и Матюрен Массиас.
sklearn.metrics#
Улучшение
metrics.pairwise_distances_chunkedтеперь позволяет егоreduce_funcне иметь возвращаемого значения, позволяя операции на месте. #16397 by Joel Nothman.Исправление Исправлена ошибка в
metrics.mean_squared_errorне игнорировать аргументsquaredкогда аргументmultioutput='raw_values'. #16323 by Rushabh VasaniИсправление Исправлена ошибка в
metrics.mutual_info_scoreгде могут возвращаться отрицательные оценки. #16362 by Томас Фан.Исправление Исправлена ошибка в
metrics.confusion_matrixфункция поэтому принимает параметр с именемy_trueиy_predимели нулевую длину иlabelsне былNone. Кроме того, мы вызываем ошибку, когда пустой список передан вlabelsпараметр. #16442 by Kyle Parsons.Изменение API Изменено форматирование значений в
metrics.ConfusionMatrixDisplay.plotиmetrics.plot_confusion_matrixдля выбора более короткого формата (либо '2g', либо 'd'). #16159 by Rick Mackenbach и Томас Фан.Изменение API Начиная с версии 0.25,
metrics.pairwise_distancesбольше не будет автоматически вычислятьVIпараметр для расстояния Махаланобиса иVпараметр для расстояния seuclidean, еслиYпередается. Пользователь должен будет вычислить этот параметр на выбранных им обучающих данных и передать его вpairwise_distances. #16993 by Joel Nothman.
sklearn.model_selection#
Улучшение
model_selection.GridSearchCVиmodel_selection.RandomizedSearchCVвыводит информацию о стеке вызовов в предупреждениях о неудачном выполнении fit в дополнение к ранее выданным типу и деталям. #15622 by Грегори Морс.Исправление
model_selection.cross_val_predictподдерживаетmethod="predict_proba"когдаy=None. #15918 by Лука Кубин.Исправление
model_selection.fit_grid_pointустарел в 0.23 и будет удален в 0.25. #16401 by Arie Pratama Sutiono
sklearn.multioutput#
Функция
multioutput.MultiOutputRegressor.fitиmultioutput.MultiOutputClassifier.fitтеперь может приниматьfit_paramsпередать вestimator.fitметод каждого шага. #15953 #15959 by Ke Huang.Улучшение
multioutput.RegressorChainтеперь поддерживаетfit_paramsдляbase_estimatorво времяfit. #16111 by Venkatachalam N.
sklearn.naive_bayes#
Исправление Правильно отформатированное сообщение об ошибке показано в
naive_bayes.CategoricalNBкогда количество признаков во входных данных различается междуpredictиfit. #16090 by Madhura Jayaratne.
sklearn.neural_network#
Эффективность
neural_network.MLPClassifierиneural_network.MLPRegressorимеет уменьшенный объем памяти при использовании стохастических решателей,'sgd'или'adam', иshuffle=True. #14075 by @meyer89.Исправление Повышает численную устойчивость функции логистических потерь в
neural_network.MLPClassifierпутём отсечения вероятностей. #16117 by Томас Фан.
sklearn.inspection#
Улучшение
inspection.PartialDependenceDisplayтеперь предоставляет линии децилей в качестве атрибутов, чтобы их можно было скрыть или настроить. #15785 by Nicolas Hug
sklearn.preprocessing#
Функция аргумент
dropofpreprocessing.OneHotEncoderтеперь будет принимать значение 'if_binary' и будет удалять первую категорию каждого признака с двумя категориями. #16245 by Rushabh Vasani.Улучшение
preprocessing.OneHotEncoder’sdrop_idx_ndarray теперь может содержатьNone, гдеdrop_idx_[i] = Noneозначает, что ни одна категория не удаляется для индексаi. #16585 by Кьяра Мармо.Улучшение
preprocessing.MaxAbsScaler,preprocessing.MinMaxScaler,preprocessing.StandardScaler,preprocessing.PowerTransformer,preprocessing.QuantileTransformer,preprocessing.RobustScalerтеперь поддерживает nullable integer dtype из pandas с пропущенными значениями. #16508 by Томас Фан.Эффективность
preprocessing.OneHotEncoderтеперь работает быстрее при преобразовании. #15762 by Томас Фан.Исправление Исправлена ошибка в
preprocessing.StandardScalerкоторый некорректно вычислял статистику при вызовеpartial_fitна разреженных входах. #16466 by Guillaume Lemaitre.Исправление Исправлена ошибка в
preprocessing.Normalizerс norm='max', что не учитывало абсолютное значение максимальных значений перед нормализацией векторов. #16632 by Maura Pintor и Баттиста Биггио.
sklearn.semi_supervised#
Исправление
semi_supervised.LabelSpreadingиsemi_supervised.LabelPropagationизбегает предупреждений о делении на ноль при нормализацииlabel_distributions_. #15946 by @ngshya.
sklearn.svm#
Исправление Эффективность Улучшено
libsvmиliblinearгенераторы случайных чисел, используемые для случайного выбора координат в алгоритмах координатного спуска. Зависит от платформы Crand()был использован, который способен генерировать числа только до32767на платформе Windows (см. это запись в блоге) и также имеет слабую случайность, как указано в эта презентация. Оно было заменено на C++11mt19937, генератор Mersenne Twister, который корректно генерирует 31-битные/63-битные случайные числа на всех платформах. Кроме того, грубый "модульный" постпроцессор, используемый для получения случайного числа в ограниченном интервале, был заменен на модифицированный метод Lemire, как предложено этот блог пост. Любая модель, использующаяsvm.libsvmилиsvm.liblinearсолвер, включаяsvm.LinearSVC,svm.LinearSVR,svm.NuSVC,svm.NuSVR,svm.OneClassSVM,svm.SVC,svm.SVR,linear_model.LogisticRegression, затрагивается. В частности, пользователи могут ожидать лучшей сходимости, когда количество образцов (LibSVM) или количество признаков (LibLinear) велико. #13511 by Sylvain Marié.Исправление Исправить использование пользовательного ядра, не принимающего вещественные записи, такие как строковые ядра в
svm.SVCиsvm.SVR. Обратите внимание, что пользовательские ядра теперь должны проверять свои входные данные, где ранее они получали валидные числовые массивы. #11296 by Александр Грамфор и Георги Пеев.Изменение API
svm.SVRиsvm.OneClassSVMатрибуты,probA_иprobB_, теперь устарели, так как не были полезными. #15558 by Томас Фан.
sklearn.tree#
Исправление
tree.plot_treerotateпараметр не использовался и устарел. #15806 by Кьяра Мармо.Исправление Исправлена поддержка входных данных только для чтения в формате float32 в
predict,decision_pathиpredict_probaметодыtree.DecisionTreeClassifier,tree.ExtraTreeClassifierиensemble.GradientBoostingClassifierа такжеpredictметодtree.DecisionTreeRegressor,tree.ExtraTreeRegressor, иensemble.GradientBoostingRegressor. #16331 by Alexandre Batisse.
sklearn.utils#
Основная функция Оценщики теперь могут отображаться с расширенным HTML-представлением. Это можно включить в блокнотах Jupyter, установив
display='diagram'вset_config. Необработанный HTML может быть возвращён с помощьюutils.estimator_html_repr. #14180 by Томас Фан.Улучшение улучшить сообщение об ошибке в
utils.validation.column_or_1d. #15926 by Loïc Estève.Улучшение добавить предупреждение в
utils.check_arrayдля разреженного DataFrame pandas. #16021 by Rushabh Vasani.Улучшение
utils.check_arrayтеперь создает разреженную матрицу из pandas DataFrame, который содержит толькоSparseArrayстолбцы. #16728 by Томас Фан.Улучшение
utils.check_arrayподдерживает nullable integer dtype pandas с пропущенными значениями, когдаforce_all_finiteустановлено вFalseили'allow-nan'в этом случае данные преобразуются в значения с плавающей точкой, гдеpd.NAзначения заменяются наnp.nan. Как следствие, всеsklearn.preprocessingпреобразователи, которые принимают числовые входные данные с пропущенными значениями, представленными какnp.nanтеперь также принимает непосредственную подачу pandas датафреймов сpd.Int* or `pd.Uint*типизированные столбцы, которые используютpd.NAкак маркер пропущенного значения. #16508 by Томас Фан.Изменение API Передача классов в
utils.estimator_checks.check_estimatorиutils.estimator_checks.parametrize_with_checksтеперь устарел, и поддержка классов будет удалена в 0.24. Передавайте экземпляры вместо этого. #17032 by Nicolas Hug.Изменение API Приватная утилита
_safe_tagsвutils.estimator_checksбыл удалён, поэтому все теги должны быть получены черезestimator._get_tags(). Обратите внимание, что примеси, такие какRegressorMixinдолжен приходить до базовые классы в MRO для_get_tags()для правильной работы. #16950 by Nicolas Hug.Исправление
utils.all_estimatorsтеперь возвращает только публичные оценщики. #15380 by Томас Фан.
Разное#
Основная функция Добавляет HTML-представление оценщиков для отображения в jupyter notebook или lab. Эта визуализация активируется установкой
displayопция вsklearn.set_config. #14180 by Томас Фан.Улучшение
scikit-learnтеперь работает сmypyбез ошибок. #16726 by Roman Yurchak.Изменение API Большинство оценщиков теперь предоставляют
n_features_in_атрибут. Этот атрибут равен количеству признаков, переданных вfitметод. См. SLEP010 подробности. #16112 by Nicolas Hug.Изменение API Оценщики теперь имеют
requires_yтеги, который по умолчанию False, за исключением оценщиков, наследующих от~sklearn.base.RegressorMixinили~sklearn.base.ClassifierMixin. Этот тег используется для гарантии, что будет вызвано соответствующее сообщение об ошибке, когда ожидался y, но был передан None. #16622 by Nicolas Hug.Изменение API Настройка по умолчанию
print_changed_onlyбыл изменен с False на True. Это означает, чтоreprоценщиков теперь более лаконично и показывает только параметры, значение по умолчанию которых было изменено при печати оценщика. Вы можете восстановить предыдущее поведение, используяsklearn.set_config(print_changed_only=False). Также обратите внимание, что всегда можно быстро проверить параметры любого оценщика с помощьюest.get_params(deep=False). #17061 by Nicolas Hug.
Участники кода и документации
Благодарим всех, кто внёс вклад в поддержку и улучшение проекта с версии 0.22, включая:
Abbie Popa, Adrin Jalali, Aleksandra Kocot, Alexandre Batisse, Alexandre Gramfort, Alex Henrie, Alex Itkes, Alex Liang, alexshacked, Alonso Silva Allende, Ana Casado, Andreas Mueller, Angela Ambroz, Ankit810, Arie Pratama Sutiono, Arunav Konwar, Baptiste Maingret, Benjamin Beier Liu, bernie gray, Bharathi Srinivasan, Bharat Raghunathan, Bibhash Chandra Mitra, Brian Wignall, brigi, Brigitta Sipőcz, Carlos H Brandt, CastaChick, castor, cgsavard, Chiara Marmo, Chris Gregory, Christian Kastner, Christian Lorentzen, Corrie Bartelheimer, Daniël van Gelder, Daphne, David Breuer, david-cortes, dbauer9, Divyaprabha M, Edward Qian, Ekaterina Borovikova, ELNS, Emily Taylor, Erich Schubert, Eric Leung, Evgeni Chasnovski, Fabiana, Facundo Ferrín, Fan, Franziska Boenisch, Gael Varoquaux, Gaurav Sharma, Geoffrey Bolmier, Georgi Peev, gholdman1, Gonthier Nicolas, Gregory Morse, Gregory R. Lee, Guillaume Lemaitre, Gui Miotto, Hailey Nguyen, Hanmin Qin, Hao Chun Chang, HaoYin, Hélion du Mas des Bourboux, Himanshu Garg, Hirofumi Suzuki, huangk10, Hugo van Kemenade, Hye Sung Jung, indecisiveuser, inderjeet, J-A16, Jérémie du Boisberranger, Jin-Hwan CHO, JJmistry, Joel Nothman, Johann Faouzi, Jon Haitz Legarreta Gorroño, Juan Carlos Alfaro Jiménez, judithabk6, jumon, Kathryn Poole, Katrina Ni, Kesshi Jordan, Kevin Loftis, Kevin Markham, krishnachaitanya9, Lam Gia Thuan, Leland McInnes, Lisa Schwetlick, lkubin, Loic Esteve, lopusz, lrjball, lucgiffon, lucyleeow, Lucy Liu, Lukas Kemkes, Maciej J Mikulski, Madhura Jayaratne, Magda Zielinska, maikia, Mandy Gu, Manimaran, Manish Aradwad, Maren Westermann, Maria, Mariana Meireles, Marie Douriez, Marielle, Mateusz Górski, mathurinm, Matt Hall, Maura Pintor, mc4229, meyer89, m.fab, Michael Shoemaker, Michał Słapek, Mina Naghshhnejad, mo, Mohamed Maskani, Mojca Bertoncelj, narendramukherjee, ngshya, Nicholas Won, Nicolas Hug, nicolasservel, Niklas, @nkish, Noa Tamir, Oleksandr Pavlyk, olicairns, Oliver Urs Lenz, Olivier Grisel, parsons-kyle-89, Paula, Pete Green, Pierre Delanoue, pspachtholz, Pulkit Mehta, Qizhi Jiang, Quang Nguyen, rachelcjordan, raduspaimoc, Reshama Shaikh, Riccardo Folloni, Rick Mackenbach, Ritchie Ng, Roman Feldbauer, Roman Yurchak, Rory Hartong-Redden, Rüdiger Busche, Rushabh Vasani, Sambhav Kothari, Samesh Lakhotia, Samuel Duan, SanthoshBala18, Santiago M. Mola, Sarat Addepalli, scibol, Sebastian Kießling, SergioDSR, Sergul Aydore, Shiki-H, shivamgargsya, SHUBH CHATTERJEE, Siddharth Gupta, simonamaggio, smarie, Snowhite, stareh, Stephen Blystone, Stephen Marsh, Sunmi Yoon, SylvainLan, talgatomarov, tamirlan1, th0rwas, theoptips, Thomas J Fan, Thomas Li, Thomas Schmitt, Tim Nonner, Tim Vink, Tiphaine Viard, Tirth Patel, Titus Christian, Tom Dupré la Tour, trimeta, Vachan D A, Vandana Iyer, Venkatachalam N, waelbenamara, wconnell, wderose, wenliwyan, Windber, wornbb, Yu-Hang “Maxin” Tang