sklearn.preprocessing.power_transform?

sklearn.preprocessing.power_transform(X, method='yeo-johnson', *, standardize=True, copy=True)

[源碼]

冪變換是一組參數化,單調變換,可用于使數據更像高斯型。這對于建模與異方差性(非恒定方差)或其他需要正態性的情況有關的模型很有用。

當前,power_transform支持Box-Cox變換和Yeo-Johnson變換。通過最大似然來估計用于穩定方差和最小化偏斜的最佳參數。

Box-Cox要求輸入數據嚴格為正,而Yeo-Johnson支持正或負數據。

默認情況下,零均值,單位方差歸一化應用于轉換后的數據。

用戶指南中閱讀更多內容。

參數 說明
X array-like, shape (n_samples, n_features)
使用冪變換要變換的數據。
method {‘yeo-johnson’, ‘box-cox’}, default=’yeo-johnson’
功率變換方法。可用的方法有:
'yeo-johnson'[1],使用正值和負值
'box-cox'[2],僅適用于嚴格為正的值
*在版本0.23中更改:*方法參數的默認值在0.23中從“ box-cox”更改為“ yeo-johnson”。
standardize boolean, default=True
設置為True可將零均值,單位方差歸一化應用于轉換后的輸出。
copy boolean, optional, default=True
設置為False可在轉換期間執行就地計算。
返回 說明
X_trans array-like, shape (n_samples, n_features)
轉換后的數據。

另見

PowerTransformer

與Transformer API等效的轉換(例如,作為預處理sklearn.pipeline.Pipeline的一部分)。

quantile_transform

使用參數output_distribution ='normal'將數據映射到標準正態分布。

注釋

NaN被視為缺失值:忽略適合度,并保持變換值。

有關不同縮放器,轉換器和規范化器的比較,請參閱examples/preprocessing/plot_all_scaling.py

參考資料

【1】 IK Yeo和RA Johnson,“新的功率轉換系列,可改善正態性或對稱性。”Biometrika,87(4),第954-959頁,(2000)。

【2】GEP Box和DR Cox,“轉型分析”,皇家統計學會雜志B,第26期,第211-252頁(1964年)。

示例

>>> import numpy as np
>>> from sklearn.preprocessing import power_transform
>>> data = [[12], [32], [45]]
>>> print(power_transform(data, method='box-cox'))
[[-1.332... -0.707...]
 [ 0.256... -0.707...]
 [ 1.076...  1.414...]]