Я использую RandomForestRegressor для создания новых функций:
Старый скрипт занимает 20 минут, но он все еще завершен ...
**param_grid = {
'n_estimators': [10, 50, 100, 1000],
'max_depth' : [4,5,6,7,8],
}
def rfr_model(X, Y):
- Выполнить поиск по сетке
gsc = GridSearchCV(
estimator=RandomForestRegressor(),
param_grid=param_grid,
cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)
grid_result = gsc.fit(X, Y)
best_params = grid_result.best_params_
rfr = RandomForestRegressor(max_depth=best_params["max_depth"], n_estimators=best_params["n_estimators"],
random_state=False, verbose=False)
- Выполнить K-Fold CV
MSE = cross_val_score(rfr, X, Y, cv=5, scoring='neg_mean_squared_error')
return MSE
Однако теперь я хочу показать свои прогнозные значения, поэтому я добавил cross_val_predict, и модель никогда не завершится:
# Perform K-Fold CV
MAE = cross_val_score(rfr, X, Y, cv=5, scoring='neg_mean_absolute_error')
MSE = cross_val_score(rfr, X, Y, cv=5, scoring='neg_mean_squared_error')
prediction = cross_val_predict(rfr, X, Y, cv=5)
return print("MAE: ",MAE), print("MSE: ",MSE), prediction
Оба работают на:
**X2=pd.concat([x_test,x_train])
Y2=pd.concat([y_test,y_train])
X2 = X2.astype('float64')
Y2 = Y2.astype('float64').values.ravel()**
Есть идеи, как решить эту проблему?
PS: Я новичок, так что будьте осторожны со мной.