本文簡要介紹python語言中 sklearn.preprocessing.KBinsDiscretizer
的用法。
用法:
class sklearn.preprocessing.KBinsDiscretizer(n_bins=5, *, encode='onehot', strategy='quantile', dtype=None)
將連續數據分檔為區間。
在用戶指南中閱讀更多信息。
- n_bins:int 或形狀類似數組 (n_features,),默認=5
要生產的箱子數量。如果
n_bins < 2
則引發 ValueError 。- encode:{‘onehot’, 'onehot-dense', ‘ordinal’}, 默認='onehot'
用於對轉換結果進行編碼的方法。
- ‘onehot’:使用one-hot編碼對變換後的結果進行編碼,並返回一個稀疏矩陣。忽略的特征總是堆疊在右側。
- ‘onehot-dense’:使用one-hot編碼對轉換後的結果進行編碼,並返回一個密集數組。忽略的特征總是堆疊在右側。
- ‘ordinal’:返回編碼為整數值的 bin 標識符。
- strategy:{‘uniform’, ‘quantile’, ‘kmeans’},默認='分位數'
用於定義 bin 寬度的策略。
- ‘uniform’:每個特征中的所有 bin 具有相同的寬度。
- ‘quantile’:每個特征中的所有 bin 具有相同數量的點。
- ‘kmeans’:每個 bin 中的值具有相同的一維 k-means 簇的最近中心。
- dtype:{np.float32, np.float64},默認=無
輸出所需的數據類型。如果為 None,則輸出 dtype 與輸入 dtype 一致。僅支持 np.float32 和 np.float64。
- bin_edges_:ndarray of ndarray of shape (n_features,)
每個 bin 的邊。包含不同形狀的數組
(n_bins_, )
忽略的特征將有空數組。- n_bins_:ndarray 形狀 (n_features,), dtype=np.int_
每個特征的 bin 數量。寬度太小(即 <= 1e-8)的 bin 將被刪除並發出警告。
- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。
參數:
屬性:
注意:
在特征
i
的 bin 邊中,第一個和最後一個值僅用於inverse_transform
。在變換期間,bin 邊擴展到:np.concatenate([-np.inf, bin_edges_[i][1:-1], np.inf])
如果您隻想預處理部分特征,可以將
KBinsDiscretizer
與ColumnTransformer
結合使用。KBinsDiscretizer
可能會產生恒定特征(例如,當encode = 'onehot'
和某些 bin 不包含任何數據時)。可以使用特征選擇算法(例如,VarianceThreshold
)刪除這些特征。例子:
>>> from sklearn.preprocessing import KBinsDiscretizer >>> X = [[-2, 1, -4, -1], ... [-1, 2, -3, -0.5], ... [ 0, 3, -2, 0.5], ... [ 1, 4, -1, 2]] >>> est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform') >>> est.fit(X) KBinsDiscretizer(...) >>> Xt = est.transform(X) >>> Xt array([[ 0., 0., 0., 0.], [ 1., 1., 1., 0.], [ 2., 2., 2., 1.], [ 2., 2., 2., 2.]])
有時將數據轉換回原始特征空間可能很有用。
inverse_transform
函數將分箱數據轉換為原始特征空間。每個值將等於兩個 bin 邊的平均值。>>> est.bin_edges_[0] array([-2., -1., 0., 1.]) >>> est.inverse_transform(Xt) array([[-1.5, 1.5, -3.5, -0.5], [-0.5, 2.5, -2.5, -0.5], [ 0.5, 3.5, -1.5, 0.5], [ 0.5, 3.5, -1.5, 1.5]])
相關用法
- Python sklearn KNeighborsTransformer用法及代碼示例
- Python sklearn KNeighborsRegressor用法及代碼示例
- Python sklearn KNeighborsRegressor.kneighbors用法及代碼示例
- Python sklearn KDTree用法及代碼示例
- Python sklearn KNeighborsClassifier.kneighbors用法及代碼示例
- Python sklearn KNeighborsClassifier用法及代碼示例
- Python sklearn KernelPCA用法及代碼示例
- Python sklearn KernelDensity用法及代碼示例
- Python sklearn KernelRidge用法及代碼示例
- Python sklearn KNeighborsRegressor.kneighbors_graph用法及代碼示例
- Python sklearn KNeighborsClassifier.kneighbors_graph用法及代碼示例
- Python sklearn KNNImputer用法及代碼示例
- Python sklearn KNeighborsTransformer.kneighbors_graph用法及代碼示例
- Python sklearn KMeans用法及代碼示例
- Python sklearn KernelCenterer用法及代碼示例
- Python sklearn KFold用法及代碼示例
- Python sklearn KNeighborsTransformer.kneighbors用法及代碼示例
- 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用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.preprocessing.KBinsDiscretizer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。