Я пытаюсь выполнить алгоритм XGBoost для регрессии, и я хочу иметь реализацию для проверки нескольких метрик, и выполняется только 4 раза, когда предполагается выполнение 24 .Выход имеет даты, а конечный объект preds_dict [] имеет только 4 элемента, как показано в результатах выполнения ниже.
preds_dict = []
for subsample in (8, 10):
for gamma in range(0,1,5):
for colsample_bytree in range(8,10):
for max_depth in range(4,5):
parameters = {'colsample_bytree': colsample_bytree / 10.0,
'max_depth': max_depth,
'subsample': subsample / 10.0,
'reg_alpha': 0.3,
'gamma': gamma,
'n_estimators': 1000,
'learning_rate': 0.1,
'silent': True}
start_time = time.monotonic()
xgb = XGBRegressor(**parameters)
xgb.fit(X_train,y_train)
predictions = xgb.predict(X_test)
sum_errs = arraysum((y_test - predictions)**2)
stdev = sqrt(1/(len(y_test)-2) * sum_errs)
prediction = {}
prediction['max_depth'] = max_depth
prediction['colsample_bytree'] = colsample_bytree / 10.0
prediction['gamma'] = gamma
prediction['subsample'] = subsample / 10.0
#print('MAE: %.3f' % metrics.mean_absolute_error(y_test,predictions))
prediction['MAE'] = metrics.mean_absolute_error(y_test,predictions)
#print('MSE: %.3f' % metrics.mean_squared_error(y_test,predictions))
prediction['MSE'] = metrics.mean_squared_error(y_test,predictions)
#print('RMSE: %.3f' % np.sqrt(metrics.mean_squared_error(y_test,predictions)))
prediction['RMSE'] = np.sqrt(metrics.mean_squared_error(y_test,predictions))
#print('R2: %.3f' % metrics.r2_score(y_test,predictions))
prediction['R2'] = metrics.r2_score(y_test,predictions)
#print('SD: %.3f' % stdev)
prediction['SD'] = stdev
elapsed_time = time.monotonic() - start_time
print('Time: %.3f' % elapsed_time)
prediction['Time'] = elapsed_time
preds_dict.append(prediction)
Результат этого выполнения:
[{'MAE': 12.713975206895622,
'MSE': 294.93097406823347,
'R2': 0.8640914724519757,
'RMSE': 17.17355449719811,
'SD': 17.18134472417949,
'Time': 3.373633985998822,
'colsample_bytree': 0.8,
'gamma': 0,
'max_depth': 4,
'subsample': 0.8},
{'MAE': 12.629139921822985,
'MSE': 295.3937865569692,
'R2': 0.8638782016550591,
'RMSE': 17.187023784150913,
'SD': 17.19482012103823,
'Time': 3.5945449880000524,
'colsample_bytree': 0.9,
'gamma': 0,
'max_depth': 4,
'subsample': 0.8},
{'MAE': 12.819829216785898,
'MSE': 303.5407366360256,
'R2': 0.8601239673202291,
'RMSE': 17.422420515991043,
'SD': 17.43032363298448,
'Time': 3.1082309119992715,
'colsample_bytree': 0.8,
'gamma': 0,
'max_depth': 4,
'subsample': 1.0},
{'MAE': 12.91538407644789,
'MSE': 303.26353352229705,
'R2': 0.8602517065891805,
'RMSE': 17.414463342931274,
'SD': 17.422362850410774,
'Time': 3.336124154000572,
'colsample_bytree': 0.9,
'gamma': 0,
'max_depth': 4,
'subsample': 1.0}]