Я имею дело с набором данных, состоящим из 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-го поколения. Может кто-нибудь помочь мне разобраться в этой проблеме.Заранее спасибо.