Поиск по сетке дает Нану лучший результат с логотипом или LOO, а не с кратным резюме ⇐ Python

Программы на Python
Anonymous
Поиск по сетке дает Нану лучший результат с логотипом или LOO, а не с кратным резюме

Сообщение Anonymous »

все
У меня проблема с оценкой nan R2 при поиске по сетке.

Код: Выделить всё

FDODB=pd.read_excel('Final Training Set for LOGO.xlsx')
array = FDODB.values
X = array[:,2:126]
Y = array[:,1]
Compd = array[:,0]

scaler = StandardScaler()
X = scaler.fit_transform(X)

params = {
'max_depth': [5,7,9],
'learning_rate': [0.03,0.05,0.07],
'n_estimators': [200,300,400],
'min_child_weight': [5,7,9],
'subsample': [0.3, 0.5, 0.7],
'base_score': [0.4, 0.5, 0.6]
}

xgb_reg = XGBRegressor(tree_method='hist', device='cuda')
logo = LeaveOneGroupOut()

grid_search = GridSearchCV(
estimator=xgb_reg,
param_grid=params,
scoring='r2',
error_score="raise",
cv=logo,
verbose=2,
n_jobs=-1,
return_train_score=True
)

grid_search.fit(X, Y, groups=Compd)

best_params = grid_search.best_params_
best_score = grid_search.best_score_

print('Best hyperparameters:', best_params)
print('Best R2 score:', best_score)
c:\Anaconda\envs\machinelearning\Lib\site-packages\sklearn\model_selection_search.py:1102: UserWarning: один или несколько результатов теста не являются окончательными: [nan ]
warnings.warn(
Лучшие гиперпараметры: {'base_score': 0,5, 'learning_rate': 0,03, 'max_length': 8, 'min_child_weight': 6, 'n_estimators': 200, 'подвыборка' : 0,3>
Лучший результат R2: nan
вот мой код, когда я использовал 10-кратное CV для поиска по сетке, у меня возникли проблемы с получением баллов R2, но всякий раз. Я попробовал LOO или LOGO CV, все оценки R2 просто nan. Я проверил, есть ли в моем обучающем наборе значения nan, но все в порядке. Не могли бы вы помочь, какова возможная причина и как ее решить? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -k-fold-cv

Вернуться в «Python»