GridsearchCV Отрицательный счет - PullRequest
0 голосов
/ 31 января 2019

Я использую sklearn's GridSearchCV , чтобы получить лучшие параметры для моей Случайного леса Модель.

Ниже мой код

model = RandomForestRegressor(random_state = 1, n_jobs = -1) 
param_grid = {"n_estimators": [5, 10]}



for parameter, param_range in dict.items(param_grid):   
    #get_optimum_range(parameter, param_range, RFReg, index)

    grid_search = GridSearchCV(estimator=model, param_grid = {parameter: param_range})
    grid_search.fit(X_train, y_train)
    results = pd.DataFrame(grid_search.cv_results_)

Myданные в результатах приведены ниже

enter image description here

Если вы заметите, мой mean_test_score отрицательный, а mean_train_score положительный.

Что может быть причиной того же самого?

Размеры моего информационного кадра

print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)

(538, 3)
(538,)
(112, 3)
(112,)

1 Ответ

0 голосов
/ 31 января 2019

В gridsearch CV, если вы не указали никакого оценщика, используется оценщик по умолчанию оценщика (здесь RandomForestRegressor): Для Случайного лесного регрессора счет по умолчанию представляет собой квадратный квадрат R: его также можно назвать коэффициентом детерминации.

Возвращает коэффициент определения R ^ 2 прогноза.

Коэффициент R ^ 2 определяется как (1 - u / v), где u - остаточная суммаsquares> ((y_true - y_pred) ** 2) .sum () и v - общая сумма квадратов ((y_true - y_true.mean ()) ** 2) .sum ().Наилучшая возможная оценка - 1,0, и она может быть отрицательной (поскольку модель может быть произвольно хуже).Постоянная модель, которая всегда прогнозирует ожидаемое значение y, независимо от входных объектов, получит оценку R ^ 2 0,0.

Квадрат R в основном представляет собой процент отклонения, объясненный вашей моделью.
Вы также можете увидеть, насколько лучше ваша регрессия по сравнению с простой моделью, предсказывающей всегда одно и то же значение (среднее значение) (то есть линия в 2D).

Если ваш квадрат R отрицателен, это означает, что ваша модель хуже, чем простая горизонтальная линия, это означает, что ваша модель не вписывается в ваши данные.
В вашем случае ваш поезд R ^ 2 довольно хороштак что это либо означает, что вам удается переписать свои данные (но это маловероятно), либо просто то, что данные испытаний не похожи на данные поездов.

...