Версия 0.24#
Для краткого описания основных особенностей выпуска, пожалуйста, обратитесь к Основные нововведения scikit-learn 0.24.
Легенда для списков изменений
Основная функция что-то большое, что вы не могли сделать раньше.
Функция что-то, что вы не могли делать раньше.
Эффективность существующий признак теперь может не требовать столько вычислений или памяти.
Улучшение различные мелкие улучшения.
Исправление то, что ранее не работало, как задокументировано – или согласно разумным ожиданиям – теперь должно работать.
Изменение API вам потребуется изменить свой код, чтобы добиться того же эффекта в будущем; или функция будет удалена в будущем.
Версия 0.24.2#
Апрель 2021
Журнал изменений#
sklearn.compose#
sklearn.cross_decomposition#
Исправление Исправлена регрессия в
cross_decomposition.CCA. #19646 by Томас Фан.Исправление
cross_decomposition.PLSRegressionвыдаёт предупреждение для постоянных остатков y вместоStopIterationошибка. #19922 by Томас Фан.
sklearn.decomposition#
Исправление Исправлена ошибка в
decomposition.KernelPCA’sinverse_transform. #19732 by Kei Ishikawa.
sklearn.ensemble#
Исправление Исправлена ошибка в
ensemble.HistGradientBoostingRegressorfitсsample_weightпараметр иleast_absolute_deviationфункция потерь. #19407 by Vadim Ushtanit.
sklearn.feature_extraction#
Исправление Исправлена ошибка для поддержки нескольких строк для категории, когда
sparse=Falseвfeature_extraction.DictVectorizer. #19982 by Guillaume Lemaitre.
sklearn.gaussian_process#
Исправление Избегайте явного формирования обратной ковариационной матрицы в
gaussian_process.GaussianProcessRegressorкогда установлен на вывод стандартного отклонения. С определёнными ковариационными матрицами это обратное значение нестабильно для явного вычисления. Вызов решателя Холецкого смягчает эту проблему в вычислениях. #19939 by Ian Halvic.Исправление Избегайте деления на ноль при масштабировании постоянной цели в
gaussian_process.GaussianProcessRegressor. Это было связано с нулевым стандартным отклонением. Теперь такой случай обнаруживается, и стандартное отклонение устанавливается равным 1, избегая деления на ноль и, следовательно, появления значений NaN в нормализованной целевой переменной. #19703 by @sobkevich, Boris Villazón-Terrazas и Александр Фонари.
sklearn.linear_model#
Исправление : Исправлена ошибка в
linear_model.LogisticRegression: объект sample_weight больше не изменяется. #19182 by Yosuke KOBAYASHI.
sklearn.metrics#
Исправление
metrics.top_k_accuracy_scoreтеперь поддерживает многоклассовые задачи, где только два класса появляются вy_trueи все классы указаны вlabels. #19721 by Joris Clement.
sklearn.model_selection#
Исправление
model_selection.RandomizedSearchCVиmodel_selection.GridSearchCVтеперь правильно показывают оценку для одиночных метрик и verbose > 2. #19659 by Томас Фан.Исправление Некоторые значения в
cv_results_атрибутmodel_selection.HalvingRandomSearchCVиmodel_selection.HalvingGridSearchCVне были правильно преобразованы в массивы numpy. #19211 by Nicolas Hug.Исправление The
fitметод последовательного сокращения параметров поиска (model_selection.HalvingGridSearchCV, иmodel_selection.HalvingRandomSearchCV) теперь корректно обрабатываетgroupsпараметр. #19847 by Xiaoyu Chai.
sklearn.multioutput#
Исправление
multioutput.MultiOutputRegressorтеперь работает с оценщиками, которые динамически определяютpredictво время обучения, такие какensemble.StackingRegressor. #19308 by Томас Фан.
sklearn.preprocessing#
Исправление Проверьте параметр конструктора
handle_unknownвpreprocessing.OrdinalEncoderчтобы разрешить только'error'и'use_encoded_value'стратегии. #19234 byGuillaume Lemaitre.Исправление Исправлены категории кодировщика, имеющие dtype=’S’
preprocessing.OneHotEncoderиpreprocessing.OrdinalEncoder. #19727 by Andrew Delong.Исправление
preprocessing.OrdinalEncoder.transformкорректно обрабатывает неизвестные значения для строковых типов данных. get_metadata_routing by Томас Фан.Исправление
preprocessing.OneHotEncoder.fitбольше не изменяетdropпараметр. #19924 by Томас Фан.
sklearn.semi_supervised#
Исправление Избегать NaN при распространении меток в
LabelPropagation. #19271 by Чжаовэй Ван.
sklearn.tree#
Исправление Исправлена ошибка в
fitoftree.BaseDecisionTreeкоторый вызывал ошибки сегментации при определенных условиях.fitтеперь выполняет глубокое копированиеCriterionобъект для предотвращения совместных параллельных доступов. #19580 by Samuel Brice и Alex Adamson и Wil Yegelwel.
sklearn.utils#
Исправление Better содержит CSS, предоставленный
utils.estimator_html_reprпутем присвоения CSS-идентификаторов HTML-представлению. #19417 by Томас Фан.
Версия 0.24.1#
Январь 2021
Упаковка#
Версия 0.24.0 scikit-learn wheels не работала с MacOS <1.15 из-за
libomp. Версия libomp , использованная для сборки колес, была слишком новой для старых версий macOS. Эта проблема была исправлена для колес scikit-learn 0.24.1. Колеса scikit-learn, опубликованные на PyPI.org, теперь официально поддерживают macOS 10.13 и новее.
Журнал изменений#
sklearn.metrics#
Исправление Исправлена ошибка численной стабильности, которая могла возникать в
metrics.adjusted_mutual_info_scoreиmetrics.mutual_info_scoreс NumPy 1.20+. #19179 by Томас Фан.
sklearn.semi_supervised#
Исправление
semi_supervised.SelfTrainingClassifierтеперь принимает мета-оценщик (например,ensemble.StackingClassifier). Проверка этого оценщика выполняется на обученном оценщике, как только мы знаем о существовании методаpredict_proba. #19126 by Guillaume Lemaitre.
Версия 0.24.0#
Декабрь 2020
Измененные модели#
Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.
Исправление
decomposition.KernelPCAповедение теперь более согласовано между 32-битными и 64-битными данными, когда ядро имеет малые положительные собственные значения.Исправление
decomposition.TruncatedSVDстановится детерминированным, предоставляяrandom_stateпараметр.Исправление
linear_model.Perceptronкогдаpenalty='elasticnet'.Исправление Изменение в процедурах случайной выборки для инициализации центров
cluster.KMeans.
Подробности перечислены в журнале изменений ниже.
(Хотя мы стараемся лучше информировать пользователей, предоставляя эту информацию, мы не можем гарантировать, что этот список полный.)
Журнал изменений#
sklearn.base#
Исправление
base.BaseEstimator.get_paramsтеперь будет вызыватьAttributeErrorесли параметр не может быть получен как атрибут экземпляра. Ранее он возвращалNone. #17448 by Juan Carlos Alfaro Jiménez.
sklearn.calibration#
Эффективность
calibration.CalibratedClassifierCV.fitтеперь поддерживает параллелизацию черезjoblib.Parallelиспользуя аргументn_jobs. #17107 by Julien Jerphanion.Улучшение Разрешить
calibration.CalibratedClassifierCVиспользовать с prefitpipeline.Pipelineгде данные неXне является массивоподобным, разреженной матрицей или датафреймом в начале. #17546 by Lucy Liu.Улучшение Добавить
ensembleпараметр дляcalibration.CalibratedClassifierCV, что позволяет реализовать калибровку через ансамбль калибраторов (текущий метод) или только один калибратор, используя все данные (аналогично встроенной функцииsklearn.svmоцениватели сprobabilities=Trueпараметр). #17856 by Lucy Liu и Andrea Esuli.
sklearn.cluster#
Улучшение
cluster.AgglomerativeClusteringимеет новый параметрcompute_distances. Когда установлено вTrue, расстояния между кластерами вычисляются и сохраняются вdistances_атрибут, даже когда параметрdistance_thresholdне используется. Этот новый параметр полезен для создания визуализаций дендрограмм, но вносит вычислительные и ресурсные накладные расходы. #17984 by Michael Riedmann, Emilie Delattre, и Francesco Casalegno.Улучшение
cluster.SpectralClusteringиcluster.spectral_clusteringимеют новый аргумент ключевого словаverbose. При установке вTrue, будут отображаться дополнительные сообщения, которые могут помочь в отладке. #18052 by Шон О. Столли.Улучшение Добавлен
cluster.kmeans_plusplusкак публичную функцию. Инициализация с помощью KMeans++ теперь может вызываться отдельно для генерации начальных центроидов кластеров. #17937 by @g-walshИзменение API
cluster.MiniBatchKMeansатрибуты,counts_иinit_size_, устарели и будут удалены в версии 1.1 (переименование версии 0.26). #17864 by Жереми дю Буаберранже.
sklearn.compose#
Исправление
compose.ColumnTransformerпропустит преобразователи, если селектор столбцов представляет собой список логических значений False. #17616 by Томас Фан.Исправление
compose.ColumnTransformerтеперь отображает остаток в диаграмме. #18167 by Томас Фан.Исправление
compose.ColumnTransformerобеспечивает строгий подсчет и порядок имен столбцов междуfitиtransformпутём вызова ошибки вместо предупреждения, следуя циклу устаревания. #18256 by Мадхура Джайратне.
sklearn.covariance#
Изменение API Устаревает
cv_alphas_в пользуcv_results_['alphas']иgrid_scores_в пользу оценок разделения вcv_results_вcovariance.GraphicalLassoCV.cv_alphas_иgrid_scores_будет удален в версии 1.1 (переименование 0.26). #16392 by Томас Фан.
sklearn.cross_decomposition#
Исправление Исправлена ошибка в
cross_decomposition.PLSSVDкоторый иногда возвращает компоненты в обратном порядке важности. #17095 by Nicolas Hug.Исправление Исправлена ошибка в
cross_decomposition.PLSSVD,cross_decomposition.CCA, иcross_decomposition.PLSCanonical, что привело бы к неверным предсказаниям дляest.transform(Y)когда обучающие данные являются одноцелевыми. #17095 by Nicolas Hug.Исправление Повышает стабильность
cross_decomposition.CCA#18746 by Томас Фан.Изменение API Границы
n_componentsпараметр теперь ограничен:в
[1, min(n_samples, n_features, n_targets)], дляcross_decomposition.PLSSVD,cross_decomposition.CCA, иcross_decomposition.PLSCanonical.в
[1, n_features]илиcross_decomposition.PLSRegression.
Будет вызвана ошибка в версии 1.1 (переименование версии 0.26). #17095 by Nicolas Hug.
Изменение API Для
cross_decomposition.PLSSVD,cross_decomposition.CCA, иcross_decomposition.PLSCanonical,x_scores_иy_scores_атрибуты были устаревшими и будут удалены в версии 1.1 (переименование версии 0.26). Их можно получить, вызвавtransformна обучающих данных.norm_y_weightsатрибут также будет удалён. #17095 by Nicolas Hug.Изменение API Для
cross_decomposition.PLSRegression,cross_decomposition.PLSCanonical,cross_decomposition.CCA, иcross_decomposition.PLSSVD,x_mean_,y_mean_,x_std_, иy_std_атрибуты были объявлены устаревшими и будут удалены в версии 1.1 (переименование версии 0.26). #18768 by Марен Вестерманн.Исправление
decomposition.TruncatedSVDстановится детерминированным с использованиемrandom_state. Он управляет инициализацией весов базового решателя ARPACK. :pr:` #18302` от Гаурав Десаи и Иван Панико.
sklearn.datasets#
Функция
datasets.fetch_openmlтеперь проверяет контрольную сумму md5 файлов arff, загруженных или кэшированных, для обеспечения целостности данных. #14800 by Shashank Singh и Joel Nothman.Улучшение
datasets.fetch_openmlтеперь позволяет аргументas_frameбудет 'auto', что пытается преобразовать возвращённые данные в pandas DataFrame, если данные не разрежены. #17396 by Jiaxiang.Улучшение
datasets.fetch_covtypeтеперь поддерживает необязательный аргументas_frame; когда установлено в True, возвращаемый объект Bunchdataиframeэлементы являются pandas DataFrames, иtargetчлен является pandas Series. #17491 by Alex Liang.Улучшение
datasets.fetch_kddcup99теперь поддерживает необязательный аргументas_frame; когда установлено в True, возвращаемый объект Bunchdataиframeэлементы являются pandas DataFrames, иtargetчлен является pandas Series. #18280 by Alex Liang и Guillaume Lemaitre.Улучшение
datasets.fetch_20newsgroups_vectorizedтеперь поддерживает загрузку как pandasDataFrameустановкойas_frame=True. #17499 by Бригитта Сипёч и Guillaume Lemaitre.Изменение API Значение по умолчанию для
as_frameвdatasets.fetch_openmlизменяется с False на ‘auto’. #17610 by Jiaxiang.
sklearn.decomposition#
Изменение API Для
decomposition.NMF,initзначение, когда 'init=None' и n_components <= min(n_samples, n_features) будет изменено с'nndsvd'to'nndsvda'в 1.1 (переименование 0.26). #18525 by Кьяра Мармо.Улучшение
decomposition.FactorAnalysisтеперь поддерживает необязательный аргументrotation, который может принимать значениеNone,'varimax'или'quartimax'. #11064 by Jona Sassenhagen.Улучшение
decomposition.NMFтеперь поддерживает необязательный параметрregularization, которые могут принимать значенияNone, 'components', 'transformation' или 'both', в соответствии сdecomposition.NMF.non_negative_factorization. #17414 by Bharat Raghunathan.Исправление
decomposition.KernelPCAповедение теперь более согласовано между 32-битными и 64-битными входными данными, когда ядро имеет малые положительные собственные значения. Малые положительные собственные значения не корректно отбрасывались для 32-битных данных. #18149 by Sylvain Marié.Исправление Исправление
decomposition.SparseCoderтак, чтобы он соответствовал API scikit-learn и поддерживал клонирование. Атрибутcomponents_устарел в версии 0.24 и будет удален в версии 1.1 (переименование версии 0.26). Этот атрибут был избыточным сdictionaryатрибут и параметр конструктора. #17679 by Xavier Dupré.Исправление
decomposition.TruncatedSVD.fit_transformпоследовательно возвращает то же самое, что иdecomposition.TruncatedSVD.fitс последующимdecomposition.TruncatedSVD.transform. #18528 by Albert Villanova del Moral и Ruifeng Zheng.
sklearn.discriminant_analysis#
Улучшение
discriminant_analysis.LinearDiscriminantAnalysisтеперь может использовать пользовательскую оценку ковариации, установивcovariance_estimatorпараметр. #14446 by Хьюго Ричард.
sklearn.ensemble#
Основная функция
ensemble.HistGradientBoostingRegressorиensemble.HistGradientBoostingClassifierтеперь имеют встроенную поддержку категориальных признаков сcategorical_featuresпараметр. #18394 by Nicolas Hug и Томас Фан.Функция
ensemble.HistGradientBoostingRegressorиensemble.HistGradientBoostingClassifierтеперь поддерживают методstaged_predict, который позволяет отслеживать каждый этап. #16985 by Hao Chun Chang.Эффективность разорвать циклические ссылки в узлах дерева, используемых внутри
ensemble.HistGradientBoostingRegressorиensemble.HistGradientBoostingClassifierдля своевременного сбора мусора больших промежуточных структур данных и улучшения использования памяти вfit. #18334 by Оливье Гризель Nicolas Hug, Thomas Fan и Андреас Мюллер.Эффективность Инициализация гистограммы теперь выполняется параллельно в
ensemble.HistGradientBoostingRegressorиensemble.HistGradientBoostingClassifierчто приводит к ускорению для задач, которые строят много узлов на многопроцессорных машинах. #18341 by Оливье Гризель, Nicolas Hug, Томас Фан, и Егор Смирнов.Исправление Исправлена ошибка в
ensemble.HistGradientBoostingRegressorиensemble.HistGradientBoostingClassifierкоторый теперь может принимать данные сuint8dtype вpredict. #18410 by Nicolas Hug.Изменение API Параметр
n_classes_теперь устарел вensemble.GradientBoostingRegressorи возвращает1. #17702 by Simona Maggio.Изменение API Средняя абсолютная ошибка ('mae') теперь устарела для параметра
criterionвensemble.GradientBoostingRegressorиensemble.GradientBoostingClassifier. #18326 by Madhura Jayaratne.
sklearn.exceptions#
Изменение API
exceptions.ChangedBehaviorWarningиexceptions.NonBLASDotWarningустарели и будут удалены в версии 1.1 (переименование 0.26). #17804 by Адрин Джалали.
sklearn.feature_extraction#
Улучшение
feature_extraction.DictVectorizerпринимает несколько значений для одной категориальной характеристики. #17367 by Peng Yu и Кьяра Мармо.Исправление
feature_extraction.text.CountVectorizerвызывает проблему, если предоставлен пользовательский шаблон токена, который захватывает более одной группы. #15427 by Гангеш Гудмалвар и Эрин Р. Хоффман.
sklearn.feature_selection#
Функция Добавлен
feature_selection.SequentialFeatureSelectorкоторый реализует прямой и обратный последовательный отбор признаков. #6545 by Sebastian Raschka и #17159 by Nicolas Hug.Функция Новый параметр
importance_getterбыл добавлен вfeature_selection.RFE,feature_selection.RFECVиfeature_selection.SelectFromModel, позволяя пользователю указать имя атрибута/путь илиcallableдля извлечения важности признаков из оценщика. #15361 by Venkatachalam N.Эффективность Уменьшить объем памяти в
feature_selection.mutual_info_classifиfeature_selection.mutual_info_regressionпутем вызоваneighbors.KDTreeдля подсчета ближайших соседей. #17878 by Noel Rogers.Улучшение
feature_selection.RFEподдерживает опцию для количестваn_features_to_selectдолжно быть задано как число с плавающей точкой, представляющее процент признаков для выбора. #17090 by Лиза Шветлик и Многомерные целевые переменные, предсказанные с помощью нескольких предикторов. Примечание: отдельные модели генерируются для каждого предиктора..
sklearn.gaussian_process#
Улучшение Новый метод
gaussian_process.kernel._check_bounds_paramsвызывается после подгонки гауссовского процесса и вызываетConvergenceWarningесли границы гиперпараметров слишком узки. #12638 by Sylvain Lannuzel.
sklearn.impute#
Функция
impute.SimpleImputerтеперь поддерживает список строк, когдаstrategy='most_frequent'илиstrategy='constant'. #17526 by Аяко ЯГИ и Juan Carlos Alfaro Jiménez.Функция Добавлен метод
impute.SimpleImputer.inverse_transformдля возврата импутированных данных к исходным при инициализации сadd_indicator=True. #17612 by Srimukh Sripada.Исправление заменить значения по умолчанию в
impute.IterativeImputerofmin_valueиmax_valueпараметры для-np.infиnp.inf, соответственно, вместоNone. Однако поведение класса не меняется, посколькуNoneуже использовал эти значения по умолчанию. #16493 by Darshan N.Исправление
impute.IterativeImputerне будет пытаться установить оценщикаrandom_stateатрибут, позволяющий использовать его с большим количеством внешних классов. #15636 by David Cortes.Эффективность
impute.SimpleImputerтеперь работает быстрее сobjectмассив типа dtype. когдаstrategy='most_frequent'вSimpleImputer. #18987 by Дэвид Кац.
sklearn.inspection#
Функция
inspection.partial_dependenceиinspection.plot_partial_dependenceтеперь поддерживают вычисление и построение кривых индивидуального условного ожидания (ICE), управляемыхkindпараметр. #16619 by Мадхура Джайратне.Функция Добавить
sample_weightпараметр дляinspection.permutation_importance. #16906 by Рои Кахни.Изменение API Позиционные аргументы устарели в
inspection.PartialDependenceDisplay.plotи выдаст ошибку в версии 1.1 (переименование версии 0.26). #18293 by Томас Фан.
sklearn.isotonic#
Функция Предоставление обученных атрибутов
X_thresholds_иy_thresholds_которые содержат дедуплицированные пороги интерполяцииisotonic.IsotonicRegressionэкземпляр для целей инспекции модели. #16289 by Masashi Kishimoto и Оливье Гризель.Улучшение
isotonic.IsotonicRegressionтеперь принимает 2d массив с 1 признаком в качестве входного массива. #17379 by Jiaxiang.Исправление Добавить допуск при определении дублирующихся значений X, чтобы предотвратить предсказание inf значений с помощью
isotonic.IsotonicRegression. #18639 by Lucy Liu.
sklearn.kernel_approximation#
Функция Добавлен класс
kernel_approximation.PolynomialCountSketchкоторый реализует алгоритм Tensor Sketch для аппроксимации признакового отображения полиномиального ядра. #13003 by Daniel López Sánchez.Эффективность
kernel_approximation.Nystroemтеперь поддерживает параллелизацию черезjoblib.Parallelиспользуя аргументn_jobs. #18545 by Laurenz Reitsam.
sklearn.linear_model#
Функция
linear_model.LinearRegressionтеперь заставляет коэффициенты быть всеми положительными, когдаpositiveустановлено вTrue. #17578 by устарел в пользу более согласованного, Нель Варокво и Кьяра Мармо.Улучшение
linear_model.RidgeCVтеперь поддерживает поиск оптимального значения регуляризацииalphaдля каждой цели отдельно, установивalpha_per_target=True. Это поддерживается только при использовании стандартной эффективной схемы перекрестной проверки с исключением по одномуcv=None. #6624 by Marijn van Vliet.Исправление Исправлена ошибка в
linear_model.TheilSenRegressorгдеpredictиscoreзавершалось ошибкой, когдаfit_intercept=Falseи была одна фича во время обучения. #18121 by Томас Фан.Исправление Исправлена ошибка в
linear_model.ARDRegressionгдеpredictвызывал ошибку, когдаnormalize=Trueиreturn_std=Trueпотому чтоX_offset_иX_scale_были неопределены. #18607 by fhaselbeck.Исправление Добавлен недостающий
l1_ratioпараметр вlinear_model.Perceptron, для использования, когдаpenalty='elasticnet'. Это изменяет значение по умолчанию с 0 на 0.15. #18622 by Хесун Парк.
sklearn.manifold#
Эффективность Исправлено #10493. Улучшенный метод локального линейного вложения (LLE), который вызвал
MemoryErrorисключение при использовании с большими входными данными. #17997 by Bertrand Maisonneuve.Улучшение Добавить
square_distancesпараметр дляmanifold.TSNE, что обеспечивает обратную совместимость во время устаревания устаревшего поведения возведения в квадрат. Расстояния будут возводиться в квадрат по умолчанию в версии 1.1 (переименование 0.26), и этот параметр будет удален в версии 1.3. #17662 by Joshua Newton.Исправление
manifold.MDSтеперь правильно устанавливает свой_pairwiseатрибут. #18278 by Томас Фан.
sklearn.metrics#
Функция Добавлен
metrics.cluster.pair_confusion_matrixреализующий матрицу ошибок, возникающую из пар элементов двух кластеризаций. #17412 by Уве Ф. Майер.Функция новая метрика
metrics.top_k_accuracy_score. Это обобщениеmetrics.top_k_accuracy_score, разница заключается в том, что предсказание считается правильным, если истинная метка связана с одним изkнаивысшие предсказанные оценки.metrics.accuracy_scoreявляется частным случаемk = 1. #16625 by Джеффри Болмье.Функция Добавлен
metrics.det_curveдля вычисления кривой классификационной метрики компромисса между ошибками обнаружения. #10591 by Джереми Карновски и Даниэль Монс.Функция Добавлен
metrics.plot_det_curveиmetrics.DetCurveDisplayдля упрощения построения кривых DET. #18176 by Guillaume Lemaitre.Функция Добавлен
metrics.mean_absolute_percentage_errorметрика и связанный с ней скорер для задач регрессии. #10708 исправлено с помощью PR #15007 by Ashutosh Hathidara. Метрика оценки и некоторые практические тестовые случаи были взяты из PR #10711 by Mohamed Ali Jamaoui.Функция Добавлен
metrics.rand_scoreреализующий (нескорректированный) индекс Рэнда. #17412 by Уве Ф. Майер.Функция
metrics.plot_confusion_matrixтеперь поддерживает возможность сделать цветовую шкалу необязательной в графике matplotlib, установивcolorbar=False. #17192 by Ави ГуптаУлучшение Добавить
sample_weightпараметр дляmetrics.median_absolute_error. #17225 by Lucy Liu.Улучшение Добавить
pos_labelпараметр вmetrics.plot_precision_recall_curveчтобы указать положительный класс, который будет использоваться при вычислении статистики точности и полноты. #17569 by Guillaume Lemaitre.Улучшение Добавить
pos_labelпараметр вmetrics.plot_roc_curveчтобы указать положительный класс, используемый при вычислении статистики roc auc. #17651 by Clara Matos.Исправление Исправлена ошибка в
metrics.classification_reportкоторый вызывал AttributeError при вызове сoutput_dict=Trueдля значений нулевой длины. #17777 by Shubhanshu Mishra.Исправление Исправлена ошибка в
metrics.classification_reportкоторый вызывал AttributeError при вызове сoutput_dict=Trueдля значений нулевой длины. #17777 by Shubhanshu Mishra.Исправление Исправлена ошибка в
metrics.jaccard_scoreкоторый рекомендовалzero_divisionпараметр при вызове без истинных или предсказанных образцов. #17826 by Ричард Декал и Joseph WillardИсправление ошибка в
metrics.hinge_lossгде ошибка возникает, когдаy_trueотсутствуют некоторые метки, которые явно указаны вlabelsпараметр. #17935 by Кэри Голтерманн.Исправление Исправляет скореры, которые принимают параметр pos_label и вычисляют их метрики из значений, возвращаемых
decision_functionилиpredict_proba. Ранее они возвращали ошибочные значения, когда pos_label не соответствовалclassifier.classes_[1]. Это особенно важно при обучении классификаторов непосредственно с целевыми классами, помеченными строками. #18114 by Guillaume Lemaitre.Исправление Исправлена ошибка в
metrics.plot_confusion_matrixгде ошибка возникает когдаy_trueсодержит метки, которые ранее не встречались классификатору, в то время какlabelsиdisplay_labelsпараметры установлены вNone. #18405 by Thomas J. Fan и Яков Пчелинцев.
sklearn.model_selection#
Основная функция Добавлены (экспериментальные) оценщики поиска параметров
model_selection.HalvingRandomSearchCVиmodel_selection.HalvingGridSearchCVкоторые реализуют Последовательное Уполовинивание и могут использоваться как прямая замена дляmodel_selection.RandomizedSearchCVиmodel_selection.GridSearchCV. #13900 by Nicolas Hug, Joel Nothman и Андреас Мюллер.Функция
model_selection.RandomizedSearchCVиmodel_selection.GridSearchCVтеперь имеют методscore_samples#17478 by Teon Brooks и Mohamed Maskani.Улучшение
model_selection.TimeSeriesSplitимеет два новых ключевых аргументаtest_sizeиgap.test_sizeпозволяет фиксировать длину временного ряда вне выборки для всех фолдов.gapудаляет фиксированное количество образцов между обучающей и тестовой выборками на каждой итерации. #13204 by Kyle Kosic.Улучшение
model_selection.permutation_test_scoreиmodel_selection.validation_curveтеперь принимают fit_params для передачи дополнительных параметров оценщика. #18527 by Гаурав Дхингра, Julien Jerphanion и Аманда Д'Суза.Улучшение
model_selection.cross_val_score,model_selection.cross_validate,model_selection.GridSearchCV, иmodel_selection.RandomizedSearchCVпозволяет оценщику не проходить оценку и заменять оценку наerror_score. Еслиerror_score="raise", ошибка будет вызвана. #18343 by Guillaume Lemaitre и Деви Сандип.Улучшение
model_selection.learning_curveтеперь принимают fit_params для передачи дополнительных параметров оценщика. #18595 by Аманда Д'Суза.Исправление Исправлен
lenofmodel_selection.ParameterSamplerкогда все распределения являются списками иn_iterбольше, чем количество уникальных комбинаций параметров. #18222 by Nicolas Hug.Исправление Исправление для выдачи предупреждения, когда одно или несколько разделений CV
model_selection.GridSearchCVиmodel_selection.RandomizedSearchCVприводит к неконечным оценкам. #18266 by Subrat Sahu, Nirvan и Arthur Book.Улучшение
model_selection.GridSearchCV,model_selection.RandomizedSearchCVиmodel_selection.cross_validateподдержкаscoringявляющийся вызываемым объектом, возвращающим словарь ассоциаций нескольких имен/значений метрик. #15126 by Томас Фан.
sklearn.multiclass#
Улучшение
multiclass.OneVsOneClassifierтеперь принимает входные данные с пропущенными значениями. Следовательно, оценщики, которые могут обрабатывать пропущенные значения (может быть конвейер с этапом импутации), могут использоваться как оценщик для многоклассовых обёрток. #17987 by Venkatachalam N.Исправление Исправление, чтобы разрешить
multiclass.OutputCodeClassifierдля приема разреженных входных данных в своемfitиpredictметоды. Проверка валидности входных данных теперь делегирована базовому оценщику. #17233 by Золиса Блеки.
sklearn.multioutput#
Улучшение
multioutput.MultiOutputClassifierиmultioutput.MultiOutputRegressorтеперь принимает входные данные с пропущенными значениями. Следовательно, оценщики, которые могут обрабатывать пропущенные значения (может быть конвейер с шагом импутации, HistGradientBoosting оценщики) могут использоваться как оценщик для многоклассовых обёрток. #17987 by Venkatachalam N.Исправление Исправление для принятия кортежей в
orderпараметр вmultioutput.ClassifierChain. #18124 by Gus Brocchini и Аманда Д'Суза.
sklearn.naive_bayes#
Улучшение Добавляет параметр
min_categoriestonaive_bayes.CategoricalNBкоторая позволяет указать минимальное количество категорий для каждого признака. Это позволяет учитывать категории, не встречавшиеся во время обучения. #16326 by George Armstrong.Изменение API Атрибуты
coef_иintercept_теперь устарели вnaive_bayes.MultinomialNB,naive_bayes.ComplementNB,naive_bayes.BernoulliNBиnaive_bayes.CategoricalNB, и будет удалено в v1.1 (переименование 0.26). #17427 by Juan Carlos Alfaro Jiménez.
sklearn.neighbors#
Эффективность Ускорение
seuclidean,wminkowski,mahalanobisиhaversineметрики вneighbors.DistanceMetricизбегая неожиданного захвата GIL в Cython при установкеn_jobs>1вneighbors.KNeighborsClassifier,neighbors.KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor,metrics.pairwise_distancesи путем валидации данных вне циклов. #17038 by Вэньбо Чжао.Эффективность
neighbors.NeighborsBaseпреимущества улучшенногоalgorithm = 'auto'эвристика. В дополнение к предыдущему набору правил, теперь, когда количество признаков превышает 15,bruteвыбран, предполагая, что внутренняя размерность данных слишком высока для методов на основе деревьев. #17148 by Джеффри Болмье.Исправление
neighbors.BinaryTreeвызоветValueErrorпри обучении на массиве данных, содержащем точки с разными размерностями. #18691 by Кьяра Мармо.Исправление
neighbors.NearestCentroidс числовымshrink_thresholdвызоветValueErrorпри обучении на данных со всеми постоянными признаками. #18370 by Trevor Waite.Исправление В методах
radius_neighborsиradius_neighbors_graphofneighbors.NearestNeighbors,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor, иneighbors.RadiusNeighborsTransformer, используяsort_results=Trueтеперь правильно сортирует результаты даже при обучении с алгоритмом “brute”. #18612 by Tom Dupre la Tour.
sklearn.neural_network#
Эффективность Обучение и предсказание нейронной сети теперь немного быстрее. #17603, #17604, #17606, #17608, #17609, #17633, #17661, #17932 by Алекс Хенри.
Улучшение Избегайте преобразования входных данных float32 в float64 в
neural_network.BernoulliRBM. #16352 by Arthur Imbert.Улучшение Поддержка 32-битных вычислений в
neural_network.MLPClassifierиneural_network.MLPRegressor. #17759 by Srimukh Sripada.Исправление Метод исправления
neural_network.MLPClassifier.fitне итерируя доmax_iterесли используется тёплый старт. #18269 by Норберт Прейнинг и Guillaume Lemaitre.
sklearn.pipeline#
Улучшение Ссылки на трансформеры, переданные через
transformer_weightstopipeline.FeatureUnionкоторые отсутствуют вtransformer_listвызоветValueError. #17876 by Кэри Голтерманн.Исправление Срез
pipeline.Pipelineтеперь наследует параметры исходного конвейера (memoryиverbose). #18429 by Albert Villanova del Moral и Paweł Biernat.
sklearn.preprocessing#
Функция
preprocessing.OneHotEncoderтеперь поддерживает пропущенные значения, рассматривая их как категорию. #17317 by Томас Фан.Функция Добавить новый
handle_unknownпараметр сuse_encoded_valueопция, вместе с новойunknown_valueпараметр, вpreprocessing.OrdinalEncoderчтобы разрешить неизвестные категории во время преобразования и установить закодированное значение неизвестных категорий. #17406 by Felix Wick и #18406 by Nicolas Hug.Функция Добавить
clipпараметр дляpreprocessing.MinMaxScalerкоторый обрезает преобразованные значения тестовых данных доfeature_range. #17833 by Yashika Sharma.Функция Добавить
sample_weightпараметр дляpreprocessing.StandardScaler. Позволяет устанавливать индивидуальные веса для каждой выборки. #18510 и #18447 и #16066 и #18682 by Мария Теленчук и 2.5.5. Факторный анализ и @panpiort8 и Алекс Грамфор.Улучшение Подробный вывод
model_selection.GridSearchCVбыл улучшен для удобочитаемости. #16935 by Raghav Rajagopalan и Кьяра Мармо.Улучшение Добавить
unit_variancetopreprocessing.RobustScaler, которая масштабирует выходные данные так, что нормально распределенные признаки имеют дисперсию 1. #17193 by Lucy Liu и Mabel Villalba.Улучшение Добавить
dtypeпараметр дляpreprocessing.KBinsDiscretizer. #16335 by Arthur Imbert.Исправление Вызвать ошибку при
sklearn.preprocessing.OneHotEncoder.inverse_transformкогдаhandle_unknown='error'иdrop=Noneдля образцов, закодированных как все нули. #14982 by Кевин Вината.
sklearn.semi_supervised#
Основная функция Добавлен
semi_supervised.SelfTrainingClassifier, мета-классификатор, который позволяет любому контролируемому классификатору функционировать как полуконтролируемый классификатор, способный обучаться на немаркированных данных. #11682 by Оливер Рауш и Patrice Becker.Исправление Исправлена некорректная кодировка при использовании строковых dtypes с юникодом в
preprocessing.OneHotEncoderиpreprocessing.OrdinalEncoder. #15763 by Томас Фан.
sklearn.svm#
Улучшение вызвать API SciPy BLAS для функции ядра SVM в
fit,predictи связанные методыsvm.SVC,svm.NuSVC,svm.SVR,svm.NuSVR,svm.OneClassSVM. #16530 by Shuhua Fan.
sklearn.tree#
Функция
tree.DecisionTreeRegressorтеперь поддерживает новый критерий разделения'poisson'полезен для моделирования счетных данных. #17386 by Christian Lorentzen.Улучшение
tree.plot_treeтеперь использует цвета из настроек конфигурации matplotlib. #17187 by Андреас Мюллер.Изменение API Параметр
X_idx_sortedтеперь устарел вtree.DecisionTreeClassifier.fitиtree.DecisionTreeRegressor.fit, и не имеет эффекта. #17614 by Juan Carlos Alfaro Jiménez.
sklearn.utils#
Улучшение Добавить
check_methods_sample_order_invariancetocheck_estimator, который проверяет, что методы оценщика инвариантны при применении к одному и тому же набору данных с разным порядком выборок #17598 by Джейсон Нго.Улучшение Добавить поддержку весов в
utils.sparse_func.incr_mean_variance_axis. Путем Мария Теленчук и Алекс Грамфор.Исправление Вызвать ValueError с понятным сообщением об ошибке в
utils.check_arrayдля разреженных DataFrame со смешанными типами. #17992 by Thomas J. Fan и Алекс Шакед.Исправление Позволяет десериализовать древовидные модели на машине с другой порядком байтов. #17644 by Ци Чжан.
Исправление Проверяем, что возникает правильная ошибка, когда axis=1 и размерности не совпадают в
utils.sparse_func.incr_mean_variance_axis. Путем Алекс Грамфор.
Разное#
Улучшение Вызовы
reprтеперь работают быстрее, когдаprint_changed_only=True, особенно с мета-оценщиками. #18508 by Натан К..
Участники кода и документации
Благодарим всех, кто внес вклад в поддержку и улучшение проекта с версии 0.23, включая:
Abo7atm, Adam Spannbauer, Adrin Jalali, adrinjalali, Agamemnon Krasoulis, Akshay Deodhar, Albert Villanova del Moral, Alessandro Gentile, Alex Henrie, Alex Itkes, Alex Liang, Alexander Lenail, alexandracraciun, Alexandre Gramfort, alexshacked, Allan D Butler, Amanda Dsouza, amy12xx, Anand Tiwari, Anderson Nelson, Andreas Mueller, Ankit Choraria, Archana Subramaniyan, Arthur Imbert, Ashutosh Hathidara, Ashutosh Kushwaha, Atsushi Nukariya, Aura Munoz, AutoViz и Auto_ViML, Avi Gupta, Avinash Anakal, Ayako YAGI, barankarakus, barberogaston, beatrizsmg, Ben Mainye, Benjamin Bossan, Benjamin Pedigo, Bharat Raghunathan, Bhavika Devnani, Biprateep Dey, bmaisonn, Bo Chang, Boris Villazón-Terrazas, brigi, Brigitta Sipőcz, Bruno Charron, Byron Smith, Cary Goltermann, Cat Chenal, CeeThinwa, chaitanyamogal, Charles Patel, Chiara Marmo, Christian Kastner, Christian Lorentzen, Christoph Deil, Christos Aridas, Clara Matos, clmbst, Coelhudo, crispinlogan, Cristina Mulas, Daniel López, Daniel Mohns, darioka, Darshan N, david-cortes, Declan O’Neill, Deeksha Madan, Elizabeth DuPre, Eric Fiegel, Eric Larson, Erich Schubert, Erin Khoo, Erin R Hoffman, eschibli, Felix Wick, fhaselbeck, Forrest Koch, Francesco Casalegno, Frans Larsson, Gael Varoquaux, Gaurav Desai, Gaurav Sheni, genvalen, Geoffrey Bolmier, George Armstrong, George Kiragu, Gesa Stupperich, Ghislain Antony Vaillant, Gim Seng, Gordon Walsh, Gregory R. Lee, Guillaume Chevalier, Guillaume Lemaitre, Haesun Park, Hannah Bohle, Hao Chun Chang, Harry Scholes, Harsh Soni, Henry, Hirofumi Suzuki, Hitesh Somani, Hoda1394, Hugo Le Moine, hugorichard, indecisiveuser, Isuru Fernando, Ivan Wiryadi, j0rd1smit, Jaehyun Ahn, Jake Tae, James Hoctor, Jan Vesely, Jeevan Anand Anne, JeroenPeterBos, JHayes, Jiaxiang, Jie Zheng, Jigna Panchal, jim0421, Jin Li, Joaquin Vanschoren, Joel Nothman, Jona Sassenhagen, Jonathan, Jorge Gorbe Moya, Joseph Lucas, Joshua Newton, Juan Carlos Alfaro Jiménez, Julien Jerphanion, Justin Huber, Jérémie du Boisberranger, Kartik Chugh, Katarina Slama, kaylani2, Kendrick Cetina, Kenny Huynh, Kevin Markham, Kevin Winata, Kiril Isakov, kishimoto, Koki Nishihara, Krum Arnaudov, Kyle Kosic, Lauren Oldja, Laurenz Reitsam, Lisa Schwetlick, Louis Douge, Louis Guitton, Lucy Liu, Madhura Jayaratne, maikia, Manimaran, Manuel López-Ibáñez, Maren Westermann, Maria Telenczuk, Mariam-ke, Marijn van Vliet, Markus Löning, Martin Scheubrein, Martina G. Vilas, Martina Megasari, Mateusz Górski, mathschy, mathurinm, Matthias Bussonnier, Max Del Giudice, Michael, Milan Straka, Muoki Caleb, N. Haiat, Nadia Tahiri, Ph. D, Naoki Hamada, Neil Botelho, Nicolas Hug, Nils Werner, noelano, Norbert Preining, oj_lappi, Oleh Kozynets, Olivier Grisel, Pankaj Jindal, Pardeep Singh, Parthiv Chigurupati, Patrice Becker, Pete Green, pgithubs, Poorna Kumar, Prabakaran Kumaresshan, Probinette4, pspachtholz, pwalchessen, Qi Zhang, rachel fischoff, Rachit Toshniwal, Rafey Iqbal Rahman, Rahul Jakhar, Ram Rachum, RamyaNP, rauwuckl, Ravi Kiran Boggavarapu, Ray Bell, Reshama Shaikh, Richard Decal, Rishi Advani, Rithvik Rao, Rob Romijnders, roei, Romain Tavenard, Roman Yurchak, Ruby Werman, Ryotaro Tsukada, sadak, Saket Khandelwal, Sam, Sam Ezebunandu, Sam Kimbinyi, Sarah Brown, Saurabh Jain, Sean O. Stalley, Sergio, Shail Shah, Shane Keller, Shao Yang Hong, Shashank Singh, Shooter23, Shubhanshu Mishra, simonamaggio, Soledad Galli, Srimukh Sripada, Stephan Steinfurt, subrat93, Sunitha Selvan, Swier, Sylvain Marié, SylvainLan, t-kusanagi2, Teon L Brooks, Terence Honles, Thijs van den Berg, Thomas J Fan, Thomas J. Fan, Thomas S Benjamin, Thomas9292, Thorben Jensen, tijanajovanovic, Timo Kaufmann, tnwei, Tom Dupré la Tour, Trevor Waite, ufmayer, Umberto Lupo, Venkatachalam N, Vikas Pandey, Vinicius Rios Fuck, Violeta, watchtheblur, Wenbo Zhao, willpeppo, xavier dupré, Xethan, Xue Qianming, xun-tang, yagi-3, Yakov Pchelintsev, Yashika Sharma, Yi-Yan Ge, Yue Wu, Yutaro Ikeda, Zaccharie Ramzi, zoj613, Zhao Feng.