【发布时间】:2018-10-03 23:50:40
【问题描述】:
假设我有一个包含以下行的训练数据集(数据集中的几个样本):
X1 X2 X3 Y
1 44.9 44.9 32.49370277
8 402.4 1 28.79444926
2 19.1 14 21.89679219
1 -26.3 11.3 20.36124795
1 -19.4 9.2 18.72667562
2 4.1 2.1 16.93972179
0 -1.2 1.2 16.59192825
1 3.4 3.4 16.43835616
3 7.8 4.6 16.35924841
我有三个变量(X1 到 X3)作为我的特征和一个目标变量(Y)。当我在数据集(包括超过 10,000 个样本)上训练模型时,我发现这些特征之间没有很强的相关性。
现在,我想对每一列(X1、X2 和 X3)中的值进行分组,看看它是否会影响我的模型的结果。我想知道sklearn中是否有任何功能可以做到这一点?一个函数/方法,它对每列的值进行分箱/分组,并为我提供这三个特征(X1 到 X3)的所有可能分箱的组合,以便我可以对它们进行全部测试并找到最佳模型。
我注意到在 sklearn 中有一个名为 KBinsDiscretizer 的函数用于分箱,我应该将其用于我提到的目的吗?如果是,我应该如何选择垃圾箱的数量?基本上我想知道“binning”是否是我应该寻找的关键字,以便对数据集中的特征值进行分组以用于训练模型?值可以是连续的或离散的。
如果 python 中有任何其他库/包可以执行我所描述的操作,那也会很有帮助。
【问题讨论】:
标签: python machine-learning scikit-learn binning