package hex.api;
import water.H2O;
import hex.ModelBuilder;
import water.api.GridSearchHandler;
public class RegisterAlgos extends water.api.AbstractRegister {
// Register the algorithms and their builder handlers:
@Override public void register(String relativeResourcePath) throws ClassNotFoundException {
// List of algorithms
ModelBuilder[] algos = new ModelBuilder[]{
new hex.deeplearning.DeepLearning(true),
new hex.glm .GLM (true),
new hex.glrm .GLRM (true),
new hex.kmeans .KMeans (true),
new hex.naivebayes .NaiveBayes (true),
new hex.pca .PCA (true),
new hex.svd .SVD (true),
new hex.tree.drf .DRF (true),
new hex.tree.gbm .GBM (true),
new hex.aggregator .Aggregator (true),
new hex.deepwater .DeepWater (true),
new hex.word2vec .Word2Vec (true),
new hex.ensemble .StackedEnsemble(true),
new hex.klime .KLime (true),
};
// "Word2Vec", "Example", "Grep"
for (ModelBuilder algo : algos) {
String base = algo.getClass().getSimpleName();
String lbase = base.toLowerCase();
Class<? extends water.api.Handler> bh_clz = water.api.ModelBuilderHandler.class;
int version = 3;
if( base.equals("SVD") ) version = 99; // SVD is experimental still
if( base.equals("Aggregator") ) version = 99; // Aggregator is experimental still
if( base.equals("StackedEnsemble") ) version = 99; // StackedEnsemble is experimental still
H2O.register("POST /"+version+"/ModelBuilders/"+lbase, bh_clz, "train",
"train_" + lbase,
"Train a " + base + " model.");
H2O.register("POST /"+version+"/ModelBuilders/"+lbase+"/parameters", bh_clz, "validate_parameters",
"validate_" + lbase,
"Validate a set of " + base + " model builder parameters.");
// Grid search is experimental feature
H2O.register("POST /99/Grid/"+lbase, GridSearchHandler.class, "train",
"grid_search_" + lbase,
"Run grid search for "+base+" model.");
}
H2O.register("POST /3/MakeGLMModel", MakeGLMModelHandler.class, "make_model", "make_glm_model",
"Make a new GLM model based on existing one");
H2O.register("GET /3/GetGLMRegPath", MakeGLMModelHandler.class, "extractRegularizationPath",
"glm_regularization_path",
"Get full regularization path");
H2O.register("GET /3/ComputeGram", MakeGLMModelHandler.class, "computeGram",
"weighted_gram_matrix",
"Get weighted gram matrix");
H2O.register("GET /3/Word2VecSynonyms", Word2VecHandler.class, "findSynonyms", "word2vec_synonyms",
"Find synonyms using a word2vec model");
H2O.register("GET /3/Word2VecTransform", Word2VecHandler.class, "transform", "word2vec_transform",
"Transform words to vectors using a word2vec model");
H2O.register("POST /3/DataInfoFrame",MakeGLMModelHandler.class, "getDataInfoFrame", "glm_datainfo_frame",
"Test only");
H2O.register("POST /3/LeaveOneCovarOut", LeaveOneCovarOutHandler.class, "getLoco","loco",
"Conduct Leave One Covariate Out (LOCO) Analysis");
}
}