本文簡要介紹python語言中 sklearn.preprocessing.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)
使用分位數信息轉換特征。
此方法將特征轉換為遵循均勻或正態分布。因此,對於給定的特征,這種轉換往往會分散最常見的值。它還減少了(邊際)異常值的影響:因此這是一個強大的預處理方案。
轉換獨立地應用於每個特征。首先,使用特征的累積分布函數的估計值將原始值映射到均勻分布。然後使用相關的分位數函數將獲得的值映射到所需的輸出分布。低於或高於擬合範圍的新/未見數據的特征值將映射到輸出分布的邊界。請注意,此變換是非線性的。它可能會扭曲以相同尺度測量的變量之間的線性相關性,但會使以不同尺度測量的變量更直接地具有可比性。
在用戶指南中閱讀更多信息。
- X:{類數組,稀疏矩陣},形狀為 (n_samples, n_features)
要轉換的數據。
- axis:整數,默認=0
用於計算平均值和標準差的軸。如果為 0,則變換每個特征,否則(如果為 1)變換每個樣本。
- n_quantiles:int,默認 = 1000 或 n_samples
要計算的分位數。它對應於用於離散累積分布函數的地標數量。如果 n_quantiles 大於樣本數,則將 n_quantiles 設置為樣本數,因為較大數量的分位數不會更好地逼近累積分布函數估計器。
- output_distribution:{‘uniform’, ‘normal’},默認='uniform'
轉換後數據的邊際分布。選項為‘uniform’(默認)或‘normal’。
- ignore_implicit_zeros:布爾,默認=假
僅適用於稀疏矩陣。如果為 True,則丟棄矩陣的稀疏條目以計算分位數統計信息。如果為 False,這些條目將被視為零。
- subsample:整數,默認=1e5
用於估計分位數以提高計算效率的最大樣本數。請注意,value-identical 稀疏矩陣和密集矩陣的子采樣過程可能不同。
- random_state:int、RandomState 實例或無,默認=無
確定用於二次采樣和平滑噪聲的隨機數生成。有關詳細信息,請參閱
subsample
。傳遞 int 以獲得跨多個函數調用的可重現結果。見詞匯表- copy:布爾,默認=真
設置為 False 以執行就地轉換並避免複製(如果輸入已經是一個 numpy 數組)。如果為 True,則轉換
X
的副本,而原始X
保持不變- ..versionchanged::0.23
copy
的默認值在 0.23 中從 False 更改為 True。
- Xt:{ndarray, 稀疏矩陣} 形狀 (n_samples, n_features)
轉換後的數據。
參數:
返回:
注意:
NaNs 被視為缺失值:在擬合中忽略,並在變換中保持。
警告
數據泄露風險
不使用
quantile_transform
除非你知道你在做什麽。一個常見的錯誤是將其應用於整個數據前分為訓練集和測試集。這將使模型評估產生偏差,因為信息會從測試集泄漏到訓練集。一般來說,我們建議使用sklearn.preprocessing.QuantileTransformer在一個管道為了防止大多數數據泄露風險:pipe = make_pipeline(QuantileTransformer(), LogisticRegression())
.有關不同縮放器、轉換器和規範器的比較,請參閱示例/預處理/plot_all_scaling.py。
例子:
>>> 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([...])
相關用法
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
- Python sklearn SelfTrainingClassifier用法及代碼示例
- Python sklearn load_svmlight_file用法及代碼示例
- Python sklearn make_pipeline用法及代碼示例
- Python sklearn MultiTaskLasso用法及代碼示例
- Python sklearn KBinsDiscretizer用法及代碼示例
- Python sklearn power_transform用法及代碼示例
- Python sklearn PowerTransformer.inverse_transform用法及代碼示例
- Python sklearn IncrementalPCA用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.preprocessing.quantile_transform。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。