我正在尝试将数据拟合到,但cuml.ensemble.RandomForestClassifier
我不断收到错误消息:“标签需要是从 0 到唯一标签值数量的连续值”
我将 cudf.DataFrame 对象传递给具有相同行数但列数不同的函数。列标签从 0 开始,逐步增加 1 直到最后一列(在下面的示例中为 108)。我究竟做错了什么?我附上了我在下面传递的数据帧的打印输出和一些上下文代码:
clf1 = modelClass(max_depth=D1, random_state=random.randrange(0, 1024, 1), n_bins=15, n_streams=4, split_criterion=criterion, bootstrap=bootstrap, n_estimators=trs1)
clf1.fit(X1, Y1)
X1 的数据框如下所示:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.000000e-11 | 1.000000e-11 | 1.647421e-01 |
1 | 1.000000e-11 | 1.000000e-11 | 1.760000e-02 |
2 | 1.000000e-11 | 1.000000e-11 | -1.772000e-01 |
3 | 1.000000e-11 | 1.000000e-11 | 8.254000e-01 |
4 | 1.000000e-11 | 1.000000e-11 | 2.587000e-01 |
... | ... | ... | ... |
5402 | 1.000000e-11 | 1.000000e-11 | 1.704444e-01 |
5403 | 1.000000e-11 | 1.000000e-11 | -1.860000e-01 |
5404 | 0.000000e+00 | 1.000000e-11 | 1.229714e-01 |
5405 | 1.000000e-11 | 1.959500e-01 | 1.984667e-01 |
5406 | 1.000000e-11 | 1.000000e-11 | 1.000000e-11 |
[5407 行 x 3 列];dtype=('0', dtype('float64')); <cudf.core.dataframe._DataFrameLocIndexer 对象位于 0x7f9c3d0f3070>
Y1 的 Dataframe 如下所示:
0 | |
---|---|
0 | -2.0 |
1 | 4.0 |
2 | -3.0 |
3 | 1.0 |
4 | 0.0 |
... | ... |
5402 | 0.0 |
5403 | -2.0 |
5404 | 0.0 |
5405 | 0.0 |
5406 | 0.0 |
[5407 行 x 1 列];dtype=('0', dtype('float64')); <cudf.core.dataframe._DataFrameLocIndexer 对象位于 0x7f9c1b847b50>
系统信息:Ubuntu 20.04、Titan RTX、CUDA 11.5、Rapids 21.12 内置Conda、Python 3.8