Я имею дело с набором данных, состоящим из 13 функций и 550068 строк. Я выполнил k-кратную перекрестную проверку и выбрал значение k
равным 10, а затем выбрал лучшую модель с наименьшей среднеквадратичной ошибкой, в моем случае модель представляет собой регрессор с повышением градиента. Затем я сделал настройку гиперпараметров, вот мой код:
from sklearn.ensemble GradientBoostingRegressor
gradientboost = GradientBoostingRegressor(n_estimators = 300)
from sklearn.model_selection import RandomizedSearchCV
loss = ['ls', 'lad', 'huber']
n_estimators = [100, 500, 900, 1100, 1500]
max_depth = [2, 3, 5, 10, 15]
min_samples_leaf = [1, 2, 4, 6, 8]
min_samples_split = [2, 4, 6, 10]
max_features = ['auto', 'sqrt', 'log2', None]
# Define the grid of hyperparameters to search
hyperparameter_grid = {'loss': loss,
'n_estimators': n_estimators,
'max_depth': max_depth,
'min_samples_leaf': min_samples_leaf,
'min_samples_split': min_samples_split,
'max_features': max_features}
# Set up the random search with 4-fold cross validation
random_cv = RandomizedSearchCV(estimator=gradientboost,
param_distributions=hyperparameter_grid,
cv=4, n_iter=50,
scoring = 'neg_mean_absolute_error',n_jobs = 4,
verbose = 5,
return_train_score = True,
random_state=42)
random_cv.fit(features,target)
на настройку гиперпараметров уходит много времени, это заняло почти 48 часов, но еще не завершено. Я пробовал разные n_jobs и n_iters и значения cv, но процесс не ускоряется. введите здесь описание изображения. Я также разделил свой набор данных на 5 равных частей и попытался настроить параметры на одной части
dataframe_splits = np.array_split(dataframe, 5)
features = dataframe_splits[0].drop(columns=
['Purchase','User_ID', 'Product_ID'])
target = dataframe_splits[0]['Purchase']
Но это не работает. На одну часть тоже уходит много времени. Я использую ОС Windows10 и процессор Intel i5 7-го поколения. Может ли кто-нибудь помочь мне разобраться с этой проблемой. Заранее спасибо.