Leandro Baruch
Leandro Baruch

Reputation: 117

What could be the reason for "TypeError: 'StratifiedShuffleSplit' object is not iterable"?

I have to deliver a Machine Learning project, and I received a file called tester.py. After I've finished writing my code in another file, I have to run tester.py to see the results, but I am getting a error: TypeError: 'StratifiedShuffleSplit' object is not iterable

I have researched this error in another topics and website, the solution is always the same: use sklearn.model_selection to import GridSearchCV. I am already doing that since the beginning, but the file tester.py not run.

The part of code from tester.py that occurs the problem is:

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()

My own code works fine.

Any help?

Upvotes: 3

Views: 4192

Answers (1)

Jesus Sanz
Jesus Sanz

Reputation: 166

Try changing the following lines of tester.py The way of working of the current version of StratifiedShuffleSplit is different that the expected when tester.py was developed.

[..]
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):
[..]

I hope you find it useful

Upvotes: 15

Related Questions