Python 随机森林回归器的GPU

Python 随机森林回归器的GPU,python,machine-learning,random-forest,Python,Machine Learning,Random Forest,我对机器学习还是个新手,以前所有的机器学习项目都使用CPU。现在,我开发了一个随机森林回归器,并使用Optuna优化18个目标变量的超参数(每个模型分别训练)。然而,这似乎需要很长时间才能完成运行,尽管我的数据集中的行数只有2000行左右。我试图用谷歌Colab的GPU来加速训练,但是我发现它对我的模型没用。有没有一种方法可以让我的随机森林模型使用GPU target_vars = df_crime.columns.tolist()[-18:] predictor_vars = df_crime

我对机器学习还是个新手,以前所有的机器学习项目都使用CPU。现在,我开发了一个随机森林回归器,并使用Optuna优化18个目标变量的超参数(每个模型分别训练)。然而,这似乎需要很长时间才能完成运行,尽管我的数据集中的行数只有2000行左右。我试图用谷歌Colab的GPU来加速训练,但是我发现它对我的模型没用。有没有一种方法可以让我的随机森林模型使用GPU

target_vars = df_crime.columns.tolist()[-18:]
predictor_vars = df_crime.columns.tolist()[:-18]

def otimize_RF(trial, x, y):
   criterion = trial.suggest_categorical('criterion', ['mse', 'mae'])
   n_estimators = trial.suggest_int('n_estimators', 10, 1500)
   max_depth = trial.suggest_int('max_depth', 3, 20)
   max_features = trial.suggest_uniform('max_features', 0.01, 1)

   model = RandomForestRegressor(
       criterion= criterion,
       n_estimators=n_estimators,
       max_depth=max_depth,
    max_features=max_features,
   )

   cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1)
   scores = cross_val_score(model, x, y, cv=cv, 
   scoring='neg_mean_squared_error')

   return -1 * np.mean(scores)


dict_ = dict()

for crime in target_vars:
   X = predictor_df_stand[df_crime[crime].notnull()]
   y = df_crime[crime][df_crime[crime].notnull()].values

   optimization_function = partial(otimize_RF, x=X, y=y)
   study = optuna.create_study(direction='minimize')
   study.optimize(optimization_function, n_trials=100)

   dict_2 = study.best_params 
   dict_2['mse'] = study.best_value
   dict_[crime] = dict_2

   print(dict_)

如果您使用sklearn随机林实现,否:如果需要,您可以阅读本文

但是一点代码就可以更简单地理解这个问题