Версия 1.8#
Для краткого описания основных особенностей выпуска, пожалуйста, обратитесь к Основные нововведения в scikit-learn 1.8.
Легенда для списков изменений
Основная функция что-то большое, что вы не могли сделать раньше.
Функция что-то, что вы не могли делать раньше.
Эффективность существующий признак теперь может не требовать столько вычислений или памяти.
Улучшение различные мелкие улучшения.
Исправление то, что ранее не работало, как задокументировано – или согласно разумным ожиданиям – теперь должно работать.
Изменение API вам потребуется изменить свой код, чтобы добиться того же эффекта в будущем; или функция будет удалена в будущем.
Версия 1.8.0#
Декабрь 2025
Изменения, затрагивающие многие модули#
Поддержка Array API#
Дополнительные оценщики и функции были обновлены для включения поддержки всех Array API соответствующие входные данные.
См. Поддержка Array API (экспериментальная) для получения дополнительной информации.
Функция
sklearn.preprocessing.StandardScalerтеперь поддерживает входные данные, совместимые с Array API. С помощью Alexander Fabisch, Эдоардо Абати, Оливье Гризель и Чарльз Хилл. #27113Функция
linear_model.RidgeCV,linear_model.RidgeClassifierиlinear_model.RidgeClassifierCVтеперь поддерживают совместимые с array API входные данные сsolver="svd". Путем Жером Докес. #27961Функция
metrics.pairwise.pairwise_kernelsдля любого ядра, кроме "лапласианского" иmetrics.pairwise_distancesдля метрик "cosine", "euclidean" и "l2" теперь поддерживает входные данные API массивов. Благодаря Emily Chen и Lucy Liu #29822Функция
sklearn.metrics.confusion_matrixтеперь поддерживает входные данные, совместимые с Array API. Путём Stefanie Senger #30562Функция
sklearn.mixture.GaussianMixtureсinit_params="random"илиinit_params="random_from_data"иwarm_start=Falseтеперь поддерживает входные данные, совместимые с Array API. Путём Stefanie Senger и Loïc Estève #30777Функция
sklearn.metrics.roc_curveтеперь поддерживает входные данные, совместимые с Array API. Путём Thomas Li #30878Функция
preprocessing.PolynomialFeaturesтеперь поддерживает входные данные, совместимые с API массивов. По Omar Salman #31580Функция
calibration.CalibratedClassifierCVтеперь поддерживает совместимые с Array API входные данные сmethod="temperature"и когда базовыйestimatorтакже поддерживает Array API. С помощью Omar Salman #32246Функция
sklearn.metrics.precision_recall_curveтеперь поддерживает входные данные, совместимые с array API. Путем Lucy Liu #32249Функция
sklearn.model_selection.cross_val_predictтеперь поддерживает входные данные, совместимые с API массивов. По Omar Salman #32270Функция
sklearn.metrics.brier_score_loss,sklearn.metrics.log_loss,sklearn.metrics.d2_brier_scoreиsklearn.metrics.d2_log_loss_scoreтеперь поддерживают совместимые с Array API входные данные. Путем Omar Salman #32422Функция
naive_bayes.GaussianNBтеперь поддерживает входные данные, совместимые с API массивов. По Omar Salman #32497Функция
preprocessing.LabelBinarizerиpreprocessing.label_binarizeтеперь поддерживает совместимые с числовым array API входные данные сsparse_output=False. Путем Вирджил Чан. #32582Функция
sklearn.metrics.det_curveтеперь поддерживает входные данные, совместимые с Array API. С помощью Йозеф Аффуртит. #32586Функция
sklearn.metrics.pairwise.manhattan_distancesтеперь поддерживает входные данные, совместимые с API массивов. По Omar Salman. #32597Функция
sklearn.metrics.calinski_harabasz_scoreтеперь поддерживает входные данные, совместимые с Array API. С помощью Йозеф Аффуртит. #32600Функция
sklearn.metrics.balanced_accuracy_scoreтеперь поддерживает входные данные, совместимые с API массивов. По Omar Salman. #32604Функция
sklearn.metrics.pairwise.laplacian_kernelтеперь поддерживает входные данные, совместимые с API массивов. По Zubair Shakoor. #32613Функция
sklearn.metrics.cohen_kappa_scoreтеперь поддерживает входные данные, совместимые с API массивов. По Omar Salman. теперь поддерживает пользовательские стратегии путем передачи функции вместо имени стратегии.Функция
sklearn.metrics.cluster.davies_bouldin_scoreтеперь поддерживает входные данные, совместимые с Array API. С помощью Йозеф Аффуртит. #32693Исправление Оценщики с поддержкой array API больше не отклоняют входные данные dataframe, когда включена поддержка array API. По Tim Head #32838
при использовании парсера pandas. Параметр#
См. Руководство по маршрутизации метаданных для более подробной информации.
Исправление Исправлена проблема, когда передача
sample_weightвPipelineвнутриGridSearchCVвыдаст ошибку при включенной маршрутизации метаданных. Путем Адрин Джалали. #31898
Поддержка свободнопоточного CPython 3.14#
scikit-learn поддерживает свободнопоточный CPython, в частности свободнопоточные сборки доступны для всех поддерживаемых платформ на Python 3.14.
Свободнопоточный (также известный как nogil) CPython — это версия CPython, которая направлена на обеспечение эффективных многопоточных сценариев использования путем удаления глобальной блокировки интерпретатора (GIL).
Если вы хотите попробовать свободнопоточный Python, рекомендуется использовать Python 3.14, в котором исправлен ряд проблем по сравнению с Python 3.13. Не стесняйтесь пробовать свободнопоточную версию на вашем случае использования и сообщать о любых проблемах!
Для получения дополнительной информации о свободнопоточном CPython см. документация py-free-threading, в частности как установить свободнопоточный CPython и Отслеживание совместимости экосистемы.
По Loïc Estève и Оливье Гризель и многие другие люди в более широкой экосистеме Scientific Python и CPython, например Nathan Goldbaum, Ralf Gommers, Эдгар Андрес Маргффой Туай. #32079
sklearn.base#
Функция Рефакторинг
dirвBaseEstimatorдля распознавания проверки условия вavailable_if. Путем Джон Хендрикс и Miguel Parece. #31928Исправление Исправлена обработка пропущенных значений pandas в HTML-отображении всех оценивателей. От Dea María Léon. #32341
sklearn.calibration#
Функция Добавлен метод масштабирования температуры в
calibration.CalibratedClassifierCV. Путем Вирджил Чан и Christian Lorentzen. #31068
sklearn.cluster#
Эффективность
cluster.kmeans_plusplusтеперь используетnp.cumsumнапрямую без дополнительных проверок численной устойчивости и без приведения кnp.float64. Путем Тициано Зито #31991Исправление Значение по умолчанию для
copyпараметр вcluster.HDBSCANизменится сFalsetoTrueв 1.10, чтобы избежать модификации данных и сохранить согласованность с другими оценщиками. По Sarthak Puri. #31973
sklearn.compose#
Исправление The
compose.ColumnTransformerтеперь корректно обучается на данных, предоставленных в видеpolars.DataFrameкогда любой преобразователь имеет разреженный вывод. При Филипп Гнан. #32188
sklearn.covariance#
Эффективность
sklearn.covariance.GraphicalLasso,sklearn.covariance.GraphicalLassoCVиsklearn.covariance.graphical_lassoсmode="cd"выигрывают от улучшения производительности времени обученияsklearn.linear_model.Lassoс помощью правил безопасного отсечения по разрыву. Christian Lorentzen. #31987Исправление Исправлена неконтролируемая случайность в
sklearn.covariance.GraphicalLasso,sklearn.covariance.GraphicalLassoCVиsklearn.covariance.graphical_lasso. Дляmode="cd", теперь они используют циклический покоординатный спуск. Раньше это был случайный покоординатный спуск с неуправляемым начальным числом для генерации случайных чисел. По Christian Lorentzen. #31987Исправление Добавлена поправка к
covariance.MinCovDetдля корректировки согласованности при нормальном распределении. Это уменьшает смещение, присутствующее при применении этого метода к данным, распределенным нормально. Путем Даниэль Эррера-Эспосито #32117
sklearn.decomposition#
Эффективность
sklearn.decomposition.DictionaryLearningиsklearn.decomposition.MiniBatchDictionaryLearningсfit_algorithm="cd",sklearn.decomposition.SparseCoderсtransform_algorithm="lasso_cd",sklearn.decomposition.MiniBatchSparsePCA,sklearn.decomposition.SparsePCA,sklearn.decomposition.dict_learningиsklearn.decomposition.dict_learning_onlineсmethod="cd",sklearn.decomposition.sparse_encodeсalgorithm="lasso_cd"все выигрывают от улучшения производительности времени обученияsklearn.linear_model.Lassoс помощью gap safe screening rules. С помощью Christian Lorentzen. #31987Улучшение
decomposition.SparseCoderтеперь следует API трансформеров scikit-learn. Кроме того,fitметод теперь проверяет входные данные и параметры. При 2. может быть любым подходящим способом извлечения признаков среди различных. Исправления вИсправление Добавить проверки входных данных в
inverse_transformметодdecomposition.PCAиdecomposition.IncrementalPCA. #29310 by будет изменён с. #29310
sklearn.discriminant_analysis#
Функция Добавлен
solver,covariance_estimatorиshrinkageвdiscriminant_analysis.QuadraticDiscriminantAnalysis. Полученный класс более похож наdiscriminant_analysis.LinearDiscriminantAnalysisи позволяет получить большую гибкость в оценке ковариационных матриц. По Даниэль Эррера-Эспосито. #32108
sklearn.ensemble#
Исправление
ensemble.BaggingClassifier,ensemble.BaggingRegressorиensemble.IsolationForestтеперь используетsample_weightдля выборки образцов вместо их передачи, умноженных на равномерно выбранную маску, к базовым оценщикам. Кроме того, когдаmax_samplesявляется float, теперь интерпретируется как доляsample_weight.sum()вместоX.shape[0]. Новое значение по умолчаниюmax_samples=NoneрисуетX.shape[0]образцов, независимо отsample_weight. Путем Antoine Baker. #31414 и #32825
sklearn.feature_selection#
Улучшение
feature_selection.SelectFromModelтеперь не принуждаетmax_featuresдолжно быть меньше или равно количеству входных признаков. Путём Thibault #31939
sklearn.gaussian_process#
Эффективность make
GaussianProcessRegressor.predictбыстрее, когдаreturn_covиreturn_stdобаFalse. Путем Rafael Ayllón Gavilán. #31431
sklearn.linear_model#
Эффективность
linear_model.ElasticNetиlinear_model.Lassoсprecompute=Falseиспользовать меньше памяти для плотныхXи немного быстрее. Ранее они использовали вдвое больше памяти, чемXдаже для Fortran-непрерывныхX. Путем Christian Lorentzen #31665Эффективность
linear_model.ElasticNetиlinear_model.Lassoизбежать двойной проверки входных данных и поэтому немного быстрее. По Christian Lorentzen. #31848Эффективность
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lasso,linear_model.LassoCV,linear_model.MultiTaskElasticNet,linear_model.MultiTaskElasticNetCV,linear_model.MultiTaskLassoиlinear_model.MultiTaskLassoCVобучаются быстрее, избегая вызова BLAS уровня 1 (axpy) во внутреннем цикле. То же самое для функцийlinear_model.enet_pathиlinear_model.lasso_path. Путем Christian Lorentzen #31956 и #31880Эффективность
linear_model.ElasticNetCV,linear_model.LassoCV,linear_model.MultiTaskElasticNetCVиlinear_model.MultiTaskLassoCVизбежать дополнительной копииXсо значением по умолчаниюcopy_X=True. Путем Christian Lorentzen. #31946Эффективность
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lasso,linear_model.LassoCV,linear_model.MultiTaskElasticNet,linear_model.MultiTaskElasticNetCVlinear_model.MultiTaskLasso,linear_model.MultiTaskLassoCVа такжеlinear_model.lasso_pathиlinear_model.enet_pathтеперь реализуют правила безопасного отсечения зазора в решателе координатного спуска для плотных и разреженныхX. Ускорение времени обучения особенно заметно (возможно в 10 раз) при вычислении путей регуляризации, как это делают *CV-варианты вышеуказанных оценщиков. Теперь есть дополнительная проверка критерия остановки перед входом в основной цикл шагов спуска. Поскольку критерий остановки требует вычисления двойственного разрыва, отсечение происходит всякий раз, когда вычисляется двойственный разрыв. Автор Christian Lorentzen #31882, #31986, #31987 и #32014Улучшение
linear_model.ElasticNet,linear_model.ElasticNetCV,linear_model.Lasso,linear_model.LassoCV,MultiTaskElasticNet,MultiTaskElasticNetCV,MultiTaskLasso,MultiTaskLassoCV, а такжеlinear_model.enet_pathиlinear_model.lasso_pathтеперь используетdual gap <= tolвместоdual gap < tolкак критерий остановки. Полученные коэффициенты могут отличаться от предыдущих версий scikit-learn в редких случаях. По Christian Lorentzen. #31906Исправление Исправлены критерии сходимости для моделей SGD, чтобы избежать преждевременной сходимости, когда
tol != None. Это в первую очередь влияет наSGDOneClassSVMно также влияет наSGDClassifierиSGDRegressor. До этого исправления только функция потерь без штрафа использовалась для проверки сходимости, тогда как теперь используется полная целевая функция с регуляризацией. Guillaume Lemaitre и kostayScr #31856Исправление Допустимый диапазон параметров для начальной скорости обучения
eta0вlinear_model.SGDClassifier,linear_model.SGDOneClassSVM,linear_model.SGDRegressorиlinear_model.Perceptronизменено с неотрицательных чисел на строго положительные числа. Как следствие, значение по умолчаниюeta0oflinear_model.SGDClassifierиlinear_model.SGDOneClassSVMизменилось с 0 на 0.01. Но обратите внимание, чтоeta0не используется по умолчанию для скорости обучения "optimal" этих двух оценщиков. Путем Christian Lorentzen. #31933Исправление
linear_model.LogisticRegressionCVспособен обрабатывать разбиения перекрёстной проверки, где некоторые метки классов отсутствуют в некоторых фолдах. Раньше он вызывал ошибку, когда метка класса отсутствовала в фолде. Благодаря Christian Lorentzen. #32747Изменение API
linear_model.PassiveAggressiveClassifierиlinear_model.PassiveAggressiveRegressorare deprecated and will be removed in 1.10. Equivalent estimators are available withlinear_model.SGDClassifierиSGDRegressor, оба из которых предоставляют опцииlearning_rate="pa1"и"pa2". Параметрeta0можно использовать для указания параметра агрессивности алгоритмов Passive-Aggressive, называемого C в исходной статье. Путём Christian Lorentzen #31932 и #29097Изменение API
linear_model.SGDClassifier,linear_model.SGDRegressor, иlinear_model.SGDOneClassSVMтеперь устаревает для отрицательных значенийpower_tпараметр. Использование отрицательного значения вызовет предупреждение в версии 1.8 и ошибку в версии 1.10. Вместо этого необходимо использовать значение в диапазоне [0.0, inf). По Ритви Алагусанкар #31474Изменение API Вызов ошибки в
sklearn.linear_model.LogisticRegressionкогда используется решатель liblinear и входные значения X больше 1e30, решатель liblinear иначе зависает. Путем Шрути Нат. #31888Изменение API
linear_model.LogisticRegressionCVполучил новый параметрuse_legacy_attributesдля управления типами и формами подогнанных атрибутовC_,l1_ratio_,coefs_paths_,scores_иn_iter_. Текущее значение по умолчаниюTrueсохраняет устаревшее поведение. ЕслиFalseтогда:C_является числом с плавающей точкой.l1_ratio_является числом с плавающей точкой.coefs_paths_является ndarray формы (n_folds, n_l1_ratios, n_cs, n_classes, n_features). Для бинарных задач (n_classes=2), предпоследнее измерение равно 1.scores_является ndarray формы (n_folds, n_l1_ratios, n_cs).n_iter_является ndarray формы (n_folds, n_l1_ratios, n_cs).
В версии 1.10 значение по умолчанию изменится на
Falseиuse_legacy_attributesбудет устаревать. В 1.12use_legacy_attributesбудет удален. По Christian Lorentzen. #32114Изменение API Параметр
penaltyoflinear_model.LogisticRegressionиlinear_model.LogisticRegressionCVустарел и будет удален в версии 1.10. Эквивалентное поведение можно получить следующим образом:для
linear_model.LogisticRegressionиспользовать
l1_ratio=0вместоpenalty="l2"использовать
l1_ratio=1вместоpenalty="l1"использовать
0вместоpenalty="elasticnet"использовать
C=np.infвместоpenalty=None
для
linear_model.LogisticRegressionCVиспользовать
l1_ratios=(0,)вместоpenalty="l2"использовать
l1_ratios=(1,)вместоpenalty="l1"эквивалент
penalty=Noneсостоит в том, чтобы иметьnp.infкак элементCsпараметр
Для
linear_model.LogisticRegression, значение по умолчаниюl1_ratioизменился сNoneto0.0. Установкаl1_ratio=Noneустарел и будет вызывать ошибку в версии 1.10Для
linear_model.LogisticRegressionCV, значение по умолчаниюl1_ratiosизменился сNoneto"warn". Он будет изменён на(0,)в версии 1.10. Установкаl1_ratios=Noneустарел и будет вызывать ошибку в версии 1.10.Изменение API The
n_jobsпараметрlinear_model.LogisticRegressionустарел и будет удалён в версии 1.10. Он не оказывает эффекта с версии 1.8. По Loïc Estève. #32742
sklearn.manifold#
Основная функция
manifold.ClassicalMDSбыл реализован для выполнения классического MDS (разложение по собственным значениям дважды центрированной матрицы расстояний). По Dmitry Kobak и Meekail Zain #31322Функция
manifold.MDSтеперь поддерживает произвольные метрики расстояния (черезmetricиmetric_paramsпараметры) и инициализация через классический MDS (черезinitпараметр).dissimilarityпараметр был устаревшим. Старыйmetricпараметр был переименован вmetric_mds. Путем Dmitry Kobak #32229Функция
manifold.TSNEтеперь поддерживает инициализацию PCA с разреженными входными матрицами. С помощью Arturo Amor. #32433
sklearn.metrics#
Функция
metrics.d2_brier_scoreбыл добавлен, который вычисляет D^2 для оценки Брайера. С помощью Omar Salman. #28971Функция Добавить
metrics.confusion_matrix_at_thresholdsфункция, возвращающая количество истинно отрицательных, ложноположительных, ложноотрицательных и истинно положительных случаев на порог. По Success Moses. #30134Эффективность Избегать избыточной проверки входных данных в
metrics.d2_log_loss_scoreприводя к ускорению в 1,2 раза в крупномасштабных тестах. С помощью Оливье Гризель и Omar Salman #32356Улучшение
metrics.median_absolute_errorтеперь поддерживает входные данные, совместимые с Array API. Путём Lucy Liu. #31406Улучшение Улучшено сообщение об ошибке для разреженных входов для следующих метрик:
metrics.accuracy_score,metrics.multilabel_confusion_matrix,metrics.jaccard_score,metrics.zero_one_loss,metrics.f1_score,metrics.fbeta_score,metrics.precision_recall_fscore_support,metrics.class_likelihood_ratios,metrics.precision_score,metrics.recall_score,metrics.classification_report,metrics.hamming_loss. Путем Lucy Liu. #32047Исправление
metrics.median_absolute_errorтеперь использует_averaged_weighted_percentileвместо_weighted_percentileдля вычисления медианы, когдаsample_weightне являетсяNone. Это эквивалентно использованию "averaged_inverted_cdf" вместо "inverted_cdf" метода квантилей, что даёт результаты, эквивалентныеnumpy.medianесли используются равные веса. По Lucy Liu #30787Исправление Дополнительные
sample_weightпроверка была добавлена вmetrics.accuracy_score,metrics.balanced_accuracy_score,metrics.brier_score_loss,metrics.class_likelihood_ratios,metrics.classification_report,metrics.cohen_kappa_score,metrics.confusion_matrix,metrics.f1_score,metrics.fbeta_score,metrics.hamming_loss,metrics.jaccard_score,metrics.matthews_corrcoef,metrics.multilabel_confusion_matrix,metrics.precision_recall_fscore_support,metrics.precision_score,metrics.recall_scoreиmetrics.zero_one_loss.sample_weightможет быть только 1D, согласованно сy_trueиy_predпо длине, и все значения должны быть конечными и не комплексными. По Lucy Liu. #31701Исправление
y_predустарел в пользуy_scoreвmetrics.DetCurveDisplay.from_predictionsиmetrics.PrecisionRecallDisplay.from_predictions.y_predбудет удален в v1.10. Путем Luis #31764Исправление
reprна оценщике, который был создан сpartialscore_funcтеперь корректно работает и используетreprданногоpartialобъект. Адрин Джалали. #31891Исправление kwargs, указанные в
curve_kwargsпараметрmetrics.RocCurveDisplay.from_cv_resultsтеперь перезаписывают только свои соответствующие значения по умолчанию перед передачей вplot. Ранее передача любогоcurve_kwargsперезаписал бы все аргументы по умолчанию. С помощью Lucy Liu. #32313Исправление Зарегистрированные именованные объекты оценщика для
metrics.d2_brier_scoreиmetrics.d2_log_loss_scoreи обновили проверку входных данных для согласованности с родственными функциями метрик. Автор Оливье Гризель и Omar Salman #32356Исправление
metrics.RocCurveDisplay.from_cv_resultsтеперь будет выводитьpos_labelкакestimator.classes_[-1], используя оценщик изcv_results, когдаpos_label=None. Ранее ошибка возникала, когдаpos_label=None. Путем Lucy Liu. #32372Исправление Все метрики классификации теперь вызывают
ValueErrorкогда требуются входные массивы (y_pred,y_true,y1,y2,pred_decision, илиy_proba) пусты. Ранее,accuracy_score,class_likelihood_ratios,classification_report,confusion_matrix,hamming_loss,jaccard_score,matthews_corrcoef,multilabel_confusion_matrix, иprecision_recall_fscore_supportне вызывал эту ошибку последовательно. По Stefanie Senger. #32549Изменение API
metrics.cluster.entropyустарел и будет удален в v1.10. С помощью Lucy Liu #31294Изменение API The
estimator_nameparameter устарел в пользуnameвmetrics.PrecisionRecallDisplayи будет удален в версии 1.10. По Lucy Liu. #32310
sklearn.model_selection#
- Улучшение
model_selection.StratifiedShuffleSplitтеперь будет указывать, какие классы имеют слишком мало членов при возникновении
ValueErrorесли какой-либо класс имеет менее 2 элементов. Это полезно для определения того, какие классы вызывают ошибку. По Marc Bresson #32265
- Улучшение
Исправление Исправлено поведение перемешивания в
model_selection.StratifiedGroupKFold. Теперь стратификация между фолдами также сохраняется, когдаshuffle=True. Путем Pau Folch. #32540
sklearn.multiclass#
Исправление Исправление поведения при разрешении ничьих в
multiclass.OneVsRestClassifierдля соответствияnp.argmaxповедение при разрешении ничьих. Путем Лакшми Кришнан. #15504
sklearn.naive_bayes#
Исправление
naive_bayes.GaussianNBсохраняет тип данных обученных атрибутов в соответствии с типом данныхX. Путем Omar Salman #32497
sklearn.preprocessing#
Улучшение
preprocessing.SplineTransformerтеперь может обрабатывать пропущенные значения с параметромhandle_missing. С помощью Stefanie Senger. #28043Улучшение The
preprocessing.PowerTransformerтеперь возвращает предупреждение при обнаружении значений NaN в обратном преобразовании,inverse_transform, обычно вызвано сильно несбалансированными данными. По Roberto Mourao #29307Улучшение
preprocessing.MaxAbsScalerтеперь может обрезать значения вне диапазона в отложенных данных с помощью параметраclip. Путем Hleb Levitski. #31790Исправление Исправлена ошибка в
preprocessing.OneHotEncoderгдеhandle_unknown='warn'некорректно вел себя как'ignore'вместо'infrequent_if_exist'. Путем Nithurshen #32592
sklearn.semi_supervised#
Исправление Пользовательские ядерные результаты теперь нормализуются в
semi_supervised.LabelPropagationтак что все суммы строк равны 1, даже если ядро дает асимметричные или неравномерные суммы строк. По Дэн Шульт. #31924
sklearn.tree#
Эффективность
tree.DecisionTreeRegressorсcriterion="absolute_error"теперь работает намного быстрее: сложность O(n log n) против предыдущей O(n^2), что позволяет масштабироваться до миллионов точек данных, даже сотен миллионов. Arthur Lacote #32100Исправление Сделать
tree.export_textпотокобезопасный. С помощью Оливье Гризель. #30041Исправление
export_graphvizтеперь вызываетValueErrorесли заданные имена признаков не все являются строками. Автор Гилерме Пейшоту #31036Исправление
tree.DecisionTreeRegressorсcriterion="absolute_error"иногда делал неоптимальные разбиения (т.е. разбиения, которые не минимизируют абсолютную ошибку). Теперь это исправлено. Поэтому переобучение деревьев может давать немного другие результаты. Автор Arthur Lacote #32100Исправление Исправлена регрессия в деревья решений где почти постоянные признаки не обрабатывались должным образом. Автор Sercan Turkmen. #32259
Исправление Исправлена логика разделения во время обучения в
tree.DecisionTree*(и, следовательно, вensemble.RandomForest*) для узлов, содержащих почти постоянные значения признаков и пропущенные значения. Ранее деревья обрезались раньше, если находился постоянный признак, даже если можно было выполнить больше разбиений на основе пропущенных значений. С помощью Arthur Lacote #32274Исправление Исправление обработки пропущенных значений в методе
decision_pathдеревьев (tree.DecisionTreeClassifier,tree.DecisionTreeRegressor,tree.ExtraTreeClassifierиtree.ExtraTreeRegressor) По Arthur Lacote. #32280Исправление Исправлено разделение дерева решений с отсутствующими значениями в некоторых признаках. В некоторых случаях последний неотсутствующий образец не разделялся правильно. Автор: Tim Head и Arthur Lacote. #32351
sklearn.utils#
Эффективность Функция
sklearn.utils.extmath.safe_sparse_dotбыл улучшен за счет выделенного Cython-кода для случаяa @ bс разреженными двумернымиaиbи когда требуется плотный вывод, т.е.,dense_output=True. Это улучшает несколько алгоритмов в scikit-learn при работе с разреженными массивами (или матрицами). Путем Christian Lorentzen. #31952Улучшение Таблица параметров в HTML-представлении всех оценщиков scikit-learn и, в более общем смысле, оценщиков, наследующих от
base.BaseEstimatorтеперь отображает описание параметра в виде всплывающей подсказки и имеет ссылку на онлайн-документацию для каждого параметра. Автор Dea María Léon. #31564Улучшение
sklearn.utils._check_sample_weightтеперь выводит более понятное сообщение об ошибке, когда предоставленные веса не являются ни скаляром, ни одномерным массивоподобным объектом того же размера, что и входные данные. Автор: Капил Парех. #31873Улучшение
sklearn.utils.estimator_checks.parametrize_with_checksтеперь позволяет настроить строгий режим для xfailing проверок. Тесты, которые неожиданно проходят, приведут к провалу теста. Поведение по умолчанию не изменено. С помощью Tim Head. #31951Улучшение Исправлено выравнивание символов "?" и "i" и улучшен цветовой стиль HTML-представления оценок. Автор Guillaume Lemaitre. #31969
Исправление Изменяет способ выбора цвета при отображении оценщика в виде HTML-представления. Цвета больше не адаптируются к теме пользователя, а выбираются на основе объявленной цветовой схемы темы (светлая или темная) для VSCode и JupyterLab. Если тема не объявляет цветовую схему, схема выбирается в соответствии с цветом текста по умолчанию на странице, если это не удается, используется медиа-запрос. По Мэтт Дж.. #32330
Изменение API
utils.extmath.stable_cumsumустарел и будет удален в v1.10. Используйтеnp.cumulative_sumс желаемым dtype напрямую вместо. По Тициано Зито. Для примера использования
Участники кода и документации
Благодарим всех, кто внес вклад в поддержку и улучшение проекта с версии 1.7, включая:
$id, 4hm3d, Acciaro Gennaro Daniele, achyuthan.s, Adam J. Stewart, Adriano Leão, Adrien Linares, Adrin Jalali, Aitsaid Azzedine Idir, Alexander Fabisch, Alexandre Abraham, Andrés H. Zapke, Anne Beyer, Anthony Gitter, AnthonyPrudent, antoinebaker, Arpan Mukherjee, Arthur, Arthur Lacote, Arturo Amor, ayoub.agouzoul, Ayrat, Ayush, Ayush Tanwar, Basile Jezequel, Bhavya Patwa, BRYANT MUSI BABILA, Casey Heath, Chems Ben, Christian Lorentzen, Christian Veenhuis, Christine P. Chai, cstec, C. Titus Brown, Daniel Herrera-Esposito, Dan Schult, dbXD320, Dea María Léon, Deepyaman Datta, dependabot[bot], Dhyey Findoriya, Dimitri Papadopoulos Orfanos, Dipak Dhangar, Dmitry Kobak, elenafillo, Elham Babaei, EmilyXinyi, Emily (Xinyi) Chen, Eugen-Bleck, Evgeni Burovski, fabarca, Fabrizio Damicelli, Faizan-Ul Huda, François Goupil, François Paugam, Gaetan, GaetandeCast, Gesa Loof, Gonçalo Guiomar, Gordon Grey, Gowtham Kumar K., Guilherme Peixoto, Guillaume Lemaitre, hakan çanakçı, Harshil Sanghvi, Henri Bonamy, Hleb Levitski, HulusiOzy, hvtruong, Ian Faust, Imad Saddik, Jérémie du Boisberranger, Jérôme Dockès, John Hendricks, Joris Van den Bossche, Josef Affourtit, Josh, jshn9515, Junaid, KALLA GANASEKHAR, Kapil Parekh, Kenneth Enevoldsen, Kian Eliasi, kostayScr, Krishnan Vignesh, kryggird, Kyle S, Lakshmi Krishnan, Leomax, Loic Esteve, Luca Bittarello, Lucas Colley, Lucy Liu, Luigi Giugliano, Luis, Mahdi Abid, Mahi Dhiman, Maitrey Talware, Mamduh Zabidi, Manikandan Gobalakrishnan, Marc Bresson, Marco Edward Gorelli, Marek Pokropiński, Maren Westermann, Marie Sacksick, Marija Vlajic, Matt J., Mayank Raj, Michael Burkhart, Michael Šimáček, Miguel Fernandes, Miro Hrončok, Mohamed DHIFALLAH, Muhammad Waseem, MUHAMMED SINAN D, Natalia Mokeeva, Nicholas Farr, Nicolas Bolle, Nicolas Hug, nithish-74, Nithurshen, Nitin Pratap Singh, NotAceNinja, Olivier Grisel, omahs, Omar Salman, Patrick Walsh, Peter Holzer, pfolch, ph-ll-pp, Prashant Bansal, Quan H. Nguyen, Radovenchyk, Rafael Ayllón Gavilán, Raghvender, Ranjodh Singh, Ravichandranayakar, Remi Gau, Reshama Shaikh, Richard Harris, RishiP2006, Ritvi Alagusankar, Roberto Mourao, Robert Pollak, Roshangoli, roychan, R Sagar Shresti, Sarthak Puri, saskra, scikit-learn-bot, Scott Huberty, Sercan Turkmen, Sergio P, Shashank S, Shaurya Bisht, Shivam, Shruti Nath, SIKAI ZHANG, sisird864, SiyuJin-1, S. M. Mohiuddin Khan Shiam, Somdutta Banerjee, sotagg, Sota Goto, Spencer Bradkin, Stefan, Stefanie Senger, Steffen Rehberg, Steven Hur, Success Moses, Sylvain Combettes, ThibaultDECO, Thomas J. Fan, Thomas Li, Thomas S., Tim Head, Tingwei Zhu, Tiziano Zito, TJ Norred, Username46786, Utsab Dahal, Vasanth K, Veghit, VirenPassi, Virgil Chan, Vivaan Nanavati, Xiao Yuan, xuzhang0327, Yaroslav Halchenko, Yaswanth Kumar, Zijun yi, zodchi94, Zubair Shakoor