Версия 1.2#
Для краткого описания основных особенностей выпуска, пожалуйста, обратитесь к Основные новости выпуска scikit-learn 1.2.
Легенда для списков изменений
Основная функция что-то большое, что вы не могли сделать раньше.
Функция что-то, что вы не могли делать раньше.
Эффективность существующий признак теперь может не требовать столько вычислений или памяти.
Улучшение различные мелкие улучшения.
Исправление то, что ранее не работало, как задокументировано – или согласно разумным ожиданиям – теперь должно работать.
Изменение API вам потребуется изменить свой код, чтобы добиться того же эффекта в будущем; или функция будет удалена в будущем.
Версия 1.2.2#
Март 2023
Журнал изменений#
sklearn.base#
Исправление Когда
set_output(transform="pandas"),base.TransformerMixinсохраняет индекс, если преобразовать выход уже является DataFrame. #25747 by Томас Фан.
sklearn.calibration#
Исправление Предупреждение об устаревании выводится при использовании
base_estimator__префикс для установки параметров оценщика, используемого вcalibration.CalibratedClassifierCV. #25477 by Tim Head.
sklearn.cluster#
Исправление Исправлена ошибка в
cluster.BisectingKMeans, предотвращаяfitот случайного сбоя из-за перестановки меток при запуске нескольких инициализаций. #25563 by Жереми дю Буаберранже.
sklearn.compose#
Исправление Исправлена ошибка в
compose.ColumnTransformerкоторый теперь поддерживает пустой выбор столбцов, когдаset_output(transform="pandas"). #25570 by Томас Фан.
sklearn.ensemble#
Исправление Предупреждение об устаревании выводится при использовании
base_estimator__префикс для установки параметров оценщика, используемого вensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor,ensemble.BaggingClassifier, иensemble.BaggingRegressor. #25477 by Tim Head.
sklearn.feature_selection#
Исправление Исправлена регрессия, где отрицательное
tolбольше не будет приниматьсяfeature_selection.SequentialFeatureSelector. #25664 by Жереми дю Буаберранже.
sklearn.inspection#
Исправление Выдать более информативное сообщение об ошибке в
inspection.partial_dependenceпри работе со смешанными типами категорий, которые не могут быть отсортированы поnumpy.uniqueЭта проблема обычно возникает, когда категорииstrи присутствуют пропущенные значения, используяnp.nan. #25774 by Guillaume Lemaitre.
sklearn.isotonic#
Исправление Исправлена ошибка в
isotonic.IsotonicRegressionгдеisotonic.IsotonicRegression.predictвернет pandas DataFrame когда глобальная конфигурация устанавливаетtransform_output="pandas". #25500 by Guillaume Lemaitre.
sklearn.preprocessing#
Исправление
preprocessing.OneHotEncoder.drop_idx_теперь правильно ссылается на удаленную категорию вcategories_атрибут когда есть редкие категории. #25589 by Томас Фан.Исправление
preprocessing.OrdinalEncoderтеперь корректно поддерживаетencoded_missing_valueилиunknown_valueустанавливается в мощность категорий при наличии пропущенных значений в обучающих данных. #25704 by Томас Фан.
sklearn.tree#
Исправление Исправлена регрессия в
tree.DecisionTreeClassifier,tree.DecisionTreeRegressor,tree.ExtraTreeClassifierиtree.ExtraTreeRegressorгде ошибка больше не возникала в версии 1.2, когдаmin_sample_split=1. #25744 by Жереми дю Буаберранже.
sklearn.utils#
Исправление Исправлена ошибка в
utils.check_arrayкоторый теперь корректно выполняет проверку на неконечные значения в соответствии со спецификацией Array API. #25619 by Томас Фан.Исправление
utils.multiclass.type_of_targetможет идентифицировать pandas нулевые типы данных как цели классификации. #25638 by Томас Фан.
Версия 1.2.1#
Январь 2023
Измененные модели#
Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.
Исправление Обученные компоненты в
decomposition.MiniBatchDictionaryLearningможет отличаться. Онлайн обновления достаточных статистик теперь правильно учитывают размеры пакетов. #25354 by Жереми дю Буаберранже.Исправление The
categories_атрибутpreprocessing.OneHotEncoderтеперь всегда содержит массивobject`s when using predefined categories that are strings. Predefined categories encoded as bytes will no longer work with `Xзакодированные как строки. #25174 by Tim Head.
Изменения, затрагивающие все модули#
Исправление Поддержка
pandas.Int64типизированныйyдля классификаторов и регрессоров. #25089 by Tim Head.Исправление Устранение ложных предупреждений для оценщиков, внутренне использующих методы поиска соседей. #25129 by Julien Jerphanion.
Исправление Исправлена ошибка, при которой текущая конфигурация игнорировалась в оценщиках, использующих
n_jobs > 1. Эта ошибка была вызвана задачами, отправленными вспомогательным потокомjoblibкакsklearn.get_configиспользуется для доступа к пустой потоковой локальной конфигурации вместо конфигурации, видимой из потока, гдеjoblib.Parallelбыл впервые вызван. #25363 by Guillaume Lemaitre.
Журнал изменений#
sklearn.base#
Исправление Исправлена регрессия в
BaseEstimator.__getstate__который мог бы помешать некоторым оценщикам быть сериализованными при использовании Python 3.11. #25188 by Бенджамин Боссан.Исправление Наследование от
base.TransformerMixinбудет оборачивать толькоtransformметод, если класс определяетtransformсамого себя. #25295 by Томас Фан.
sklearn.datasets#
Исправление Исправляет несоответствие в
datasets.fetch_openmlмежду liac-arff и парсером pandas, когда вводится начальный пробел после разделителя. Спецификации ARFF требуют игнорировать начальный пробел. #25312 by Guillaume Lemaitre.Исправление Исправлена ошибка в
datasets.fetch_openmlпри использованииparser="pandas"где одиночные кавычки и escape-символы обратной косой черты обрабатывались неправильно. #25511 by Guillaume Lemaitre.
sklearn.decomposition#
Исправление Исправлена ошибка в
decomposition.MiniBatchDictionaryLearningгде онлайн-обновления достаточных статистик были некорректными при вызовеpartial_fitна пакетах разного размера. #25354 by Жереми дю Буаберранже.Исправление
decomposition.DictionaryLearningлучше поддерживает массивы NumPy только для чтения. В частности, он лучше поддерживает большие наборы данных, которые отображаются в память, когда используется с алгоритмами координатного спуска (т.е. когдаfit_algorithm='cd'). #25172 by Julien Jerphanion.
sklearn.ensemble#
Исправление
ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifierиensemble.ExtraTreesRegressorтеперь поддерживают разреженные наборы данных только для чтения. #25341 by Julien Jerphanion
sklearn.feature_extraction#
Исправление
feature_extraction.FeatureHasherвызывает информативную ошибку когда входные данные представляют собой список строк. #25094 by Томас Фан.
sklearn.linear_model#
Исправление Исправлена регрессия в
linear_model.SGDClassifierиlinear_model.SGDRegressorчто делает их непригодными для использования сverboseпараметр установлен в значение больше 0. #25250 by Jérémie Du Boisberranger.
sklearn.manifold#
Исправление
manifold.TSNEтеперь работает корректно, когда тип вывода установлен в pandas #25370 by Tim Head.
sklearn.model_selection#
Исправление
model_selection.cross_validateпри многометрической оценке в случае некоторых неудачных оценщиков теперь неудачные оценщики возвращают правильные оценки вместоerror_scoreзначения. #23101 by András Simon и Томас Фан.
sklearn.neural_network#
Исправление
neural_network.MLPClassifierиneural_network.MLPRegressorбольше не выдает предупреждения при обучении данных с именами признаков. #24873 by Tim Head.Исправление Улучшает сообщение об ошибке в
neural_network.MLPClassifierиneural_network.MLPRegressor, когдаearly_stopping=Trueиpartial_fitвызывается. #25694 by Томас Фан.
sklearn.preprocessing#
Исправление
preprocessing.FunctionTransformer.inverse_transformкорректно поддерживает DataFrame, которые полностью числовые, когдаcheck_inverse=True. #25274 by Томас Фан.Исправление
preprocessing.SplineTransformer.get_feature_names_outкорректно возвращает имена признаков, когдаextrapolations="periodic". #25296 by Томас Фан.
sklearn.tree#
Исправление
tree.DecisionTreeClassifier,tree.DecisionTreeRegressortree.ExtraTreeClassifierиtree.ExtraTreeRegressorтеперь поддерживают разреженные наборы данных только для чтения. #25341 by Julien Jerphanion
sklearn.utils#
Исправление Восстановить
utils.check_arrayповедение для pandas Series типа boolean. Тип сохраняется, вместо преобразования вfloat64.#25147 by Tim Head.Изменение API
utils.fixes.delayedустарел в версии 1.2.1 и будет удалён в версии 1.5. Вместо этого импортируйтеutils.parallel.delayedи используем его вместе с недавно представленнымutils.parallel.Parallelчтобы обеспечить правильное распространение конфигурации scikit-learn на рабочих. #25363 by Guillaume Lemaitre.
Версия 1.2.0#
Декабрь 2022
Измененные модели#
Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.
Улучшение По умолчанию
eigen_tolдляcluster.SpectralClustering,manifold.SpectralEmbedding,cluster.spectral_clustering, иmanifold.spectral_embeddingтеперьNoneпри использовании'amg'или'lobpcg'солверы. Это изменение улучшает численную стабильность солвера, но может привести к другой модели.Улучшение
linear_model.GammaRegressor,linear_model.PoissonRegressorиlinear_model.TweedieRegressorможет достичь более высокой точности с решателем lbfgs, особенно когдаtolустановлен в очень маленькое значение. Более того,verboseтеперь корректно передается в L-BFGS-B. #23619 by Christian Lorentzen.Улучшение Значение по умолчанию для
epsmetrics.log_lossизменился с1e-15to"auto"."auto"наборыepstonp.finfo(y_pred.dtype).eps. #24354 by Сафиуддин Хаджа и gsiisg.Исправление Установите знак
components_детерминирован вdecomposition.SparsePCA. #23935 by Guillaume Lemaitre.Исправление The
components_знаки вdecomposition.FastICAможет отличаться. Теперь он согласован и детерминирован со всеми решателями SVD. #22527 by Meekail Zain и Томас Фан.Исправление Условие для ранней остановки теперь изменено в
linear_model._sgd_fast._plain_sgdкоторый используетсяlinear_model.SGDRegressorиlinear_model.SGDClassifier. Старое условие не различало обучающий и валидационный наборы и имело эффект чрезмерного масштабирования допуска ошибки. Это исправлено в #23798 by Harsh Agrawal.Исправление Для
model_selection.GridSearchCVиmodel_selection.RandomizedSearchCVранги, соответствующие nan-оценкам, будут установлены на максимально возможный ранг. #24543 by Guillaume Lemaitre.Изменение API Значение по умолчанию для
tolбыло изменено с1e-3to1e-4дляlinear_model.ridge_regression,linear_model.Ridgeиlinear_model.RidgeClassifier. #24465 by Christian Lorentzen.
Изменения, затрагивающие все модули#
Основная функция The
set_outputAPI был принят всеми трансформерами. Мета-оценщики, которые содержат трансформеры, такие какpipeline.Pipelineилиcompose.ColumnTransformerтакже определяетset_output. Подробности см. в SLEP018. #23734 и #24699 by Томас Фан.Эффективность Низкоуровневые процедуры для редукций на попарных расстояниях для плотных наборов данных float32 были переработаны. Следующие функции и оценщики теперь получают улучшенную производительность с точки зрения аппаратной масштабируемости и ускорения:
Например
sklearn.neighbors.NearestNeighbors.kneighborsиsklearn.neighbors.NearestNeighbors.radius_neighborsмогут быть соответственно до ×20 и ×5 быстрее, чем ранее, на ноутбуке.Более того, реализации этих двух алгоритмов теперь подходят для машин со многими ядрами, что делает их пригодными для наборов данных, состоящих из миллионов образцов.
Улучшение Проверки конечности (обнаружение значений NaN и бесконечности) во всех оценщиках теперь значительно эффективнее для данных float32 благодаря использованию SIMD-оптимизированных примитивов NumPy. #23446 by Meekail Zain
Улучшение Проверки конечности (обнаружение значений NaN и бесконечности) во всех оценщиках теперь выполняются быстрее благодаря использованию более эффективного алгоритма остановки при первом обнаружении во втором проходе. #23197 by Meekail Zain
Улучшение Поддержка комбинаций плотных и разреженных наборов данных для всех метрик расстояния и для наборов данных float32 и float64 была добавлена или её производительность улучшена для следующих оценщиков:
#23604 и #23585 by Julien Jerphanion, Оливье Гризель, и Томас Фан, #24556 by Vincent Maladière.
Исправление Систематически проверять хэш-дайджест sha256 архивов наборов данных, используемых в примерах кода в документации. #24617 by Оливье Гризель и Томас Фан. Благодаря Sim4n6 Размерность по оси y.
Журнал изменений#
sklearn.base#
Улучшение Вводит
base.ClassNamePrefixFeaturesOutMixinиbase.ClassNamePrefixFeaturesOutMixinмиксины, которые определяют get_feature_names_out для распространенных случаев использования трансформеров. #24688 by Томас Фан.
sklearn.calibration#
Изменение API Переименовать
base_estimatortoestimatorвcalibration.CalibratedClassifierCVдля улучшения читаемости и согласованности. Параметрbase_estimatorустарело и будет удалено в версии 1.4. #22054 by Кевин Ройс.
sklearn.cluster#
Эффективность
cluster.KMeansсalgorithm="lloyd"теперь работает быстрее и использует меньше памяти. Построение ROC-кривой по истинным и предсказанным значениям. by Венсан Маладиер.Улучшение The
predictиfit_predictметодыcluster.OPTICSтеперь принимает разреженный тип данных для входных данных. #14736 by Хант Жан, #20802 by Brandon Pokorny, и #22965 by Meekail Zain.Улучшение
cluster.Birchтеперь сохраняет dtype дляnumpy.float32входных данных. #22968 byMeekail Zain.Улучшение
cluster.KMeansиcluster.MiniBatchKMeansтеперь принимают новый'auto'опция дляn_initчто изменяет количество случайных инициализаций на одну при использованииinit='k-means++'для эффективности. Это начинает устаревание для значений по умолчаниюn_initв двух классах, и оба будут иметь свои значения по умолчанию, изменённые наn_init='auto'в 1.4. #23038 by Meekail Zain.Улучшение
cluster.SpectralClusteringиcluster.spectral_clusteringтеперь распространитеeigen_tolпараметр для всех вариантовeigen_solver. Включает новую опциюeigen_tol="auto"и начинает устаревание, чтобы изменить значение по умолчанию сeigen_tol=0toeigen_tol="auto"в версии 1.3. #23210 by Meekail Zain.Исправление
cluster.KMeansтеперь поддерживает атрибуты только для чтения при предсказании. #24258 by Томас ФанИзменение API The
affinityатрибут теперь устарел дляcluster.AgglomerativeClusteringи будет переименован вmetricв v1.4. #23470 by Meekail Zain.
sklearn.datasets#
Улучшение Введите новый параметр
parserвdatasets.fetch_openml.parser="pandas"позволяет использовать очень эффективные по CPU и памятиpandas.read_csvпарсер для загрузки плотных ARFF форматированных файлов наборов данных. Можно передатьparser="liac-arff"использовать старый парсер LIAC. Когдаparser="auto", плотные наборы данных загружаются с помощью "pandas", а разреженные наборы данных загружаются с помощью "liac-arff". В настоящее время,parser="liac-arff"по умолчанию и изменится наparser="auto"в версии 1.4 #21938 by Guillaume Lemaitre.Улучшение
datasets.dump_svmlight_fileтеперь ускорен с помощью реализации на Cython, обеспечивая ускорение в 2-4 раза. #23127 by Meekail ZainУлучшение Объекты, подобные путям, такие как созданные с помощью pathlib, теперь разрешены в качестве путей в
datasets.load_svmlight_fileиdatasets.load_svmlight_files. #19075 by Карлос Рамос Карреньо.Исправление Убедитесь, что
datasets.fetch_lfw_peopleиdatasets.fetch_lfw_pairsвнутренне обрезать изображения на основеslice_параметр. #24951 by Guillaume Lemaitre.
sklearn.decomposition#
Эффективность
decomposition.FastICA.fitбыл оптимизирован с точки зрения его занимаемой памяти и времени выполнения. #22268 by MohamedBsh.Улучшение
decomposition.SparsePCAиdecomposition.MiniBatchSparsePCAтеперь реализуетinverse_transformфункция. #23905 by Guillaume Lemaitre.Улучшение
decomposition.FastICAтеперь позволяет пользователю выбирать способ выполнения отбеливания через новыйwhiten_solverпараметр, который поддерживаетsvdиeigh.whiten_solverпо умолчаниюsvdхотяeighможет быть быстрее и эффективнее по памяти в случаях, когдаnum_features > num_samples. #11860 by Пьер Аблин, #22527 by Meekail Zain и Томас Фан.Улучшение
decomposition.LatentDirichletAllocationтеперь сохраняет dtype дляnumpy.float32ввод. #24528 by Takeshi Oura и Жереми дю Буаберранже.Исправление Установите знак
components_детерминирован вdecomposition.SparsePCA. #23935 by Guillaume Lemaitre.Изменение API The
n_iterпараметрdecomposition.MiniBatchSparsePCAустарел и заменен параметрамиmax_iter,tol, иmax_no_improvementдля согласованности сdecomposition.MiniBatchDictionaryLearning.n_iterбудет удален в версии 1.3. #23726 by Guillaume Lemaitre.Изменение API The
n_features_атрибутdecomposition.PCAустарел в пользуn_features_in_и будет удален в версии 1.4. #24421 by Кшитидж Матур.
sklearn.discriminant_analysis#
Основная функция
discriminant_analysis.LinearDiscriminantAnalysisтеперь поддерживает Array API дляsolver="svd". Поддержка Array API считается экспериментальной и может развиваться без применения нашей обычной политики цикла постепенного устаревания. См. Поддержка Array API (экспериментальная) для получения дополнительной информации. #22554 by Томас Фан.Исправление Проверять параметры только в
fitи не в__init__дляdiscriminant_analysis.QuadraticDiscriminantAnalysis. #24218 by Stefanie Molin.
sklearn.ensemble#
Основная функция
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorтеперь поддерживают ограничения взаимодействия через аргументinteraction_cstих конструкторов. #21020 by Christian Lorentzen. Использование ограничений взаимодействия также ускоряет подгонку. #24856 by Christian Lorentzen.Функция Добавляет
class_weighttoensemble.HistGradientBoostingClassifier. #22014 by Томас Фан.Эффективность Улучшена производительность времени выполнения
ensemble.IsolationForestизбегая копирования данных. #23252 by Zhehao Liu.Улучшение
ensemble.StackingClassifierтеперь принимает любой базовый оценщик. #24538 by Guillem G Subies.Улучшение Сделать возможным передачу
categorical_featuresоценок.ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorв качестве имён признаков. #24889 by Оливье Гризель.Улучшение
ensemble.StackingClassifierтеперь поддерживает многометочные целевые переменные #24146 by Николя Перетти, Нестор Наварро, Nati Tomattis, и Венсан Маладиер.Улучшение
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorтеперь принимают своиmonotonic_cstЭтот вариант более эффективен для агломеративной кластеризации, если количество кластеров мало по сравнению с количеством точек данных.-1,0,1как значение для указания ограничений монотонности для каждого признака. #24855 by Оливье Гризель.Улучшение Ограничения взаимодействия для
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorтеперь могут быть указаны как строки для двух распространённых случаев: "no_interactions" и "pairwise" взаимодействия. #24849 by Tim Head.Исправление Исправлена проблема, когда
ensemble.AdaBoostClassifierвыводит NaN в важности признаков при обучении с очень малым весом выборки. #20415 by Zhehao Liu.Исправление
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorбольше не вызывает ошибку при предсказании на категориях, закодированных как отрицательные значения, и вместо этого считает их членами "пропущенной категории". #24283 by Томас Фан.Исправление
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressor, сverbose>=1, выводить подробную информацию о времени вычисления гистограмм и поиска лучших разбиений. Время, затраченное в корневом узле, ранее отсутствовало и теперь включено в выводимую информацию. #24894 by Christian Lorentzen.Изменение API Переименовать параметр конструктора
base_estimatortoestimatorв следующих классах:ensemble.BaggingClassifier,ensemble.BaggingRegressor,ensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor.base_estimatorустарел в 1.2 и будет удалён в 1.4. #23819 by Adrian Trujillo и Эдоардо Абати.Изменение API Переименовать обученный атрибут
base_estimator_toestimator_в следующих классах:ensemble.BaggingClassifier,ensemble.BaggingRegressor,ensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor,ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifier,ensemble.ExtraTreesRegressor,ensemble.RandomTreesEmbedding,ensemble.IsolationForest.base_estimator_устарел в 1.2 и будет удалён в 1.4. #23819 by Adrian Trujillo и Эдоардо Абати.
sklearn.feature_selection#
Исправление Исправлена ошибка в
feature_selection.mutual_info_regressionиfeature_selection.mutual_info_classif, где непрерывные признаки вXдолжен быть масштабирован до единичной дисперсии независимо, если целеваяyявляется непрерывным или дискретным. #24747 by Guillaume Lemaitre
sklearn.gaussian_process#
Исправление Исправление
gaussian_process.kernels.Maternподдержкаnu=0.5для PyPy (и, возможно, других интерпретаторов, отличных от CPython). #24245 by Loïc Estève.Исправление The
fitметодgaussian_process.GaussianProcessRegressorне будет изменять входной X в случае использования пользовательского ядра, сdiagметод, который возвращает часть входных данных X. #24405 by Omar Salman.
sklearn.impute#
Улучшение Добавлен
keep_empty_featuresпараметр дляimpute.SimpleImputer,impute.KNNImputerиimpute.IterativeImputer, предотвращая удаление признаков, содержащих только пропущенные значения при преобразовании. #16695 by Витор Санта Роза.
sklearn.inspection#
Основная функция Расширенный
inspection.partial_dependenceиinspection.PartialDependenceDisplayдля обработки категориальных признаков. #18298 by Madhura Jayaratne и Guillaume Lemaitre.Исправление
inspection.DecisionBoundaryDisplayтеперь вызывает ошибку, если входные данные не двумерные. #25077 by Arturo Amor.
sklearn.kernel_approximation#
Улучшение
kernel_approximation.RBFSamplerтеперь сохраняет dtype дляnumpy.float32входных данных. #24317 byTim Head.Улучшение
kernel_approximation.SkewedChi2Samplerтеперь сохраняет dtype дляnumpy.float32входных данных. #24350 by Rahil Parikh.Улучшение
kernel_approximation.RBFSamplerтеперь принимает'scale'опция для параметраgamma. #24755 by Hleb Levitski.
sklearn.linear_model#
Улучшение
linear_model.LogisticRegression,linear_model.LogisticRegressionCV,linear_model.GammaRegressor,linear_model.PoissonRegressorиlinear_model.TweedieRegressorполучил новый решательsolver="newton-cholesky". Это оптимизационная процедура 2-го порядка (Ньютона), использующая разложение Холецкого матрицы Гессе. Когдаn_samples >> n_features,"newton-cholesky"решатель был замечен сходящимся как быстрее, так и к решению с более высокой точностью, чем"lbfgs"решатель для задач с one-hot кодированными категориальными переменными с некоторыми редкими категориальными уровнями. #24637 и #24767 by Christian Lorentzen.Улучшение
linear_model.GammaRegressor,linear_model.PoissonRegressorиlinear_model.TweedieRegressorможет достичь более высокой точности с решателем lbfgs, особенно когдаtolустановлен в очень маленькое значение. Более того,verboseтеперь корректно передается в L-BFGS-B. #23619 by Christian Lorentzen.Исправление
linear_model.SGDClassifierиlinear_model.SGDRegressorвыдаст ошибку, когда все валидационные выборки имеют нулевой вес. #23275 byZhehao Liu.Исправление
linear_model.SGDOneClassSVMбольше не выполняет проверку параметров в конструкторе. Вся проверка теперь обрабатывается вfit()иpartial_fit(). #24433 by Yogendrasingh, Ариса Я. и Tim Head.Исправление Исправление расчета средних потерь при включенном раннем остановке в
linear_model.SGDRegressorиlinear_model.SGDClassifier. Также обновлено условие для ранней остановки соответственно. #23798 by Harsh Agrawal.Изменение API Значение по умолчанию для
solverпараметр вlinear_model.QuantileRegressorизменится с"interior-point"to"highs"в версии 1.4. #23637 by Guillaume Lemaitre.Изменение API Строковая опция
"none"устарел дляpenaltyаргумент вlinear_model.LogisticRegression, и будет удален в версии 1.4. ИспользуйтеNoneвместо этого. #23877 by Zhehao Liu.Изменение API Значение по умолчанию для
tolбыло изменено с1e-3to1e-4дляlinear_model.ridge_regression,linear_model.Ridgeиlinear_model.RidgeClassifier. #24465 by Christian Lorentzen.
sklearn.manifold#
Функция Добавлена опция использования нормализованного напряжения в
manifold.MDS. Это активируется установкой новогоnormalizeпараметр дляTrue. #10168 by Łukasz Borchmann, #12285 by Маттиас Мильтенбергер, #13042 by Маттьё Паризи, #18094 by Roth E Conrad и #22562 by Meekail Zain.Улучшение Добавляет
eigen_tolпараметр дляmanifold.SpectralEmbedding. Обаmanifold.spectral_embeddingиmanifold.SpectralEmbeddingтеперь распространяютeigen_tolдля всех вариантовeigen_solver. Включает новую опциюeigen_tol="auto"и начинает устаревание, чтобы изменить значение по умолчанию сeigen_tol=0toeigen_tol="auto"в версии 1.3. #23210 by Meekail Zain.Улучшение
manifold.Isomapтеперь сохраняет dtype дляnp.float32входных данных. #24714 by Rahil Parikh.Изменение API Добавлен
"auto"опция дляnormalized_stressаргумент вmanifold.MDSиmanifold.smacof. Обратите внимание, чтоnormalized_stressдействительна только для неметрического MDS, поэтому"auto"опция включаетnormalized_stressкогдаmetric=Falseи отключает его, когдаmetric=True."auto"станет значением по умолчанию дляnormalized_stressв версии 1.4. #23834 by Meekail Zain
sklearn.metrics#
Функция
metrics.ConfusionMatrixDisplay.from_estimator,metrics.ConfusionMatrixDisplay.from_predictions, иmetrics.ConfusionMatrixDisplay.plotпринимаетtext_kwпараметр, который передается в matplotlibtextфункция. #24051 by Томас Фан.Функция
metrics.class_likelihood_ratiosдобавлен для вычисления положительного и отрицательного отношений правдоподобия, полученных из матрицы ошибок бинарной задачи классификации. #22518 by Arturo Amor.Функция Добавить
metrics.PredictionErrorDisplayдля построения графиков остатков против предсказанных и фактических против предсказанных, чтобы качественно оценить поведение регрессора. Дисплей может быть создан с помощью методов классаmetrics.PredictionErrorDisplay.from_estimatorиmetrics.PredictionErrorDisplay.from_predictions. #18020 by Guillaume Lemaitre.Функция
metrics.roc_auc_scoreтеперь поддерживает микро-усреднение (average="micro") для многоклассового случая One-vs-Rest (multi_class="ovr"). #24338 by Arturo Amor.Улучшение Добавляет
"auto"опция дляepsвmetrics.log_loss. Эта опция автоматически установитepsзначение в зависимости от типа данныхy_pred. Кроме того, значение по умолчанию дляepsизменен с1e-15к новому"auto"опция. #24354 by Сафиуддин Хаджа и gsiisg.Исправление Позволяет
csr_matrixв качестве входных данных для параметра:y_trueизmetrics.label_ranking_average_precision_scoreметрика. #23442 by Шон АтукоралаИсправление
metrics.ndcg_scoreтеперь будет вызывать предупреждение, когдаy_trueзначение содержит отрицательное значение. Пользователи всё ещё могут использовать отрицательные значения, но результат может не находиться в диапазоне от 0 до 1. Начиная с версии 1.4, передача отрицательных значений дляy_trueвызовет ошибку. #22710 by Конрой Трин и #23461 by Meekail Zain.Исправление
metrics.log_lossсeps=0теперь возвращает корректное значение 0 илиnp.infвместоnanдля предсказаний на границах (0 или 1). Также принимает целочисленный ввод. #24365 by Christian Lorentzen.Изменение API Параметр
sum_over_featuresofmetrics.pairwise.manhattan_distancesустарело и будет удалено в версии 1.4. #24630 by Рушил Десаи.
sklearn.model_selection#
Функция Добавлен класс
model_selection.LearningCurveDisplayкоторая позволяет легко строить графики кривых обучения, полученных функциейmodel_selection.learning_curve. #24084 by Guillaume Lemaitre.Исправление Для всех
SearchCVклассов и scipy >= 1.10, ранг, соответствующий nan-оценке, правильно устанавливается на максимально возможный ранг, а неnp.iinfo(np.int32).min. #24141 by Loïc Estève.Исправление В обоих
model_selection.HalvingGridSearchCVиmodel_selection.HalvingRandomSearchCVкомбинации параметров с оценкой NaN теперь имеют одинаковый низший ранг. #24539 by Tim Head.Исправление Для
model_selection.GridSearchCVиmodel_selection.RandomizedSearchCVранги, соответствующие nan-оценкам, будут установлены на максимально возможный ранг. #24543 by Guillaume Lemaitre.
sklearn.multioutput#
Функция Добавлен булевый
verboseфлаг для классов:multioutput.ClassifierChainиmultioutput.RegressorChain. #23977 by Eric Fiegel, Кьяра Мармо, Lucy Liu, и Guillaume Lemaitre.
sklearn.naive_bayes#
Функция Добавить методы
predict_joint_log_probaдля всех наивных байесовских классификаторов. #23683 by Andrey Melnik.Улучшение Новый параметр
force_alphaбыл добавлен вnaive_bayes.BernoulliNB,naive_bayes.ComplementNB,naive_bayes.CategoricalNB, иnaive_bayes.MultinomialNB, позволяя пользователю установить параметр альфа в очень маленькое число, большее или равное 0, которое ранее автоматически изменялось на1e-10вместо этого. #16747 by @arka204, #18805 by @hongshaoyang, #22269 by Meekail Zain.
sklearn.neighbors#
Функция Добавляет новую функцию
neighbors.sort_graph_by_row_valuesчтобы отсортировать разреженный граф CSR так, чтобы каждая строка хранилась с возрастающими значениями. Это полезно для повышения эффективности при использовании предвычисленных разреженных матриц расстояний в различных оценщиках и избежанияEfficiencyWarning. #23139 by Tom Dupre la Tour.Эффективность
neighbors.NearestCentroidбыстрее и требует меньше памяти, так как лучше использует кэши ЦП для вычисления предсказаний. #24645 by Оливье Гризель.Улучшение
neighbors.KernelDensityпараметр bandwidth теперь принимает определение с использованием методов оценки Скотта и Сильвермана. #10468 by Рубен и #22993 by Йован Стоянович.Улучшение
neighbors.NeighborsBaseтеперь принимает полуметрику Минковского (т.е. когда \(0 < p < 1\) дляmetric="minkowski") дляalgorithm="auto"илиalgorithm="brute". #24750 by Рудреш ВиркхареИсправление
neighbors.NearestCentroidтеперь выдает информативное сообщение об ошибке во время обучения вместо того чтобы завершаться с низкоуровневым сообщением об ошибке во время предсказания. #23874 by Juan Gomez.Исправление Установить
n_jobs=Noneпо умолчанию (вместо1) дляneighbors.KNeighborsTransformerиneighbors.RadiusNeighborsTransformer. #24075 by Валентин Лоран.Улучшение
neighbors.LocalOutlierFactorтеперь сохраняет dtype дляnumpy.float32входных данных. #22665 by Julien Jerphanion.
sklearn.neural_network#
Исправление
neural_network.MLPClassifierиneural_network.MLPRegressorвсегда раскрывает параметрыbest_loss_,validation_scores_, иbest_validation_score_.best_loss_установлено вNoneкогдаearly_stopping=True, в то время какvalidation_scores_иbest_validation_score_установлены вNoneкогдаearly_stopping=False. #24683 by Guillaume Lemaitre.
sklearn.pipeline#
Улучшение
pipeline.FeatureUnion.get_feature_names_outтеперь может использоваться, когда один из преобразователей вpipeline.FeatureUnionявляется"passthrough". #24058 by Diederik PerdokУлучшение The
pipeline.FeatureUnionкласс теперь имеетnamed_transformersатрибут для доступа к трансформерам по имени. #20331 by Christopher Flynn.
sklearn.preprocessing#
Улучшение
preprocessing.FunctionTransformerвсегда будет пытаться установитьn_features_in_иfeature_names_in_независимо отvalidateпараметр. #23993 by Томас Фан.Исправление
preprocessing.LabelEncoderправильно кодирует NaN вtransform. #22629 by Томас Фан.Изменение API The
sparseпараметрpreprocessing.OneHotEncoderтеперь устарел и будет удалён в версии 1.4. Используйтеsparse_outputвместо этого. #24412 by Рушил Десаи.
sklearn.svm#
Изменение API The
class_weight_атрибут теперь устарел дляsvm.NuSVR,svm.SVR,svm.OneClassSVM. #22898 by Meekail Zain.
sklearn.tree#
Улучшение
tree.plot_tree,tree.export_graphvizтеперь использует строчную буквуx[i]для представления признакаi. #23480 by Томас Фан.
sklearn.utils#
Функция Новый модуль предоставляет инструменты разработки для обнаружения оценщиков (т.е.
utils.discovery.all_estimators), отображает (т.е.utils.discovery.all_displays) и функции (т.е.utils.discovery.all_functions) в scikit-learn. #21469 by Guillaume Lemaitre.Улучшение
utils.extmath.randomized_svdтеперь принимает аргумент,lapack_svd_driver, чтобы указать драйвер lapack, используемый во внутреннем детерминированном SVD, используемом рандомизированным алгоритмом SVD. #20617 by Сринат КайласаУлучшение
utils.validation.column_or_1dтеперь принимаетdtypeпараметр для конкретногоyтип данных. #22629 by Томас Фан.Улучшение
utils.extmath.cartesianтеперь принимает массивы с разнымиdtypeи приведет вывод к наиболее разрешающемуdtype. #25067 by Guillaume Lemaitre.Исправление
utils.multiclass.type_of_targetтеперь корректно обрабатывает разреженные матрицы. #14862 by Léonard Binet.Исправление HTML-представление больше не выдает ошибки, когда класс оценщика является значением в
get_params. #24512 by Томас Фан.Исправление
utils.estimator_checks.check_estimatorтеперь учитываетrequires_positive_Xкоторый имеет форму #24667 by Томас Фан.Исправление
utils.check_arrayтеперь поддерживает Pandas Series сpd.NAпутем выдачи более понятного сообщения об ошибке или возврата совместимогоndarray. #25080 by Томас Фан.Изменение API Дополнительные ключевые параметры
utils.extmath.densityустарели и будут удалены в 1.4. #24523 by Mia Bajic.
Участники кода и документации
Спасибо всем, кто внес вклад в поддержку и улучшение проекта с версии 1.1, включая:
2357juan, 3lLobo, Adam J. Stewart, Adam Kania, Adam Li, Aditya Anulekh, Admir Demiraj, adoublet, Adrin Jalali, Ahmedbgh, Aiko, Akshita Prasanth, Ala-Na, Alessandro Miola, Alex, Alexandr, Alexandre Perez-Lebel, Alex Buzenet, Ali H. El-Kassas, aman kumar, Amit Bera, András Simon, Andreas Grivas, Andreas Mueller, Andrew Wang, angela-maennel, Aniket Shirsat, Anthony22-dev, Antony Lee, anupam, Apostolos Tsetoglou, Aravindh R, Artur Hermano, Arturo Amor, as-90, ashah002, Ashwin Mathur, avm19, Azaria Gebremichael, b0rxington, Badr MOUFAD, Bardiya Ak, Bartłomiej Gońda, BdeGraaff, Benjamin Bossan, Benjamin Carter, berkecanrizai, Bernd Fritzke, Bhoomika, Biswaroop Mitra, Brandon TH Chen, Brett Cannon, Bsh, cache-missing, carlo, Carlos Ramos Carreño, ceh, chalulu, Changyao Chen, Charles Zablit, Chiara Marmo, Christian Lorentzen, Christian Ritter, Christian Veenhuis, christianwaldmann, Christine P. Chai, Claudio Salvatore Arcidiacono, Clément Verrier, crispinlogan, Da-Lan, DanGonite57, Daniela Fernandes, DanielGaerber, darioka, Darren Nguyen, davidblnc, david-cortes, David Gilbertson, David Poznik, Dayne, Dea María Léon, Denis, Dev Khant, Dhanshree Arora, Diadochokinetic, diederikwp, Dimitri Papadopoulos Orfanos, Dimitris Litsidis, drewhogg, Duarte OC, Dwight Lindquist, Eden Brekke, Edern, Edoardo Abati, Eleanore Denies, EliaSchiavon, Emir, ErmolaevPA, Fabrizio Damicelli, fcharras, Felipe Siola, Flynn, francesco-tuveri, Franck Charras, ftorres16, Gael Varoquaux, Geevarghese George, genvalen, GeorgiaMayDay, Gianr Lazz, Hleb Levitski, Glòria Macià Muñoz, Guillaume Lemaitre, Guillem García Subies, Guitared, gunesbayir, Haesun Park, Hansin Ahuja, Hao Chun Chang, Harsh Agrawal, harshit5674, hasan-yaman, henrymooresc, Henry Sorsky, Hristo Vrigazov, htsedebenham, humahn, i-aki-y, Ian Thompson, Ido M, Iglesys, Iliya Zhechev, Irene, ivanllt, Ivan Sedykh, Jack McIvor, jakirkham, JanFidor, Jason G, Jérémie du Boisberranger, Jiten Sidhpura, jkarolczak, João David, JohnathanPi, John Koumentis, John P, John Pangas, johnthagen, Jordan Fleming, Joshua Choo Yun Keat, Jovan Stojanovic, Juan Carlos Alfaro Jiménez, juanfe88, Juan Felipe Arias, JuliaSchoepp, Julien Jerphanion, jygerardy, ka00ri, Kanishk Sachdev, Kanissh, Kaushik Amar Das, Kendall, Kenneth Prabakaran, Kento Nozawa, kernc, Kevin Roice, Kian Eliasi, Kilian Kluge, Kilian Lieret, Kirandevraj, Kraig, krishna kumar, krishna vamsi, Kshitij Kapadni, Kshitij Mathur, Lauren Burke, Léonard Binet, lingyi1110, Lisa Casino, Logan Thomas, Loic Esteve, Luciano Mantovani, Lucy Liu, Maascha, Madhura Jayaratne, madinak, Maksym, Malte S. Kurz, Mansi Agrawal, Marco Edward Gorelli, Marco Wurps, Maren Westermann, Maria Telenczuk, Mario Kostelac, martin-kokos, Marvin Krawutschke, Masanori Kanazu, mathurinm, Matt Haberland, mauroantonioserrano, Max Halford, Maxi Marufo, maximeSaur, Maxim Smolskiy, Maxwell, m. bou, Meekail Zain, Mehgarg, mehmetcanakbay, Mia Bajić, Michael Flaks, Michael Hornstein, Michel de Ruiter, Michelle Paradis, Mikhail Iljin, Misa Ogura, Moritz Wilksch, mrastgoo, Naipawat Poolsawat, Naoise Holohan, Nass, Nathan Jacobi, Nawazish Alam, Nguyễn Văn Diễn, Nicola Fanelli, Nihal Thukarama Rao, Nikita Jare, nima10khodaveisi, Nima Sarajpoor, nitinramvelraj, NNLNR, npache, Nwanna-Joseph, Nymark Kho, o-holman, Olivier Grisel, Olle Lukowski, Omar Hassoun, Omar Salman, osman tamer, ouss1508, Oyindamola Olatunji, PAB, Pandata, partev, Paulo Sergio Soares, Petar Mlinarić, Peter Jansson, Peter Steinbach, Philipp Jung, Piet Brömmel, Pooja M, Pooja Subramaniam, priyam kakati, puhuk, Rachel Freeland, Rachit Keerti Das, Rafal Wojdyla, Raghuveer Bhat, Rahil Parikh, Ralf Gommers, ram vikram singh, Ravi Makhija, Rehan Guha, Reshama Shaikh, Richard Klima, Rob Crockett, Robert Hommes, Robert Juergens, Robin Lenz, Rocco Meli, Roman4oo, Ross Barnowski, Rowan Mankoo, Rudresh Veerkhare, Rushil Desai, Sabri Monaf Sabri, Safikh, Safiuddin Khaja, Salahuddin, Sam Adam Day, Sandra Yojana Meneses, Sandro Ephrem, Sangam, SangamSwadik, SANJAI_3, SarahRemus, Sashka Warner, SavkoMax, Scott Gigante, Scott Gustafson, Sean Atukorala, sec65, SELEE, seljaks, Shady el Gewily, Shane, shellyfung, Shinsuke Mori, Shiva chauhan, Shoaib Khan, Shogo Hida, Shrankhla Srivastava, Shuangchi He, Simon, sonnivs, Sortofamudkip, Srinath Kailasa, Stanislav (Stanley) Modrak, Stefanie Molin, stellalin7, Stéphane Collot, Steven Van Vaerenbergh, Steve Schmerler, Sven Stehle, Tabea Kossen, TheDevPanda, the-syd-sre, Thijs van Weezel, Thomas Bonald, Thomas Germer, Thomas J. Fan, Ti-Ion, Tim Head, Timofei Kornev, toastedyeast, Tobias Pitters, Tom Dupré la Tour, tomiock, Tom Mathews, Tom McTiernan, tspeng, Tyler Egashira, Valentin Laurent, Varun Jain, Vera Komeyer, Vicente Reyes-Puerta, Vinayak Mehta, Vincent M, Vishal, Vyom Pathak, wattai, wchathura, WEN Hao, William M, x110, Xiao Yuan, Xunius, yanhong-zhao-ef, Yusuf Raji, Z Adil Khwaja, zeeshan lone