属性错误: 'cupy.core.core.ndarray'对象没有属性'iloc'



我正在尝试将数据拆分为训练和验证数据,为此我使用cuml.preprocessing.model_selection模块中的train_test_split

但出现错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-317-4e11838456ea> in <module>
----> 1 X_train, X_test, y_train, y_test = train_test_split(train_dfIF,train_y, test_size=0.20, random_state=42)
/opt/conda/lib/python3.7/site-packages/cuml/preprocessing/model_selection.py in train_test_split(X, y, test_size, train_size, shuffle, random_state, seed, stratify)
454         X_train = X.iloc[0:train_size]
455         if y is not None:
--> 456             y_train = y.iloc[0:train_size]
457 
458     if hasattr(X, "__cuda_array_interface__") or 
AttributeError: 'cupy.core.core.ndarray' object has no attribute 'iloc'

虽然我没有使用iloc。

这是代码:

from cuml.preprocessing.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(train_dfIF,train_y, test_size=0.20, random_state=42)

其中CCD_ 3是cudf DataFrame,而CCD_。

如果X参数是数据帧,则不能(当前(将数组传递给y参数。我建议传递两个数据帧或两个数组,而不是每个数组一个。

from cuml.preprocessing.model_selection import train_test_split
import cudf
import cupy as cp
df = cudf.DataFrame({
"a":range(5),
"b":range(5)
})
y = cudf.Series(range(5))
# train_test_split(df, y.values, test_size=0.20, random_state=42) # fail
X_train, X_test, y_train, y_test = train_test_split(df, y, test_size=0.20, random_state=42) # succeed
X_train, X_test, y_train, y_test = train_test_split(df.values, y.values, test_size=0.20, random_state=42) # succeed

最新更新