【发布时间】:2019-03-29 12:25:47
【问题描述】:
使用 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 内(或据我所知),我在这里问这种方法可能是什么样的。也许有一些聪明的方法可以做到这一点?
【问题讨论】:
标签: python scikit-learn sklearn-pandas