當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn power_transform用法及代碼示例


本文簡要介紹python語言中 sklearn.preprocessing.power_transform 的用法。

用法:

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

冪變換是一係列參數化、單調變換,用於使數據更豐富Gaussian-like。這對於建模與異方差(非常數方差)相關的問題或其他需要正態性的情況很有用。

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

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

默認情況下,zero-mean、unit-variance 標準化應用於轉換後的數據。

在用戶指南中閱讀更多信息。

參數

X形狀類似數組 (n_samples, n_features)

要使用冪變換進行變換的數據。

method{‘yeo-johnson’,‘box-cox’},默認=‘yeo-johnson’

功率變換方法。可用的方法有:

  • ‘yeo-johnson’ [1],適用於正值和負值
  • ‘box-cox’ [2],僅適用於嚴格正值
standardize布爾,默認=真

設置為 True 以將zero-mean、unit-variance 標準化應用於轉換後的輸出。

copy布爾,默認=真

設置為 False 以在轉換期間執行就地計算。

返回

X_transndarray 形狀(n_samples,n_features)

轉換後的數據。

注意

NaNs 被視為缺失值:在 fit 中忽略,並在 transform 中維護。

有關不同縮放器、轉換器和規範器的比較,請參閱示例/預處理/plot_all_scaling.py。

參考

1

我知道。 Yeo 和 R.A.約翰遜,“一個新的權力轉換家族,以改善常態或對稱性。” Biometrika, 87(4), pp.954-959, (2000)。

2

G.E.P. Box 和 D.R.考克斯,“變革分析”,皇家統計學會雜誌 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...]]

警告

數據泄露風險。不使用power_transform除非你知道你在做什麽。一個常見的錯誤是將其應用於整個數據分為訓練集和測試集。這將使模型評估產生偏差,因為信息會從測試集泄漏到訓練集。一般來說,我們建議使用sklearn.preprocessing.PowerTransformer在一個管道為了防止大多數數據泄露風險,例如:pipe = make_pipeline(PowerTransformer(), LogisticRegression()).

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.preprocessing.power_transform。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。