【问题标题】:How to pass X_train + X_eval to Random Search CV fit method如何将 X_train + X_eval 传递给随机搜索 CV 拟合方法
【发布时间】:2020-08-01 11:46:37
【问题描述】:

我正在尝试将一组 [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

我已经尝试过使用 group field of fit 方法,但我遇到了另一个错误。有什么方法可以通过训练/测试以及他对随机搜索拟合方法的评估集吗?我不知道该怎么做。

【问题讨论】:

    标签: python machine-learning scikit-learn cross-validation xgboost


    【解决方案1】:

    也许我没有正确理解,但如果你想使用RandomizedSearchCV on 将训练和验证样本连接在一起,并在整个样本上使用 CV, 我建议使用np.concatenate 而不是列表理解,如下所示:

    # taking examples for your X_train, X_val, y_train and y_val
    import numpy as np
    X_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))
    

    您可以将datatarget 传递给 fit 方法。

    【讨论】:

    • 是的,就是这样。我教过我必须将它们作为列表或类似的形式一起传递。谢谢!
    猜你喜欢
    • 2021-06-11
    • 2020-06-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2019-11-11
    • 1970-01-01
    相关资源
    最近更新 更多