Когда я использую скоринг против метрик для оценки производительности ML - PullRequest
0 голосов
/ 05 ноября 2019

Привет, в чем принципиальная разница между «оценкой» и «метрикой». они используются для измерения производительности, но чем они отличаются?

, если вы видите пример

в приведенном ниже перекрестном значении, используется 'neg_mean_squared_error' для оценки

X = array[:, 0:13]
Y = array[:, 13]
seed = 7
kfold = model_selection.KFold(n_splits=10, random_state=seed)
model = LinearRegression()
scoring = 'neg_mean_squared_error'
results = model_selection.cross_val_score(model, X, Y, cv=kfold, scoring=scoring)
print("MSE: %.3f (%.3f)") % (results.mean(), results.std())

но в приведенном ниже примере xgboost я использую metrics = 'rmse'

cmatrix = xgb.DMatrix(data=X, label=y)
params = {'objective': 'reg:linear', 'max_depth': 3}
cv_results = xgb.cv(dtrain=cmatrix, params=params, nfold=3, num_boost_round=5, metrics='rmse', as_pandas=True, seed=123)

print(cv_results)

1 Ответ

1 голос
/ 05 ноября 2019

чем они отличаются?

Они не отличаются;на самом деле это просто разные термины, объявляющие одно и то же.

Если быть точным, оценка - это процесс , в котором измеряется производительность модели в соответствии снекоторые метрика (или оценка ). Выбор термина scikit-learn для аргумента scoring (как в вашем первом фрагменте) весьма неудачен (на самом деле он подразумевает оценку function ) как MSE (и его варианты, как отрицательные MSE и RMSE). ) являются метриками или баллами . Но на практике, как показано в ваших примерах, эти два термина используются как синонимы и часто взаимозаменяемы.

Реальное различие интересов здесь не между «счетом» и «метрикой», а между убытком (часто называемым стоимостью ) и такими показателями, какточность (для задач классификации);это часто является источником путаницы среди новых пользователей. Вы можете найти мои ответы в следующих темах полезными (игнорируйте упоминания Keras в некоторых заголовках, ответы обычно применимы):

...