从 RandomizedSearchCV 重现模型结果
Reproducing Model results from RandomizedSearchCV
我已经使用 RandomizedSearchCV 调整我的随机森林模型的参数,如下面的代码单元所示:
rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid,
n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)
rf_random.fit(X_train[rf_cols], y_train)
事实证明,rf_random 模型优于我手动训练的任何具有相同参数的模型,这些参数是使用
检索的
rf_random.best_params_
我需要重现我使用 RandomizedSearchCV 所做的准确预测,但我无法这样做,主要有两个原因:
- best_params_ 各不相同 运行
- 我无法理解 RandomizedSearchCV 如何将数据拆分为训练集和验证集,这意味着我几乎不可能训练一个行为相同的新模型。
我能做什么?我还需要哪些信息才能重现结果?或者甚至可以从 RandomizedSearchCV 重现结果,尽管我已将 random_state 固定为 42?如果我需要重现结果,我应该坚持使用 GridSearchCV 吗?
我相信您正在寻找 RandomizedSearchCV
的 best_estimator_
属性,它将 return 在遗漏数据上得分最高的拟合估计量:
kf = KFold(n_splits=3, random_state=42)
rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid,
n_iter = 100, cv = kf, verbose=2, random_state=42, n_jobs = -1)
rf_random.fit(X_train[rf_cols], y_train)
tuned_rf = rf_random.best_estimator_
for train_index, test_index in kf.split(X_train[rf_cols], y_train):
# use train and test indices here
我已经使用 RandomizedSearchCV 调整我的随机森林模型的参数,如下面的代码单元所示:
rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid,
n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)
rf_random.fit(X_train[rf_cols], y_train)
事实证明,rf_random 模型优于我手动训练的任何具有相同参数的模型,这些参数是使用
检索的rf_random.best_params_
我需要重现我使用 RandomizedSearchCV 所做的准确预测,但我无法这样做,主要有两个原因:
- best_params_ 各不相同 运行
- 我无法理解 RandomizedSearchCV 如何将数据拆分为训练集和验证集,这意味着我几乎不可能训练一个行为相同的新模型。
我能做什么?我还需要哪些信息才能重现结果?或者甚至可以从 RandomizedSearchCV 重现结果,尽管我已将 random_state 固定为 42?如果我需要重现结果,我应该坚持使用 GridSearchCV 吗?
我相信您正在寻找 RandomizedSearchCV
的 best_estimator_
属性,它将 return 在遗漏数据上得分最高的拟合估计量:
kf = KFold(n_splits=3, random_state=42)
rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid,
n_iter = 100, cv = kf, verbose=2, random_state=42, n_jobs = -1)
rf_random.fit(X_train[rf_cols], y_train)
tuned_rf = rf_random.best_estimator_
for train_index, test_index in kf.split(X_train[rf_cols], y_train):
# use train and test indices here