如何解决尝试交叉验证时,值错误设置一个具有序列的数组元素
我正在尝试使用以下方法进行交叉验证:
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 举报,一经查实,本站将立刻删除。