gpt4 book ai didi

python - GridsearchSV 可以包含 train_test_split 的随机化吗

转载 作者:行者123 更新时间:2023-12-01 08:53:05 25 4
gpt4 key购买 nike

使用 Sklearn,可以使用 GridSearchCV 来测试分类器函数的多个变量,例如:

parameters = {
'learning_rate': [0.001,0.005,0.003],
'n_estimators': [300,800,1200],
'criterion': ['friedman_mse','mse','mae'],
'verbose':[1],
'loss' : ['deviance','exponential'],
'random_state':[0]
}

GBC = GradientBoostingClassifier()
grid = GridSearchCV(GBC, parameters)
grid.fit(X,y ) # X = data, y = result
best_est = grid.best_estimator_
print(best_est)

predictions = best_est.predict(T) # T contains data to apply it on.

但是如果想要进行交叉验证怎么办?例如。与train_test_split类似的方式:

  X_train, X_test, y_train, y_test = train_test_split(X, y,  random_state=41)

这里我们有一个random_state(这可能会产生很大的影响)。是否可以将 GridSearchCV 包含在一些随机数数组中,以确保它能够在某些数据的训练/测试分割的“大多数”随机状态下以最佳方式工作?

郑重声明,我知道这不在 GridSearchCV 内部(或者据我所知),我在这里询问这样的方法可能是什么样子。也许有一些聪明的方法可以做到这一点?

最佳答案

您可以指定 ShuffleSplit 作为交叉验证生成器。

例如:

from sklearn.model_selection import GridSearchCV, ShuffleSplit

GBC = GradientBoostingClassifier()
grid = GridSearchCV(GBC,
param_grid=parameters,
cv=ShuffleSplit(train_size=X.shape[0],
test_size=.3,
n_splits=5,
random_state=41))
grid.fit(X, y)

More on ShuffleSplit here .

关于python - GridsearchSV 可以包含 train_test_split 的随机化吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52979988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com