在使用机器学习技术进行分类和回归时阅读文档和程序我遇到了一些实际上对我来说很新的主题。似乎与培训和测试之前分割数据相关的推荐程序是将其分为三组不同的培训,验证和测试。由于这个程序对我有意义,我想知道我该如何处理这个问题。假设我们将数据分成这三组,因为我遇到了这种阅读sklearn
方法和提示
如果我们遵循一些有趣的方法,就像我在这里找到的那样:
Stratified Train/Validation/Test-split in scikit-learn
考虑到这一点,假设我们想要使用LogisticRegression
(实际上是任何分类器)构建分类器。就我而言,程序应该是这样的,对吧?:
# train a logistic regression model on the training set
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
logreg.fit(X_train, y_train)
现在,如果我们想要进行预测,我们可以使用:
# make class predictions for the testing set
y_pred_class = logreg.predict(X_test)
当需要估算模型的准确性时,常见的方法是:
# calculate accuracy
from sklearn import metrics
print(metrics.accuracy_score(y_test, y_pred_class))
这就是我的问题所在。之前拆分的验证集应该用于计算准确性或者使用Kfold cv以某种方式验证?例如,:
# Perform 10-fold cross validation
scores = cross_val_score(logreg, df, y, cv=10)
对这三套程序的任何暗示都会非常感激。我想到的是验证集应该与火车一起使用,但实际上不知道哪种方式。