python - Sci-Kit 学习 KBinsDicretizer 产生不同的形状
问题描述
我需要对数据集的属性进行等宽离散化,然后继续绘制离散化与连续的值数据集。为此我需要完整的离散值数据集而不是稀疏矩阵
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)
谢谢
解决方案
问题是KBinsDiscretizer
默认编码方法是onehot
,这意味着转换后的结果将是从每个特征获得的 OneHot 编码列。
您可以将编码设置为,ordinal
以便将每个 bin 编码为整数值,从而保留形状:
enc = KBinsDiscretizer(n_bins=5, encode='ordinal')
X_binned = enc.fit_transform(x)
推荐阅读
- node.js - 如何在 mongodb docker 映像中运行 nodejs 应用程序?
- ocaml - Z3Prover/z3 安装失败
- javascript - 在 Google Apps 脚本中从其他域访问 Gsuite 管理目录
- php - 为什么 laravel delete() 函数会出错?
- java - 带有对象的算术运算任务
- python - 在 Python 中使用 sklearn.linear_model.LinearRegression 时出现 ValueError
- ansible - 替换正则表达式 Ansible 中的嵌套变量 [模板错误
- kubernetes - 在 kops 部署的 AWS k8s 集群中,我应该使用哪个入口控制器来支持 WebSocket?
- r - 如何解决 grid.Call.graphics(C_setviewport, vp, TRUE) 中的错误错误
- zapier - 高级搜索:Airtable 到 Zapier