【发布时间】:2018-08-14 08:32:38
【问题描述】:
有没有办法使用 sklearn 实现的 kf = KFold(n_splits=10) 的 10 个 Kfolds 中的 8 个中的训练子集来训练模型?
我想将我的数据分成三个子集:训练、验证和测试(我认为这可以通过使用 train_test_split 两次来完成......)。
训练集用于拟合模型,验证集用于调整参数,测试集用于评估最终模型的泛化误差。
但我想知道是否有一种方法可以只用 10 次中的 8 次进行训练并获得错误/准确度,在 1 次中对其进行验证,最后在最后一次进行测试,以获得错误/准确性。
我的想法见下文:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=1)
clf = tree.DecisionTreeClassifier(criterion = "entropy", max_depth = 3)
kf = KFold(n_splits=10, shuffle = False, random_state = 0) #define number of splits
kf.get_n_splits(X) #to check how many splits will be done.
for train, test in kf.split(X_train, y_train):
【问题讨论】:
-
“调整参数”到底是什么意思?您是指分类器的超参数吗?
标签: python scikit-learn