Add rmsle metric and reg:squaredlogerror objective (#4541)

This commit is contained in:
Jiaming Yuan
2019-06-11 05:48:27 +08:00
committed by GitHub
parent 9683fd433e
commit 2f1319f273
7 changed files with 92 additions and 9 deletions

View File

@@ -24,8 +24,9 @@ private[spark] trait LearningTaskParams extends Params {
/**
* Specify the learning task and the corresponding learning objective.
* options: reg:squarederror, reg:logistic, binary:logistic, binary:logitraw, count:poisson,
* multi:softmax, multi:softprob, rank:pairwise, reg:gamma. default: reg:squarederror
* options: reg:squarederror, reg:squaredlogerror, reg:logistic, binary:logistic, binary:logitraw,
* count:poisson, multi:softmax, multi:softprob, rank:pairwise, reg:gamma.
* default: reg:squarederror
*/
final val objective = new Param[String](this, "objective", "objective function used for " +
s"training, options: {${LearningTaskParams.supportedObjective.mkString(",")}",
@@ -56,7 +57,7 @@ private[spark] trait LearningTaskParams extends Params {
/**
* evaluation metrics for validation data, a default metric will be assigned according to
* objective(rmse for regression, and error for classification, mean average precision for
* ranking). options: rmse, mae, logloss, error, merror, mlogloss, auc, aucpr, ndcg, map,
* ranking). options: rmse, rmsle, mae, logloss, error, merror, mlogloss, auc, aucpr, ndcg, map,
* gamma-deviance
*/
final val evalMetric = new Param[String](this, "evalMetric", "evaluation metrics for " +
@@ -106,14 +107,14 @@ private[spark] trait LearningTaskParams extends Params {
private[spark] object LearningTaskParams {
val supportedObjective = HashSet("reg:linear", "reg:squarederror", "reg:logistic",
"binary:logistic", "binary:logitraw", "count:poisson", "multi:softmax", "multi:softprob",
"rank:pairwise", "rank:ndcg", "rank:map", "reg:gamma", "reg:tweedie")
"reg:squaredlogerror", "binary:logistic", "binary:logitraw", "count:poisson", "multi:softmax",
"multi:softprob", "rank:pairwise", "rank:ndcg", "rank:map", "reg:gamma", "reg:tweedie")
val supportedObjectiveType = HashSet("regression", "classification")
val evalMetricsToMaximize = HashSet("auc", "aucpr", "ndcg", "map")
val evalMetricsToMinimize = HashSet("rmse", "mae", "logloss", "error", "merror",
val evalMetricsToMinimize = HashSet("rmse", "rmsle", "mae", "logloss", "error", "merror",
"mlogloss", "gamma-deviance")
val supportedEvalMetrics = evalMetricsToMaximize union evalMetricsToMinimize