变量grid.best_estimator_包含从GridSearchCV中找到的决策树模型
for subset in range(len(smol_X_train)):
temp_tree = grid.best_estimator_.fit(smol_X_train[subset], smol_y_train[subset])
pred = temp_tree.predict(X_test)
accuracy = accuracy_score(y_test, pred)
print(accuracy)产出-
0.827
0.7025
0.782
0.7205
..
..
0.8365
0.8395 有一份名单-
tree_list = []
for subset in range(len(smol_X_train)):
temp_tree = grid.best_estimator_.fit(smol_X_train[subset], smol_y_train[subset])
tree_list.append(temp_tree)
for one_tree in tree_list:
pred = one_tree.predict(X_test)
accuracy = accuracy_score(y_test, pred)
print(accuracy)产出-
0.8395
0.8395
0.8395
0.8395
..
..
0.8395
0.8395列表中的模型返回相同的分数(最后一个模型的分数)。
发布于 2020-08-31 11:29:19
克隆、拟合模型,然后将其添加到列表中,这就是其中的诀窍。而不是直接将模型附加到列表中。
from sklearn.base import clone
tree_list = []
for subset in range(len(smol_X_train)):
temp_tree = grid.best_estimator_.fit(smol_X_train[subset], smol_y_train[subset])
tree_list.append(clone(temp_tree))
pred = temp_tree.predict(X_test)
accuracy = accuracy_score(y_test, pred)
print(accuracy)https://stackoverflow.com/questions/63664173
复制相似问题