我有多个数据集,我想在这些数据集上训练多个模型。作为 data_1 的示例,我想训练随机森林和梯度增强,然后对 data_2 等进行同样的训练。
使用 multiprocessing.Pools 或 Processes 并行训练模型,还是一次循环一个模型,是最好或最有效的方法吗?机器学习模型是否应该避免多重处理,因为它们有一些内置的 scikit-learn 多重处理?
以下是我对使用池感兴趣的示例:
import numpy as np
import pandas as pd
import xgboost as xgb
from xgboost.sklearn import XGBClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV
import multiprocessing as mp
from multiprocessing import Pool, cpu_count
import os
import time
import threading
import inspect
from sklearn.datasets import load_iris
def apply_parallel_training(*fns, dataset):
"""
Enable parallel computation and return DataFrame.
"""
pool = Pool(mp.cpu_count()-1)
ret_list = []
for fn in fns:
results …Run Code Online (Sandbox Code Playgroud)