如何使用for循环生成包含train_score和test_score的元组列表
修改方案
只需要调整循环内的列表追加逻辑,将原来单独追加test_score的操作,改为追加由train_score和test_score组成的元组即可。
修改后的完整代码如下:
import numpy as np import pandas as pd from sklearn import tree from sklearn.tree import DecisionTreeClassifier results = [] for i in range(1, 11): clf = DecisionTreeClassifier(max_depth = i, random_state=0).fit(X_train, y_train) test_score = clf.score(X_test, y_test) train_score = clf.score(X_train, y_train) # 按(train_score, test_score)格式组装元组后存入列表 results.append( (train_score, test_score) ) results
补充说明
- 原代码中的
list(range(1, 11))可以保留,也可以简化为range(1,11),Python3中range本身是可迭代对象,无需转list即可直接遍历,两种写法均不影响运行。 - 如果后续需要单独提取某一项的分数,可通过索引取值:
- 取第n个(对应max_depth为n)的训练分数:
results[n-1][0] - 取第n个(对应max_depth为n)的测试分数:
results[n-1][1]
内容的提问来源于stack exchange,提问作者wellsinsideout
相关产品推荐
相关产品推荐

