package hex.klime;
import hex.Model;
import hex.MultiModelMojoWriter;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
public class KLimeMojoWriter extends MultiModelMojoWriter<KLimeModel, KLimeModel.KLimeParameters, KLimeModel.KLimeOutput> {
@SuppressWarnings("unused") // Called through reflection in ModelBuildersHandler
public KLimeMojoWriter() {}
public KLimeMojoWriter(KLimeModel model) {
super(model);
}
@Override
public String mojoVersion() {
return "1.00";
}
@Override
protected List<Model> getSubModels() {
LinkedList<Model> subModels = new LinkedList<>();
if (model._output._clustering != null)
subModels.add(model._output._clustering);
if (model._output._globalRegressionModel != null)
subModels.add(model._output._globalRegressionModel);
for (Model m : model._output._regressionModels)
if (m != null)
subModels.add(m);
return subModels;
}
@Override
protected void writeParentModelData() throws IOException {
writekv("cluster_num", model._output._regressionModels.length);
writekv("clustering_model", model._output._clustering._key);
writekv("global_regression_model", model._output._globalRegressionModel._key);
for (int i = 0; i < model._output._regressionModels.length; i++)
if (model._output._regressionModels[i] != null)
writekv("cluster_regression_model_" + i, model._output._regressionModels[i]._key);
}
}