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) 轉換后的數據。 |
另見
與Transformer API等效的轉換(例如,作為預處理sklearn.pipeline.Pipeline
的一部分)。
使用參數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 = [[1, 2], [3, 2], [4, 5]]
>>> print(power_transform(data, method='box-cox'))
[[-1.332... -0.707...]
[ 0.256... -0.707...]
[ 1.076... 1.414...]]