本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。