quantile_transform
- sklearn.preprocessing.quantile_transform(X, *, axis=0, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=100000, random_state=None, copy=True)[source]
-
Преобразование признаков с использованием информации о квантилях.
Этот метод преобразует признаки, чтобы они соответствовали равномерному или нормальному распределению. Таким образом, для данного признака это преобразование имеет тенденцию распределять наиболее часто встречающиеся значения. Оно также снижает влияние (маргинальных) выбросов; таким образом, это является надёмой схемой предобработки.
Преобразование применяется к каждому признаку независимо. Сначала используется оценка функции кумулятивного распределения признака для сопоставления исходных значений с равномерным распределением. Полученные значения затем сопоставляются с желаемым выходным распределением с использованием соответствующей функции квантиля. Значения признаков новых/невиденных данных, которые попадают ниже или выше вычисленного диапазона, будут сопоставлены с границами выходного распределения. Обратите внимание, что это преобразование является нелинейным. Оно может искажать линейные корреляции между переменными, измеренными на одном масштабе, но делает переменные, измеренные на разных масштабах, более непосредственно сопоставимыми.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Данные для преобразования.
- axisint, по умолчанию=0
-
Ось, по которой вычисляются средние значения и стандартные отклонения. Если 0, преобразуйте каждый признак, в противном случае (если 1) преобразуйте каждую выборку.
- n_quantilesint, по умолчанию=1000 или n_samples
-
Количество квантилей для вычисления. Оно соответствует количеству ориентиров, используемых для дискретизации функции кумулятивного распределения. Если n_quantiles больше, чем количество выборок, n_quantiles устанавливается в количество выборок, так как большее количество квантилей не даёт лучшей аппроксимации оценщика функции кумулятивного распределения.
- output_distribution{‘uniform’, ‘normal’}, по умолчанию=’uniform’
-
Маргинальное распределение для преобразованных данных. Возможные значения — ‘uniform’ (по умолчанию) или ‘normal’.
- ignore_implicit_zerosbool, по умолчанию=False
-
Применимо только к разреженным матрицам. Если True, разреженные элементы матрицы отбрасываются для вычисления статистических данных квантилей. Если False, эти элементы обрабатываются как нули.
- subsampleint или None, по умолчанию=1e5
-
Максимальное количество выборок, используемых для оценки квантилей для повышения вычислительной эффективности. Обратите внимание, что процедура подвыборки может отличаться для идентичных по значению разреженных и плотных матриц. Отключите подвыборку, установив
subsample=None.Добавлена в версии 1.5: Была добавлена возможность
Noneдля отключения подвыборки. - random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Определяет генерацию случайных чисел для подвыборки и сглаживания шума. Подробнее см.
subsample. Передайте целое число для воспроизводимых результатов при нескольких вызовах функции. См. Глоссарий. - copybool, по умолчанию=True
-
Если False, попытайтесь избежать копирования и преобразовать на месте. Это не гарантирует всегда работу на месте; например, если данные — массив NumPy с целочисленным типом данных, будет возвращена копия, даже если copy=False.
Изменено в версии 0.23: Значение по умолчанию
copyбыло изменено с False на True в версии 0.23.
- Возвращаемое значение:
-
- Xt{ndarray, разреженная матрица} формы (n_samples, n_features)
-
Преобразованные данные.
См. также
QuantileTransformer-
Выполняет масштабирование на основе квантилей с помощью API преобразователя (например, как часть предобработки
Pipeline). power_transform-
Преобразует данные к нормальному распределению с помощью преобразования степени.
scale-
Выполняет стандартизацию, которая быстрее, но менее устойчива к выбросам.
robust_scale-
Выполняет устойчивую стандартизацию, которая удаляет влияние выбросов, но не накладывает выбросы и внутренние точки на одну шкалу.
Примечания
Значения NaN обрабатываются как пропущенные значения: игнорируются при подгонке и сохраняются при преобразовании.
Предупреждение
Риск утечки данных
Не используйте
quantile_transform, если вы не знаете, что делаете. Распространённая ошибка — применять её ко всем данным *перед* разделением на обучающие и тестовые наборы. Это повлияет на оценку модели, так как информация просочится из тестового набора в обучающий. В общем случае, рекомендуется использоватьQuantileTransformerв Pipeline для предотвращения большинства рисков утечки данных:pipe = make_pipeline(QuantileTransformer(), LogisticRegression()).Для сравнения различных масштабирующих, преобразующих и нормализующих методов см.: Сравнение влияния различных масштабирующих методов на данные с выбросами.
Примеры
>>> import numpy as np >>> from sklearn.preprocessing import quantile_transform >>> rng = np.random.RandomState(0) >>> X = np.sort(rng.normal(loc=0.5, scale=0.25, size=(25, 1)), axis=0) >>> quantile_transform(X, n_quantiles=10, random_state=0, copy=True) array([...])
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.quantile_transform.html