Scikit学习:对训练数据进行交叉验证,然后在测试数据上拟合模型



我希望对训练数据执行n次交叉验证方法,然后在测试子集上用优化的参数拟合模型。

from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn import linear_model
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import TimeSeriesSplit
iris = datasets.load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, 
random_state=1234)
lm = linear_model.LinearRegression() 
cv = TimeSeriesSplit(n_splits=10).split(y_train) # [Question: 1]
cv_score = cross_val_score(lm, X_train, y_train, cv=cv, scoring="r2")

我的问题是:

  • [问题:1]假设这是逻辑回归,这正确吗如果我想解释类不等式(检查代码的第12行(
  • [问题:2]如何将cross_val_score的模型拟合到X_test数据上,以预测y_test
  • [问题:1]假设这是逻辑回归,这正确吗如果我想解释类不等式(检查代码的第12行(

  • [问题:2]如何将cross_val_score的模型拟合到X_test数据上,以预测y_test

您将需要GridSearch。然后可以检索最佳模型并将其用于测试集

示例:

from sklearn import svm, datasets
from sklearn.model_selection import GridSearchCV
iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svc = svm.SVC(gamma="scale")
clf = GridSearchCV(svc, parameters, cv=5)
clf.fit(iris.data, iris.target)
y_test = clf.best_estimator_.predict(X_test)

更多信息:https://scikit-learn.org/stable/modules/cross_validation.html

最新更新