尝试交叉验证时,值错误设置一个具有序列的数组元素

问题描述

我正在尝试使用以下方法进行交叉验证:

cv = RepeatedStratifiedKFold(n_splits=10,n_repeats=3,random_state=1)
rndm_forest1 = RandomForestClassifier(n_estimators=10)
scores_rf1 = cross_val_score(rndm_forest1,rnd_for_temp,rnd_for_op,scoring='roc_auc',cv=cv,n_jobs=-1)

所有必需的软件包都已导入。

完整的回溯如下:

Traceback (most recent call last):
  File "<ipython-input-1-0c4a3e59c0fe>",line 162,in <module>
    scores_rf1 = cross_val_score(rndm_forest1,n_jobs=-1)
  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py",line 402,in cross_val_score
    error_score=error_score)
  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py",line 240,in cross_validate
    for train,test in cv.split(X,y,groups))
  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py",line 930,in __call__
    self.retrieve()
  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py",line 833,in retrieve
    self._output.extend(job.get(timeout=self.timeout))
  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\externals\joblib\_parallel_backends.py",line 521,in wrap_future_result
    return future.result(timeout=timeout)
  File "C:\ProgramData\Anaconda3\lib\concurrent\futures\_base.py",line 432,in result
    return self.__get_result()
  File "C:\ProgramData\Anaconda3\lib\concurrent\futures\_base.py",line 384,in __get_result
    raise self._exception
ValueError: setting an array element with a sequence.

输入rnd_for_temp是一个数据帧,而rnd_for_op是一个单列数据帧。

我还尝试传递rnd_for_temp.values和rnd_for_op.values。第一个给出与数据帧尺寸一致的数组,第二个给出一维数组,我认为这是对目标变量的正确要求。在这种情况下,我仍然收到相同的错误消息。

关于如何克服这一点的任何建议?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)