我要求对数据集的属性进行等宽离散化,然后继续绘制数据集离散化与连续的绘制值。为此,我需要完整的离散值数据集,而不是稀疏矩阵
X,y = datasets[0]
enc = KBinsDiscretizer(n_bins=5 )
X_binned = enc.fit_transform(X)
print(pd.DataFrame.sparse.from_spmatrix(X_binned).shape)
print(X.shape)输出:
(100, 10)
(100, 2)谢谢
发布于 2020-04-27 23:03:43
问题是KBinsDiscretizer的默认编码方法是onehot,这意味着转换后的结果将是从每个特性获得的OneHot编码列。
可以将编码设置为ordinal,以便将每个存储箱编码为整数值,从而保留形状:
enc = KBinsDiscretizer(n_bins=5, encode='ordinal')
X_binned = enc.fit_transform(x)https://stackoverflow.com/questions/61461607
复制相似问题