python - 用于随机森林回归器的 GPU
问题描述
我还是机器学习的新手,我之前的所有机器学习项目都在使用 CPU。现在,我开发了一个随机森林回归器,并使用 Optuna 优化了 18 个目标变量的超参数(每个模型单独训练)。然而,这似乎需要很长时间才能完成运行,尽管我的数据集中的行数只有 2,000 左右。我尝试使用 Google 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 随机森林实现,则否:如果需要,您可以阅读此文档。
但是一点点代码会更容易理解这个问题。
推荐阅读
- c# - 在实体框架中显示以字符串列表为参数的记录
- python - 拆分列表字符串并创建字典
- c# - 在 .NET Core 中同时使用 Active Directory 身份验证和个人用户帐户
- javascript - Javascript获取点击图片的url
- c# - 有没有办法可以将包含 LINQ where 子句的字符串添加到列表中?
- python - 如何从嵌套的 mongodb {'key': value} 对构建“值”数组?
- google-chrome - Chrome 扩展程序:检查用户是否评分
- ios - 在两个区域实现相同的类名
- python - python中Web自动化机器人的多线程或多处理?
- c# - 从由 system.io.file.readalltext() 读取的 Poweshell 脚本创建一个有效的系统路径