我尝试将一组 [X_train, X_val] 传递给 random_search.fit()
的 X 参数,并对 y 使用相同的操作,如下所示:random_search.fit(X=[X_train, X_val], y=[y_train, y_val])
但是当训练发生时,显示以下错误:
ValueError: 具有多个元素的数组的真值是模糊的。使用 a.any() 或 a.all()
在处理上述异常时,发生了另一个异常:
TypeError: 无法从列表初始化 DMatrix
我已经尝试使用 fit 方法的 group
字段,但得到了另一个错误。有没有办法将训练/测试及其评估集传递给 Random Search 的 fit 方法?我搞不清楚该怎么做。
回答:
也许我没有正确理解,但如果你想对训练和验证样本进行拼接,并对整个样本使用 CV,我建议使用 np.concatenate
而不是列表推导式,如下所示:
# 以你的 X_train, X_val, y_train 和 y_val 为例import numpy as npX_train = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])X_val = np.array([[1, 2, 3], [4, 5, 6]])y_train = np.array([10, 11, 12])y_val = np.array([13, 14])data = np.concatenate((X_train, X_val), axis=0)target = np.concatenate((y_train, y_val))
你可以将 data
和 target
传递给 fit 方法。