“TypeError:'StratifiedShuffleSplit'对象不可迭代”的原因可能是啥?
Posted
技术标签:
【中文标题】“TypeError:\'StratifiedShuffleSplit\'对象不可迭代”的原因可能是啥?【英文标题】:What could be the reason for "TypeError: 'StratifiedShuffleSplit' object is not iterable"?“TypeError:'StratifiedShuffleSplit'对象不可迭代”的原因可能是什么? 【发布时间】:2019-05-22 18:27:24 【问题描述】:我必须交付一个机器学习项目,我收到了一个名为 tester.py
的文件。在另一个文件中编写完代码后,我必须运行 tester.py 才能查看结果,但出现错误:TypeError: 'StratifiedShuffleSplit' object is not iterable
我在另一个主题和网站上研究过这个错误,解决方法总是一样的:使用 sklearn.model_selection 导入 GridSearchCV。从一开始我就已经这样做了,但是文件 tester.py 没有运行。
tester.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()
我自己的代码运行良好。
有什么帮助吗?
【问题讨论】:
显示完整的堆栈跟踪和使用 StratifiedShuffleSplit 的实际代码。 【参考方案1】:尝试更改 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):
[..]
希望对你有用
【讨论】:
只是想说这是适用于 Python 3 的 Udacity ML 项目的最佳解决方案。我遇到了同样的问题,我可以确认这在 19 年 2 月仍然有效。谢谢,耶稣! 我验证了建议的解决方案适用于 Python 2.7.17。以上是关于“TypeError:'StratifiedShuffleSplit'对象不可迭代”的原因可能是啥?的主要内容,如果未能解决你的问题,请参考以下文章