Версия 1.6#
Для краткого описания основных особенностей выпуска, пожалуйста, обратитесь к Основные новости выпуска scikit-learn 1.6.
Легенда для списков изменений
Основная функция что-то большое, что вы не могли сделать раньше.
Функция что-то, что вы не могли делать раньше.
Эффективность существующий признак теперь может не требовать столько вычислений или памяти.
Улучшение различные мелкие улучшения.
Исправление то, что ранее не работало, как задокументировано – или согласно разумным ожиданиям – теперь должно работать.
Изменение API вам потребуется изменить свой код, чтобы добиться того же эффекта в будущем; или функция будет удалена в будущем.
Версия 1.6.1#
Январь 2025
Измененные модели#
Исправление The
tags.input_tags.sparseфлаг был исправлен для большинства оценщиков. С помощью Antoine Baker #30187
Изменения, затрагивающие многие модули#
Исправление
_more_tags,_get_tags, и_safe_tagsтеперь вызываютDeprecationWarningвместоFutureWarningтолько для уведомления разработчиков, а не конечных пользователей. По Guillaume Lemaitre в #30573
sklearn.metrics#
Исправление Исправлена регрессия, когда метрика scikit-learn, вызванная на тензорах PyTorch CPU, вызывала ошибку (с отключённой диспетчеризацией Array API, что является значением по умолчанию). Автор Loïc Estève #30454
sklearn.model_selection#
Исправление
cross_validate,cross_val_predict, иcross_val_scoreтеперь принимаютparams=Noneкогда маршрутизация метаданных включена. Путем Адрин Джалали #30451
sklearn.tree#
sklearn.utils#
Улучшение
utils.estimator_checks.check_estimator_sparse_tagгарантирует, что тег оценщикаinput_tags.sparseсогласован с егоfitметод (принимающий разреженный вводXили вызов соответствующей ошибки). При Antoine Baker #30187Исправление Вызвать
DeprecationWarningкогда нет конкретной реализации__sklearn_tags__в MRO оценщика. Мы запрашиваем наследование отBaseEstimatorкоторый реализует__sklearn_tags__. Путем Guillaume Lemaitre #30516
Версия 1.6.0#
Декабрь 2024
Изменения, затрагивающие многие модули#
Улучшение
__sklearn_tags__был введён для установки тегов в оценщиках. Подробнее в Теги оценщиков. Путем Томас Фан и Адрин Джалали #29677Улучшение Классы и функции Scikit-learn могут использоваться, имея только
import sklearnстроку импорта. Например,import sklearn; sklearn.svm.SVC()теперь работает. Благодаря Томас Фан #29793Исправление Классы
metrics.ConfusionMatrixDisplay,metrics.RocCurveDisplay,calibration.CalibrationDisplay,metrics.PrecisionRecallDisplay,metrics.PredictionErrorDisplayиinspection.PartialDependenceDisplayтеперь корректно обрабатывает псевдонимы Matplotlib для параметров стиля (например,cиcolor,lsиlinestyle, и т.д.). Путем Жозеф Барбье #30023Изменение API
utils.validation.validate_dataвводится и заменяет ранее приватныйbase.BaseEstimator._validate_dataметод. Это предназначено для разработчиков сторонних оценщиков, которые должны использовать эту функцию в большинстве случаев вместоutils.check_arrayиutils.check_X_y. Путем Адрин Джалали #29696
Поддержка Array API#
Дополнительные оценщики и функции были обновлены для включения поддержки всех Array API соответствующие входные данные.
См. Поддержка Array API (экспериментальная) для получения дополнительной информации.
Функция
model_selection.GridSearchCV,model_selection.RandomizedSearchCV,model_selection.HalvingGridSearchCVиmodel_selection.HalvingRandomSearchCVтеперь поддерживают Array API совместимые входные данные, когда их базовые estimators делают это. Путем Tim Head и Оливье Гризель #27096Функция
sklearn.metrics.f1_scoreтеперь поддерживает совместимые с Array API входные данные. С помощью Omar Salman #27369Функция
preprocessing.LabelEncoderтеперь поддерживает входные данные, совместимые с Array API. Путём Omar Salman #27381Функция
sklearn.metrics.mean_absolute_errorтеперь поддерживает совместимые с Array API входные данные. С помощью Эдоардо Абати #27736Функция
sklearn.metrics.mean_tweedie_devianceтеперь поддерживает входные данные, совместимые с Array API. Путём Thomas Li #28106Функция
sklearn.metrics.pairwise.cosine_similarityтеперь поддерживает входные данные, совместимые с Array API. Путём Эдоардо Абати #29014Функция
sklearn.metrics.pairwise.paired_cosine_distancesтеперь поддерживает входные данные, совместимые с Array API. С помощью Эдоардо Абати #29112Функция
sklearn.metrics.cluster.entropyтеперь поддерживает совместимые с Array API входные данные. С помощью Ярослав Коробко #29141Функция
sklearn.metrics.mean_squared_errorтеперь поддерживает совместимые с Array API входные данные. С помощью Ярослав Коробко #29142Функция
sklearn.metrics.pairwise.additive_chi2_kernelтеперь поддерживает входные данные, совместимые с Array API. Путём Ярослав Коробко #29144Функция
sklearn.metrics.d2_tweedie_scoreтеперь поддерживает совместимые с Array API входные данные. С помощью Emily Chen #29207Функция
sklearn.metrics.max_errorтеперь поддерживает входные данные, совместимые с Array API. Путём Эдоардо Абати #29212Функция
sklearn.metrics.mean_poisson_devianceтеперь поддерживает входные данные, совместимые с Array API. Путём Emily Chen #29227Функция
sklearn.metrics.mean_gamma_devianceтеперь поддерживает совместимые с Array API входные данные. С помощью Emily Chen #29239Функция
sklearn.metrics.pairwise.cosine_distancesтеперь поддерживает входные данные, совместимые с Array API. Путём Emily Chen #29265Функция
sklearn.metrics.pairwise.chi2_kernelтеперь поддерживает входные данные, совместимые с Array API. Путём Ярослав Коробко #29267Функция
sklearn.metrics.mean_absolute_percentage_errorтеперь поддерживает входные данные, совместимые с Array API. Путём Emily Chen #29300Функция
sklearn.metrics.pairwise.paired_euclidean_distancesтеперь поддерживает совместимые с Array API входные данные. С помощью Emily Chen #29389Функция
sklearn.metrics.pairwise.euclidean_distancesиsklearn.metrics.pairwise.rbf_kernelтеперь поддерживает совместимые с Array API входные данные. Omar Salman #29433Функция
sklearn.metrics.pairwise.linear_kernel,sklearn.metrics.pairwise.sigmoid_kernel, иsklearn.metrics.pairwise.polynomial_kernelтеперь поддерживают совместимые с Array API входные данные. С помощью Omar Salman #29475Функция
sklearn.metrics.mean_squared_log_errorиsklearn.metrics.root_mean_squared_log_errorтеперь поддерживает входные данные, совместимые с Array API. С помощью Вирджил Чан #29709Функция
preprocessing.MinMaxScalerсclip=Trueтеперь поддерживает входные данные, совместимые с Array API. Путём Shreekant Nandiyawar #29751Поддержка для скоро устаревающего
cupy.array_apiмодуль был удален в пользу прямой поддержки на верхнем уровнеcupyмодуль, возможно, черезarray_api_compat.cupyобертка для совместимости. Путем Оливье Гризель #29639
при использовании парсера pandas. Параметр#
См. Руководство по маршрутизации метаданных для более подробной информации.
Функция
semi_supervised.SelfTrainingClassifierтеперь поддерживает маршрутизацию метаданных. Метод fit теперь принимает**fit_paramsкоторые передаются базовым оценщикам через ихfitметоды. Кроме того,predict,predict_proba,predict_log_proba,scoreиdecision_functionметоды также принимают**paramsкоторые передаются в базовые оценщики через их соответствующие методы. Путем Adam Li #28494Функция
ensemble.StackingClassifierиensemble.StackingRegressorтеперь поддерживают маршрутизацию метаданных и передают**fit_paramsк базовым оценщикам через ихfitметоды. С помощью Stefanie Senger #28701Функция
model_selection.learning_curveтеперь поддерживает маршрутизацию метаданных дляfitметод его оценщика и для его базового разделителя CV и оценщика. Путем Stefanie Senger #28975Функция
compose.TransformedTargetRegressorтеперь поддерживает маршрутизацию метаданных в своемfitиpredictметоды и направляет соответствующие параметры к базовому регрессору. С помощью Omar Salman #29136Функция
feature_selection.SequentialFeatureSelectorтеперь поддерживает маршрутизацию метаданных в своемfitметод и передает соответствующие параметры вmodel_selection.cross_val_scoreфункции. С помощью Omar Salman #29260Функция
model_selection.permutation_test_scoreтеперь поддерживает маршрутизацию метаданных дляfitметод его оценщика и для его базового разделителя CV и оценщика. Путем Adam Li #29266Функция
feature_selection.RFEиfeature_selection.RFECVтеперь поддерживают маршрутизацию метаданных. С помощью Omar Salman #29312Функция
model_selection.validation_curveтеперь поддерживает маршрутизацию метаданных дляfitметод его оценщика и для его базового разделителя CV и оценщика. Путем Stefanie Senger #29329Исправление Метаданные корректно маршрутизируются к групповым разделителям кросс-валидации через
linear_model.RidgeCVиlinear_model.RidgeClassifierCVиUnsetMetadataPassedErrorфиксирован дляlinear_model.RidgeClassifierCVсо стандартной оценкой. По Stefanie Senger #29634Исправление Многие аргументы методов, которые не должны включаться в механизм маршрутизации, теперь исключены, и
set_{method}_requestметоды для них не генерируются. Автор Адрин Джалали #29920
Отказ от официальной поддержки PyPy#
Из-за ограниченных ресурсов сопровождающих и небольшого числа пользователей официальная поддержка PyPy была прекращена. Некоторые части scikit-learn могут по-прежнему работать, но PyPy больше не тестируется в непрерывной интеграции scikit-learn. По Loïc Estève #29128
Прекращение поддержки сборки с помощью setuptools#
Начиная с scikit-learn 1.6, поддержка сборки с setuptools была удалена. Meson — единственный поддерживаемый способ сборки scikit-learn. По Loïc Estève #29400
Поддержка свободнопоточного CPython 3.13#
scikit-learn имеет предварительную поддержку свободнопоточного CPython, в частности, свободнопоточные сборки доступны для всех поддерживаемых платформ.
Free-threaded (также известный как nogil) CPython 3.13 — это экспериментальная версия CPython 3.13, которая направлена на обеспечение эффективных многопоточных сценариев использования путем удаления Global Interpreter Lock (GIL).
Для получения дополнительной информации о свободнопоточном CPython см. документация py-free-threading, в частности как установить свободнопоточный CPython и Отслеживание совместимости экосистемы.
Не стесняйтесь попробовать свободнопоточность на вашем случае использования и сообщить о любых проблемах!
По Loïc Estève и многие другие люди в более широкой экосистеме Scientific Python и CPython, например Nathan Goldbaum, Ralf Gommers, Эдгар Андрес Маргффой Туай. #30360
sklearn.base#
Улучшение Добавлена функция
base.is_clustererкоторый определяет, относится ли данный оценщик к категории кластеризаторов. Автор: Christian Veenhuis #28936Изменение API Передача объекта класса в
is_classifier,is_regressor, иis_outlier_detectorтеперь устарел. Передавайте экземпляр вместо этого. По Адрин Джалали #30122
sklearn.calibration#
Изменение API
cv="prefit"устарел дляCalibratedClassifierCV. ИспользуйтеFrozenEstimatorвместо, какCalibratedClassifierCV(FrozenEstimator(estimator)). Путем Адрин Джалали #30171
sklearn.cluster#
Изменение API The
copyпараметрcluster.Birchбыл устаревшим в 1.6 и будет удален в 1.8. Он не имеет эффекта, так как оценщик не выполняет операции на месте на входных данных. По Yao Xiao #29124
sklearn.compose#
Улучшение
sklearn.compose.ColumnTransformerverbose_feature_names_outтеперь принимает строковый формат или вызываемый объект для генерации имен признаков. По Marc Bresson #28934
sklearn.covariance#
Эффективность
covariance.MinCovDetподгонка теперь немного быстрее. От Antony Lee #29835
sklearn.cross_decomposition#
Исправление
cross_decomposition.PLSRegressionкорректно вызывает ошибку, когдаn_componentsбольше, чемn_samples. Путем Томас Фан #29710
sklearn.datasets#
Функция
datasets.fetch_fileпозволяет загружать произвольные файлы данных из интернета. Он обрабатывает локальное кэширование, проверки целостности с помощью хешей SHA256 и автоматические повторные попытки в случае HTTP-ошибок. Оливье Гризель #29354
sklearn.decomposition#
Улучшение
LatentDirichletAllocationтеперь имеетnormalizeпараметр вtransformиfit_transformметоды управления нормализацией распределения тем документа. По Адрин Джалали #30097Исправление
IncrementalPCAтеперь будет вызывать толькоValueErrorкогда количество образцов во входных данных дляpartial_fitменьше количества компонентов при первом вызовеpartial_fit. Последующие вызовыpartial_fitбольше не сталкиваются с этим ограничением. Благодаря Томас Гесси-Джонс #30224
sklearn.discriminant_analysis#
Исправление
discriminant_analysis.QuadraticDiscriminantAnalysisтеперь вызоветLinAlgWarningв случае коллинеарных переменных. Эти ошибки могут быть подавлены с помощьюreg_paramатрибут. По Alihan Zihna #19731
sklearn.ensemble#
Функция
ensemble.ExtraTreesClassifierиensemble.ExtraTreesRegressorтеперь поддерживает пропущенные значения в матрице данныхX. Пропущенные значения обрабатываются путём случайного перемещения всех образцов в левый или правый дочерний узел при обходе дерева. С помощью Adam Li #28268Эффективность Небольшое улучшение времени выполнения при обучении
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorпутем распараллеливания начального поиска пороговых значений бинов. По Christian Lorentzen #28064Эффективность
ensemble.IsolationForestтеперь запускает параллельные задачи во время predict обеспечивая ускорение до 2-4 раз на размерах выборки более 2000 с использованиемjoblib. Путем Adam Li и Сержиу Перейра #28622Улучшение Уровень детализации
ensemble.HistGradientBoostingClassifierиensemble.HistGradientBoostingRegressorполучили более детальный контроль. Теперь,verbose = 1выводит только сводные сообщения,verbose >= 2выводит полную информацию, как и раньше. По Christian Lorentzen #28179Изменение API Параметр
algorithmofensemble.AdaBoostClassifierустарел и будет удален в версии 1.8. К Жереми дю Буаберранже #29997
sklearn.feature_extraction#
Исправление
feature_extraction.text.TfidfVectorizerтеперь корректно сохраняетdtypeofidf_на основе входных данных. По Guillaume Lemaitre #30022
sklearn.frozen#
Основная функция
FrozenEstimatorтеперь введена возможность заморозки оценщика. Это означает вызов.fitна него не оказывает эффекта, и выполнениеclone(frozenestimator)возвращает тот же оценщик вместо неподготовленного клона. #29705 По Адрин Джалали #29705
sklearn.impute#
Исправление
impute.KNNImputerисключает образцы с расстояниями nan при вычислении среднего значения для равномерных весов. По Xuefeng Xu #29135Исправление Когда
min_valueиmax_valueявляются array-подобными, и некоторые признаки удаляются из-заkeep_empty_features=False,impute.IterativeImputerбольше не вызывает ошибку и теперь корректно индексирует. Автор Guntitat Sawadwuthikul #29451Исправление Исправлено
impute.IterativeImputerчтобы убедиться, что он не пропускает итеративный процесс, когдаkeep_empty_featuresустановлено вTrue. Путем Arif Qodari #29779Изменение API Добавить предупреждение в
impute.SimpleImputerкогдаkeep_empty_feature=Falseиstrategy="constant". В этом случае пустые признаки не удаляются, и это поведение изменится в 1.8. По Arthur Courselle и Simon Riou #29950
sklearn.linear_model#
Улучшение The
solver="newton-cholesky"вlinear_model.LogisticRegressionиlinear_model.LogisticRegressionCVрасширен для поддержки полной мультиномиальной потери в многоклассовой настройке. Путем Christian Lorentzen #28840Исправление В
linear_model.Ridgeиlinear_model.RidgeCV, послеfit,coef_атрибут теперь имеет форму(n_samples,)как другие линейные модели. Путем Maxwell Liu, Guillaume Lemaitre, и Адрин Джалали #19746Исправление
linear_model.LogisticRegressionCVисправляет обработку весов выборок для расчета тестовых оценок. По Шрути Нат #29419Исправление
linear_model.LassoCVиlinear_model.ElasticNetCVтеперь учитывает веса образцов для определения сетки поиска внутренне настраиваемыхalphaгиперпараметр. По John Hopfensperger и Шрути Нат #29442Исправление
linear_model.LogisticRegression,linear_model.PoissonRegressor,linear_model.GammaRegressor,linear_model.TweedieRegressorтеперь учитывают веса выборок при принятии решения о переходе кsolver='lbfgs'всякий раз, когдаsolver='newton-cholesky'становится численно неустойчивым. По Antoine Baker #29818Исправление
linear_model.RidgeCVтеперь правильно использует предсказания в том же масштабе, что и целевая переменная, наблюдаемая во времяfit. Эти предсказания хранятся вcv_results_когдаscoring != None. Ранее предсказания масштабировались на квадратный корень из весов выборки и смещались на среднее целевой переменной, что приводило к некорректной оценке счета. С помощью Guillaume Lemaitre, Жером Докс и Hanmin Qin #29842Исправление
linear_model.RidgeCVтеперь корректно поддерживает пользовательские многомерные скореры, позволяя скореру управлять усреднением многомерного вывода. Ранее предсказания и истинные цели сжимались в одномерный массив перед вычислением ошибки. Теперь Guillaume Lemaitre #29884Исправление
linear_model.LinearRegressionтеперь устанавливаетcondпараметр при вызовеscipy.linalg.lstsqрешатель на плотных входных данных. Это обеспечивает более численно устойчивые результаты на данных с недостаточным рангом. В частности, эмпирически фиксирует ожидаемое свойство эквивалентности между обучением с перевзвешиванием или с повторяющимися точками данных. По Antoine Baker #30040Исправление
linear_model.LogisticRegressionи другие линейные модели, которые принимаютsolver="newton-cholesky"теперь сообщают правильное количество итераций, когда они возвращаются к"lbfgs"solver из-за вырожденной матрицы Гессе. Путем Оливье Гризель #30100Исправление
SGDOneClassSVMтеперь правильно наследует отOutlierMixinи теги правильно установлены. Автор Guillaume Lemaitre #30227Изменение API Устаревает
copy_Xвlinear_model.TheilSenRegressorтак как параметр не имеет эффекта.copy_Xбудет удалена в 1.8. По Adam Li #29105
sklearn.manifold#
Эффективность
manifold.locally_linear_embeddingиmanifold.LocallyLinearEmbeddingтеперь более эффективно распределяет память разреженных матриц в методах Гессиана, Модифицированном и LTSA. Путём Джорджио Анджелотти #28096
sklearn.metrics#
Эффективность
sklearn.metrics.classification_reportтеперь работает быстрее благодаря кэшированию меток классификации. Путем Адрин Джалали #29738Улучшение
metrics.RocCurveDisplay.from_estimator,metrics.RocCurveDisplay.from_predictions,metrics.PrecisionRecallDisplay.from_estimator, иmetrics.PrecisionRecallDisplay.from_predictionsтеперь принимает новый ключевое словоdespineчтобы удалить верхнюю и правую границы графика для большей наглядности. С помощью Yao Xiao #26367Улучшение
sklearn.metrics.check_scoringтеперь принимаетraise_excчтобы указать, следует ли вызывать исключение, если подмножество оценщиков в многометрической оценке не сработает, или возвращать код ошибки. По Stefanie Senger #28992Исправление
metrics.roc_auc_scoreтеперь правильно возвращает np.nan и предупреждает пользователя, если в метках присутствует только один класс. Hleb Levitski и Янез Демшар #27412, #30013Исправление Функции
metrics.mean_squared_log_errorиmetrics.root_mean_squared_log_errorтеперь проверьте, находятся ли входные данные в правильной области определения функции \(y=\log(1+x)\), а не \(y=\log(x)\). Функцииmetrics.mean_absolute_error,metrics.mean_absolute_percentage_error,metrics.mean_squared_errorиmetrics.root_mean_squared_errorтеперь явно проверяет, будет ли возвращен скаляр, когдаmultioutput=uniform_average. Путем Вирджил Чан #29709Изменение API The
assert_all_finiteпараметр функцийmetrics.pairwise.check_pairwise_arraysиmetrics.pairwise_distancesпереименован вensure_all_finite.force_all_finiteбудет удалена в 1.8. По Жереми дю Буаберранже #29404Изменение API
scoring="neg_max_error"следует использовать вместоscoring="max_error"который теперь устарел. По Фарид "Фредди" Таба #29462Изменение API Значение по умолчанию для
response_methodпараметрmetrics.make_scorerизменится сNoneto"predict"иNoneбудет удалён в 1.8. В то же время,Noneэквивалентно"predict". Путем Жереми дю Буаберранже #30001
sklearn.model_selection#
Улучшение
GroupKFoldтеперь имеет возможность перемешивать группы в разные фолды, когдаshuffle=True. Путем Закари Вили #28519Улучшение Нет необходимости вызывать
fitнаFixedThresholdClassifierесли базовый оценщик уже обучен. Путем Адрин Джалали #30172Исправление Улучшить сообщение об ошибке, когда
model_selection.RepeatedStratifiedKFold.splitвызывается безyаргумент По Anurag Varma #29402
sklearn.neighbors#
Улучшение
neighbors.NearestNeighbors,neighbors.KNeighborsClassifier,neighbors.KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor,neighbors.KNeighborsTransformer,neighbors.RadiusNeighborsTransformer, иneighbors.LocalOutlierFactorтеперь работают сmetric="nan_euclidean", поддерживаяnanвходы. По Carlo Lemos, Guillaume Lemaitre, и Адрин Джалали #25330Улучшение Добавить
neighbors.NearestCentroid.decision_function,neighbors.NearestCentroid.predict_probaиneighbors.NearestCentroid.predict_log_probaвneighbors.NearestCentroidкласса оценщика. Поддерживает случай, когдаXявляется разреженным иshrinking_thresholdне являетсяNoneвneighbors.NearestCentroid. Путем Мэтью Нинг #26689Улучшение Сделать
predict,predict_proba, иscoreofneighbors.KNeighborsClassifierиneighbors.RadiusNeighborsClassifierприниматьX=Noneв качестве входных данных. В этом случае возвращаются прогнозы для всех точек обучающего набора, и точки не включаются в своих собственных соседей. По Dmitry Kobak #30047Исправление
neighbors.LocalOutlierFactorвызывает предупреждение вfitметод когда дублирующиеся значения в обучающих данных приводят к неточному обнаружению выбросов. Путем Henrique Caroço #28773
sklearn.neural_network#
Исправление
neural_network.MLPRegressorбольше не падает при расхождении модели и чтоearly_stoppingвключен. С помощью Marc Bresson #29773
sklearn.pipeline#
Основная функция
pipeline.Pipelineтеперь может преобразовывать метаданные до шага, требующего метаданные, которые можно установить с помощьюtransform_inputпараметр. Путем Адрин Джалали #28901Улучшение
pipeline.Pipelineтеперь предупреждает о необходимости обучения перед вызовом методов, требующих обученного конвейера. Это предупреждение станет ошибкой в версии 1.8. Адрин Джалали #29868Исправление Исправлена проблема с тегами и типом оценщика
Pipelineкогда конвейер пуст. Это позволяет корректно отображать HTML-представление пустого конвейера. По Gennaro Daniele Acciaro #30203
sklearn.preprocessing#
Улучшение Добавлен
warnопция дляhandle_unknownпараметр вpreprocessing.OneHotEncoder. Путем Hleb Levitski #28637Улучшение HTML-представление
preprocessing.FunctionTransformerпокажет имя функции в метке. По Yao Xiao #29158Исправление
preprocessing.PowerTransformerтеперь используетscipy.special.inv_boxcoxдля выводаnanесли вход BoxCox обратного преобразования недействителен. По Xuefeng Xu #27875
sklearn.semi_supervised#
Изменение API
semi_supervised.SelfTrainingClassifierустарелbase_estimatorпараметр в пользуestimator. Путем Adam Li #28494
sklearn.tree#
Функция
tree.ExtraTreeClassifierиtree.ExtraTreeRegressorтеперь поддерживает пропущенные значения в матрице данныхX. Пропущенные значения обрабатываются путем случайного перемещения всех выборок в левый или правый дочерний узел при обходе дерева. С помощью Adam Li и Loïc Estève #27966, #30318Исправление Экранировать двойные кавычки для меток и имен признаков при экспорте деревьев в формат Graphviz. По Сантьяго М. Мола. #17575
sklearn.utils#
Улучшение
utils.check_arrayтеперь принимаетensure_non_negativeдля проверки на отрицательные значения в переданном массиве, ранее доступной только через вызовutils.check_non_negative. Путем Tamara Atanasoska #29540Улучшение
check_estimatorиparametrize_with_checksтеперь проверьте и выдайте ошибку, если классификатор имеетtags.classifier_tags.multi_class = Falseтег, но не завершается ошибкой на многоклассовых данных. По Адрин Джалали #29874Улучшение
utils.validation.check_is_fittedтеперь передает безсостоятельные оценщики. Оценщик может указать, что он безсостоятельный, установивrequires_fitтег. См. Теги оценщиков для получения дополнительной информации. По Адрин Джалали #29880Улучшение Изменения в
check_estimatorиparametrize_with_checks.check_estimatorвводит новые аргументы:on_skip,on_fail, иcallbackдля управления поведением проверяющего модуля. Обратитесь к документации API для получения подробностей.generate_only=Trueустарел вcheck_estimator. Используйтеestimator_checks_generatorвместо этого.The
_xfail_checksтег оценщика теперь удален, и теперь, чтобы указать, какие тесты ожидаются к провалу, вы можете передать словарь вcheck_estimatorкакexpected_failed_checksпараметр. Аналогично,expected_failed_checksпараметр вparametrize_with_checksможет быть использован, что является вызываемым объектом, возвращающим словарь вида:{ "check_name": "reason to mark this check as xfail", }
Исправление
utils.estimator_checks.parametrize_with_checksиutils.estimator_checks.check_estimatorтеперь поддерживают оценщики, которые имеютset_outputвызывается на них. По Адрин Джалали #29869Изменение API The
assert_all_finiteпараметр функцийutils.check_array,utils.check_X_y,utils.as_float_arrayпереименован вensure_all_finite.force_all_finiteбудет удалена в 1.8. По Жереми дю Буаберранже #29404Изменение API
utils.estimator_checks.check_sample_weights_invarianceзаменено наutils.estimator_checks.check_sample_weight_equivalence_on_dense_dataкоторый использует целочисленные (включая нулевые) веса иutils.estimator_checks.check_sample_weight_equivalence_on_sparse_dataкоторый делает то же самое на разреженных данных. С помощью Antoine Baker #29818, #30137Изменение API Используя
_estimator_typeдля установки типа оценщика устарела. Наследуйте отClassifierMixin,RegressorMixin,TransformerMixin, илиOutlierMixinвместо этого. Альтернативно, вы можете установитьestimator_typeвTagsв__sklearn_tags__метод. Путем Адрин Джалали #30122
Участники кода и документации
Благодарим всех, кто внес вклад в поддержку и улучшение проекта с версии 1.5, включая:
Aaron Schumacher, Abdulaziz Aloqeely, abhi-jha, Acciaro Gennaro Daniele, Adam J. Stewart, Adam Li, Adeel Hassan, Adeyemi Biola, Aditi Juneja, Adrin Jalali, Aisha, Akanksha Mhadolkar, Akihiro Kuno, Alberto Torres, alexqiao, Alihan Zihna, Aniruddha Saha, antoinebaker, Antony Lee, Anurag Varma, Arif Qodari, Arthur Courselle, ArthurDbrn, Arturo Amor, Aswathavicky, Audrey Flanders, aurelienmorgan, Austin, awwwyan, AyGeeEm, a.zy.lee, baggiponte, BlazeStorm001, bme-git, Boney Patel, brdav, Brigitta Sipőcz, Cailean Carter, Camille Troillard, Carlo Lemos, Christian Lorentzen, Christian Veenhuis, Christine P. Chai, claudio, Conrad Stevens, datarollhexasphericon, Davide Chicco, David Matthew Cherney, Dea María Léon, Deepak Saldanha, Deepyaman Datta, dependabot[bot], dinga92, Dmitry Kobak, Domenico, Drew Craeton, dymil, Edoardo Abati, EmilyXinyi, Eric Larson, Evelyn, fabianhenning, Farid “Freddie” Taba, Gael Varoquaux, Giorgio Angelotti, Hleb Levitski, Guillaume Lemaitre, Guntitat Sawadwuthikul, Haesun Park, Hanjun Kim, Henrique Caroço, hhchen1105, Hugo Boulenger, Ilya Komarov, Inessa Pawson, Ivan Pan, Ivan Wiryadi, Jaimin Chauhan, Jakob Bull, James Lamb, Janez Demšar, Jérémie du Boisberranger, Jérôme Dockès, Jirair Aroyan, João Morais, Joe Cainey, Joel Nothman, John Enblom, JorgeCardenas, Joseph Barbier, jpienaar-tuks, Julian Chan, K.Bharat Reddy, Kevin Doshi, Lars, Loic Esteve, Lucas Colley, Lucy Liu, lunovian, Marc Bresson, Marco Edward Gorelli, Marco Maggi, Marco Wolsza, Maren Westermann, MarieS-WiMLDS, Martin Helm, Mathew Shen, mathurinm, Matthew Feickert, Maxwell Liu, Meekail Zain, Michael Dawson, Miguel Cárdenas, m-maggi, mrastgoo, Natalia Mokeeva, Nathan Goldbaum, Nathan Orgera, nbrown-ScottLogic, Nikita Chistyakov, Nithish Bolleddula, Noam Keidar, NoPenguinsLand, Norbert Preining, notPlancha, Olivier Grisel, Omar Salman, ParsifalXu, Piotr, Priyank Shroff, Priyansh Gupta, Quentin Barthélemy, Rachit23110261, Rahil Parikh, raisadz, Rajath, renaissance0ne, Reshama Shaikh, Roberto Rosati, Robert Pollak, rwelsch427, Santiago Castro, Santiago M. Mola, scikit-learn-bot, sean moiselle, SHREEKANT VITTHAL NANDIYAWAR, Shruti Nath, Søren Bredlund Caspersen, Stefanie Senger, Stefano Gaspari, Steffen Schneider, Štěpán Sršeň, Sylvain Combettes, Tamara, Thomas, Thomas Gessey-Jones, Thomas J. Fan, Thomas Li, ThorbenMaa, Tialo, Tim Head, Tuhin Sharma, Tushar Parimi, Umberto Fasci, UV, vedpawar2254, Velislav Babatchev, Victoria Shevchenko, viktor765, Vince Carey, Virgil Chan, Wang Jiayi, Xiao Yuan, Xuefeng Xu, Yao Xiao, yareyaredesuyo, Zachary Vealey, Ziad Amerr