@Override
public GeneralRegressionModel encodeModel(Schema schema){
GeneralizedLinearRegressionModel model = getTransformer();
String targetCategory = null;
MiningFunction miningFunction = getMiningFunction();
switch(miningFunction){
case CLASSIFICATION:
CategoricalLabel categoricalLabel = (CategoricalLabel)schema.getLabel();
if(categoricalLabel.size() != 2){
throw new IllegalArgumentException();
}
targetCategory = categoricalLabel.getValue(1);
break;
default:
break;
}
List<Feature> features = new ArrayList<>(schema.getFeatures());
List<Double> coefficients = new ArrayList<>(VectorUtil.toList(model.coefficients()));
RegressionTableUtil.simplify(this, targetCategory, features, coefficients);
GeneralRegressionModel generalRegressionModel = new GeneralRegressionModel(GeneralRegressionModel.ModelType.GENERALIZED_LINEAR, miningFunction, ModelUtil.createMiningSchema(schema.getLabel()), null, null, null)
.setDistribution(parseFamily(model.getFamily()))
.setLinkFunction(parseLinkFunction(model.getLink()))
.setLinkParameter(parseLinkParameter(model.getLink()));
GeneralRegressionModelUtil.encodeRegressionTable(generalRegressionModel, features, coefficients, model.intercept(), targetCategory);
return generalRegressionModel;
}