public class Leaderboard extends water.Keyed<Leaderboard>
Note that if a new Leaderboard is made for the same project_name it'll keep using the old model list, which allows us to run AutoML multiple times and keep adding to the leaderboard.
The models are returned sorted by either an appropriate default metric for the model category (auc, mean per class error, or mean residual deviance), or by a metric that's set via #setMetricAndDirection.
TODO: make this robust against removal of models from the DKV.
| Modifier and Type | Class and Description |
|---|---|
static class |
Leaderboard.LeaderboardKeyV3 |
| Modifier and Type | Field and Description |
|---|---|
protected static java.lang.String[] |
colFormatsBinomial |
protected static java.lang.String[] |
colFormatsMultinomial |
protected static java.lang.String[] |
colFormatsRegression |
protected static java.lang.String[] |
colTypesBinomial |
protected static java.lang.String[] |
colTypesMultinomial |
protected static java.lang.String[] |
colTypesRegression |
double[] |
logloss |
double[] |
mae |
double[] |
rmse
Additional metrics for the models in this leaderboard, in the same order as the models
rmse, mae, and rmsle for regression & logloss for binomial classification
|
double[] |
rmsle |
double[] |
sort_metrics
Sort metrics for the models in this leaderboard, in the same order as the models.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addModel(water.Key<hex.Model> key) |
void |
addModel(hex.Model model) |
void |
addModels(water.Key<hex.Model>[] newModels)
Add the given models to the leaderboard.
|
void |
addTwoDimTableRowBinomial(water.util.TwoDimTable table,
int row,
java.lang.String[] modelIDs,
double[] errors,
double[] otherErrors) |
void |
addTwoDimTableRowMultinomial(water.util.TwoDimTable table,
int row,
java.lang.String[] modelIDs,
double[] errors) |
void |
addTwoDimTableRowRegression(water.util.TwoDimTable table,
int row,
java.lang.String[] modelIDs,
double[] errors,
double[] rmse,
double[] mae,
double[] rmsle) |
protected static java.lang.String[] |
colHeaders(java.lang.String metric,
java.lang.String[] other_metric) |
protected static java.lang.String[] |
colHeadersMult(java.lang.String metric) |
static double[] |
defaultMetricForModel(hex.Model m) |
static double[] |
defaultMetricForModel(hex.Model m,
hex.ModelMetrics mm) |
static java.lang.String[] |
defaultMetricNameForModel(hex.Model m) |
void |
delete()
Delete everything in the DKV that this points to.
|
void |
deleteWithChildren() |
hex.Model |
getLeader() |
int |
getModelCount()
Return the number of models in this Leaderboard.
|
water.Key<hex.Model>[] |
getModelKeys() |
hex.Model[] |
getModels() |
hex.Model[] |
getModels(java.lang.String metric,
boolean sortDecreasing) |
static Leaderboard |
getOrMakeLeaderboard(java.lang.String project_name,
UserFeedback userFeedback,
water.fvec.Frame leaderboardFrame) |
static double[] |
getOtherMetrics(java.lang.String other_metric,
water.util.IcedHashMap<water.Key<hex.ModelMetrics>,hex.ModelMetrics> leaderboard_set_metrics,
water.fvec.Frame leaderboardFrame,
hex.Model[] models) |
java.lang.String |
getProject() |
double[] |
getSortMetrics() |
static double[] |
getSortMetrics(java.lang.String sort_metric,
water.util.IcedHashMap<water.Key<hex.ModelMetrics>,hex.ModelMetrics> leaderboard_set_metrics,
water.fvec.Frame leaderboardFrame,
hex.Model[] models) |
static java.lang.String |
idForProject(java.lang.String project_name) |
static water.util.TwoDimTable |
makeTwoDimTable(java.lang.String tableHeader,
java.lang.String sort_metric,
java.lang.String[] other_metric,
int length) |
water.Key<hex.Model>[] |
modelKeys(java.lang.String metric,
boolean sortDecreasing) |
java.lang.String |
rankTsv() |
void |
setDefaultMetricAndDirection(hex.Model m) |
void |
setMetricAndDirection(java.lang.String metric,
boolean sortDecreasing) |
void |
setMetricAndDirection(java.lang.String metric,
java.lang.String[] otherMetrics,
boolean sortDecreasing) |
java.lang.String |
timeTsv() |
java.lang.String |
toString() |
static java.lang.String |
toString(java.lang.String project_name,
hex.Model[] models,
java.lang.String fieldSeparator,
java.lang.String lineSeparator,
boolean includeTitle,
boolean includeHeader) |
java.lang.String |
toString(java.lang.String fieldSeparator,
java.lang.String lineSeparator) |
water.util.TwoDimTable |
toTwoDimTable() |
water.util.TwoDimTable |
toTwoDimTable(java.lang.String tableHeader,
boolean leftJustifyModelIds) |
checksum_impl, checksum, makeSchema, readAll_impl, readAll, remove_impl, remove, remove, remove, remove, writeAll_impl, writeAllpublic double[] sort_metrics
Updated inside addModels().
public double[] rmse
Updated inside addModels().
public double[] mae
public double[] rmsle
public double[] logloss
protected static final java.lang.String[] colTypesMultinomial
protected static final java.lang.String[] colFormatsMultinomial
protected static final java.lang.String[] colTypesBinomial
protected static final java.lang.String[] colFormatsBinomial
protected static final java.lang.String[] colTypesRegression
protected static final java.lang.String[] colFormatsRegression
public static Leaderboard getOrMakeLeaderboard(java.lang.String project_name, UserFeedback userFeedback, water.fvec.Frame leaderboardFrame)
public static java.lang.String idForProject(java.lang.String project_name)
public java.lang.String getProject()
public void setMetricAndDirection(java.lang.String metric,
java.lang.String[] otherMetrics,
boolean sortDecreasing)
public void setMetricAndDirection(java.lang.String metric,
boolean sortDecreasing)
public void setDefaultMetricAndDirection(hex.Model m)
public final void addModels(water.Key<hex.Model>[] newModels)
newModels - public void addModel(water.Key<hex.Model> key)
public void addModel(hex.Model model)
public water.Key<hex.Model>[] getModelKeys()
public water.Key<hex.Model>[] modelKeys(java.lang.String metric,
boolean sortDecreasing)
public hex.Model[] getModels()
public hex.Model[] getModels(java.lang.String metric,
boolean sortDecreasing)
public hex.Model getLeader()
public int getModelCount()
public double[] getSortMetrics()
public static double[] getOtherMetrics(java.lang.String other_metric,
water.util.IcedHashMap<water.Key<hex.ModelMetrics>,hex.ModelMetrics> leaderboard_set_metrics,
water.fvec.Frame leaderboardFrame,
hex.Model[] models)
public static double[] getSortMetrics(java.lang.String sort_metric,
water.util.IcedHashMap<water.Key<hex.ModelMetrics>,hex.ModelMetrics> leaderboard_set_metrics,
water.fvec.Frame leaderboardFrame,
hex.Model[] models)
public void delete()
public void deleteWithChildren()
public static double[] defaultMetricForModel(hex.Model m)
public static double[] defaultMetricForModel(hex.Model m,
hex.ModelMetrics mm)
public static java.lang.String[] defaultMetricNameForModel(hex.Model m)
public java.lang.String rankTsv()
public java.lang.String timeTsv()
protected static final java.lang.String[] colHeaders(java.lang.String metric,
java.lang.String[] other_metric)
protected static final java.lang.String[] colHeadersMult(java.lang.String metric)
public static final water.util.TwoDimTable makeTwoDimTable(java.lang.String tableHeader,
java.lang.String sort_metric,
java.lang.String[] other_metric,
int length)
public void addTwoDimTableRowMultinomial(water.util.TwoDimTable table,
int row,
java.lang.String[] modelIDs,
double[] errors)
public void addTwoDimTableRowBinomial(water.util.TwoDimTable table,
int row,
java.lang.String[] modelIDs,
double[] errors,
double[] otherErrors)
public void addTwoDimTableRowRegression(water.util.TwoDimTable table,
int row,
java.lang.String[] modelIDs,
double[] errors,
double[] rmse,
double[] mae,
double[] rmsle)
public water.util.TwoDimTable toTwoDimTable()
public water.util.TwoDimTable toTwoDimTable(java.lang.String tableHeader,
boolean leftJustifyModelIds)
public static java.lang.String toString(java.lang.String project_name,
hex.Model[] models,
java.lang.String fieldSeparator,
java.lang.String lineSeparator,
boolean includeTitle,
boolean includeHeader)
public java.lang.String toString(java.lang.String fieldSeparator,
java.lang.String lineSeparator)
public java.lang.String toString()
toString in class java.lang.Object