“ TypeError:'StratifiedShuffleSplit'对象不可迭代”的原因可能是什么?

Lea*_*uch 1 python-2.7 scikit-learn

我必须交付一个机器学习项目,并且收到了一个名为的文件tester.py。在另一个文件中完成代码后,我必须运行tester.py才能查看结果,但是出现错误:TypeError: 'StratifiedShuffleSplit' object is not iterable

我在另一个主题和网站上研究了此错误,解决方案始终相同:使用sklearn.model_selection导入GridSearchCV。自开始以来,我已经在这样做了,但是文件teste.py无法运行。

发生问题的来自teste.py的代码部分是:

def main():
    ### load up student's classifier, dataset, and feature_list
    clf, dataset, feature_list = load_classifier_and_data()
    ### Run testing script
    test_classifier(clf, dataset, feature_list)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我自己的代码工作正常。

有什么帮助吗?

小智 7

尝试更改以下tester.py行。当前版本StratifiedShuffleSplit的工作方式与开发tester.py时的预期方式不同。

[..]
from sklearn.model_selection import StratifiedShuffleSplit
[..]
#cv = StratifiedShuffleSplit(labels, folds, random_state = 42)
cv = StratifiedShuffleSplit(n_splits=folds, random_state=42)
[..]
#for train_idx, test_idx in cv:
for train_idx, test_idx in cv.split(features, labels):
[..]
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助