本文整理汇总了Java中org.jpmml.converter.Schema.toAnonymousSchema方法的典型用法代码示例。如果您正苦于以下问题:Java Schema.toAnonymousSchema方法的具体用法?Java Schema.toAnonymousSchema怎么用?Java Schema.toAnonymousSchema使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.jpmml.converter.Schema
的用法示例。
在下文中一共展示了Schema.toAnonymousSchema方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: encodeModel
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
@Override
public MiningModel encodeModel(Schema schema){
List<? extends Regressor> estimators = getEstimators();
List<? extends Number> estimatorWeights = getEstimatorWeights();
Schema segmentSchema = schema.toAnonymousSchema();
List<Model> models = new ArrayList<>();
for(Regressor estimator : estimators){
Model model = estimator.encodeModel(segmentSchema);
models.add(model);
}
MiningModel miningModel = new MiningModel(MiningFunction.REGRESSION, ModelUtil.createMiningSchema(schema.getLabel()))
.setSegmentation(MiningModelUtil.createSegmentation(MultipleModelMethod.WEIGHTED_MEDIAN, models, estimatorWeights));
return miningModel;
}
示例2: encodeForest
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
private List<TreeModel> encodeForest(RGenericVector forest, MiningFunction miningFunction, ScoreEncoder scoreEncoder, Schema schema){
RNumberVector<?> numTrees = (RNumberVector<?>)forest.getValue("num.trees");
RGenericVector childNodeIDs = (RGenericVector)forest.getValue("child.nodeIDs");
RGenericVector splitVarIDs = (RGenericVector)forest.getValue("split.varIDs");
RGenericVector splitValues = (RGenericVector)forest.getValue("split.values");
RGenericVector terminalClassCounts = (RGenericVector)forest.getValue("terminal.class.counts", true);
Schema segmentSchema = schema.toAnonymousSchema();
List<TreeModel> treeModels = new ArrayList<>();
for(int i = 0; i < ValueUtil.asInt(numTrees.asScalar()); i++){
TreeModel treeModel = encodeTreeModel(miningFunction, scoreEncoder, (RGenericVector)childNodeIDs.getValue(i), (RNumberVector<?>)splitVarIDs.getValue(i), (RNumberVector<?>)splitValues.getValue(i), (terminalClassCounts != null ? (RGenericVector)terminalClassCounts.getValue(i) : null), segmentSchema);
treeModels.add(treeModel);
}
return treeModels;
}
示例3: encodeMiningModel
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
@Override
public MiningModel encodeMiningModel(List<Tree> trees, Integer numIteration, Schema schema){
Schema segmentSchema = schema.toAnonymousSchema();
MiningModel miningModel = super.encodeMiningModel(trees, numIteration, segmentSchema)
.setOutput(ModelUtil.createPredictedOutput(FieldName.create("lgbmValue"), OpType.CONTINUOUS, DataType.DOUBLE));
return MiningModelUtil.createRegression(miningModel, RegressionModel.NormalizationMethod.EXP, schema);
}
示例4: encodeDecisionTreeEnsemble
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
static
public <M extends Model<M> & TreeEnsembleModel<T>, T extends Model<T> & DecisionTreeModel> List<TreeModel> encodeDecisionTreeEnsemble(M model, PredicateManager predicateManager, Schema schema){
Schema segmentSchema = schema.toAnonymousSchema();
List<TreeModel> treeModels = new ArrayList<>();
T[] trees = model.trees();
for(T tree : trees){
TreeModel treeModel = encodeDecisionTree(tree, predicateManager, segmentSchema);
treeModels.add(treeModel);
}
return treeModels;
}
示例5: encodeMiningModel
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
@Override
public MiningModel encodeMiningModel(List<RegTree> regTrees, float base_score, Integer ntreeLimit, Schema schema){
Schema segmentSchema = schema.toAnonymousSchema();
MiningModel miningModel = createMiningModel(regTrees, base_score, ntreeLimit, segmentSchema)
.setOutput(ModelUtil.createPredictedOutput(FieldName.create("xgbValue"), OpType.CONTINUOUS, DataType.FLOAT));
return MiningModelUtil.createRegression(miningModel, getNormalizationMethod(), schema);
}
示例6: createMiningModel
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
static
protected MiningModel createMiningModel(List<RegTree> regTrees, float base_score, Integer ntreeLimit, Schema schema){
ContinuousLabel continuousLabel = (ContinuousLabel)schema.getLabel();
Schema segmentSchema = schema.toAnonymousSchema();
List<TreeModel> treeModels = new ArrayList<>();
if(ntreeLimit != null){
if(ntreeLimit > regTrees.size()){
throw new IllegalArgumentException("Tree limit " + ntreeLimit + " is greater than the number of trees");
}
regTrees = regTrees.subList(0, ntreeLimit);
}
for(RegTree regTree : regTrees){
TreeModel treeModel = regTree.encodeTreeModel(segmentSchema);
treeModels.add(treeModel);
}
MiningModel miningModel = new MiningModel(MiningFunction.REGRESSION, ModelUtil.createMiningSchema(continuousLabel))
.setMathContext(MathContext.FLOAT)
.setSegmentation(MiningModelUtil.createSegmentation(Segmentation.MultipleModelMethod.SUM, treeModels))
.setTargets(ModelUtil.createRescaleTargets(null, ValueUtil.floatToDouble(base_score), continuousLabel));
return miningModel;
}
示例7: encodeBagging
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
static
public <E extends Estimator> MiningModel encodeBagging(List<E> estimators, List<List<Integer>> estimatorsFeatures, Segmentation.MultipleModelMethod multipleModelMethod, MiningFunction miningFunction, Schema schema){
Schema segmentSchema = schema.toAnonymousSchema();
List<Model> models = new ArrayList<>();
for(int i = 0; i < estimators.size(); i++){
E estimator = estimators.get(i);
List<Integer> estimatorFeatures = estimatorsFeatures.get(i);
Schema estimatorSchema = segmentSchema.toSubSchema(Ints.toArray(estimatorFeatures));
Model model = estimator.encodeModel(estimatorSchema);
models.add(model);
}
MiningModel miningModel = new MiningModel(miningFunction, ModelUtil.createMiningSchema(schema.getLabel()))
.setSegmentation(MiningModelUtil.createSegmentation(multipleModelMethod, models));
return miningModel;
}
示例8: encodeRegression
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
private MiningModel encodeRegression(RGenericVector forest, final Schema schema){
RNumberVector<?> leftDaughter = (RNumberVector<?>)forest.getValue("leftDaughter");
RNumberVector<?> rightDaughter = (RNumberVector<?>)forest.getValue("rightDaughter");
RDoubleVector nodepred = (RDoubleVector)forest.getValue("nodepred");
RNumberVector<?> bestvar = (RNumberVector<?>)forest.getValue("bestvar");
RDoubleVector xbestsplit = (RDoubleVector)forest.getValue("xbestsplit");
RIntegerVector nrnodes = (RIntegerVector)forest.getValue("nrnodes");
RDoubleVector ntree = (RDoubleVector)forest.getValue("ntree");
ScoreEncoder<Double> scoreEncoder = new ScoreEncoder<Double>(){
@Override
public String encode(Double value){
return ValueUtil.formatValue(value);
}
};
int rows = nrnodes.asScalar();
int columns = ValueUtil.asInt(ntree.asScalar());
Schema segmentSchema = schema.toAnonymousSchema();
List<TreeModel> treeModels = new ArrayList<>();
for(int i = 0; i < columns; i++){
TreeModel treeModel = encodeTreeModel(
MiningFunction.REGRESSION,
scoreEncoder,
FortranMatrixUtil.getColumn(leftDaughter.getValues(), rows, columns, i),
FortranMatrixUtil.getColumn(rightDaughter.getValues(), rows, columns, i),
FortranMatrixUtil.getColumn(nodepred.getValues(), rows, columns, i),
FortranMatrixUtil.getColumn(bestvar.getValues(), rows, columns, i),
FortranMatrixUtil.getColumn(xbestsplit.getValues(), rows, columns, i),
segmentSchema
);
treeModels.add(treeModel);
}
MiningModel miningModel = new MiningModel(MiningFunction.REGRESSION, ModelUtil.createMiningSchema(schema.getLabel()))
.setSegmentation(MiningModelUtil.createSegmentation(Segmentation.MultipleModelMethod.AVERAGE, treeModels));
return miningModel;
}
示例9: encodeClassification
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
private MiningModel encodeClassification(RGenericVector forest, final Schema schema){
RNumberVector<?> bestvar = (RNumberVector<?>)forest.getValue("bestvar");
RNumberVector<?> treemap = (RNumberVector<?>)forest.getValue("treemap");
RIntegerVector nodepred = (RIntegerVector)forest.getValue("nodepred");
RDoubleVector xbestsplit = (RDoubleVector)forest.getValue("xbestsplit");
RIntegerVector nrnodes = (RIntegerVector)forest.getValue("nrnodes");
RDoubleVector ntree = (RDoubleVector)forest.getValue("ntree");
int rows = nrnodes.asScalar();
int columns = ValueUtil.asInt(ntree.asScalar());
final
CategoricalLabel categoricalLabel = (CategoricalLabel)schema.getLabel();
ScoreEncoder<Integer> scoreEncoder = new ScoreEncoder<Integer>(){
@Override
public String encode(Integer value){
return categoricalLabel.getValue(value - 1);
}
};
Schema segmentSchema = schema.toAnonymousSchema();
List<TreeModel> treeModels = new ArrayList<>();
for(int i = 0; i < columns; i++){
List<? extends Number> daughters = FortranMatrixUtil.getColumn(treemap.getValues(), 2 * rows, columns, i);
TreeModel treeModel = encodeTreeModel(
MiningFunction.CLASSIFICATION,
scoreEncoder,
FortranMatrixUtil.getColumn(daughters, rows, 2, 0),
FortranMatrixUtil.getColumn(daughters, rows, 2, 1),
FortranMatrixUtil.getColumn(nodepred.getValues(), rows, columns, i),
FortranMatrixUtil.getColumn(bestvar.getValues(), rows, columns, i),
FortranMatrixUtil.getColumn(xbestsplit.getValues(), rows, columns, i),
segmentSchema
);
treeModels.add(treeModel);
}
MiningModel miningModel = new MiningModel(MiningFunction.CLASSIFICATION, ModelUtil.createMiningSchema(categoricalLabel))
.setSegmentation(MiningModelUtil.createSegmentation(Segmentation.MultipleModelMethod.MAJORITY_VOTE, treeModels))
.setOutput(ModelUtil.createProbabilityOutput(DataType.DOUBLE, categoricalLabel));
return miningModel;
}
示例10: createMiningModel
import org.jpmml.converter.Schema; //导入方法依赖的package包/类
static
protected MiningModel createMiningModel(List<Tree> trees, Integer numIteration, Schema schema){
ContinuousLabel continuousLabel = (ContinuousLabel)schema.getLabel();
Schema segmentSchema = schema.toAnonymousSchema();
PredicateManager predicateManager = new PredicateManager();
List<TreeModel> treeModels = new ArrayList<>();
if(numIteration != null){
if(numIteration > trees.size()){
throw new IllegalArgumentException("Tree limit " + numIteration + " is greater than the number of trees");
}
trees = trees.subList(0, numIteration);
}
for(Tree tree : trees){
TreeModel treeModel = tree.encodeTreeModel(predicateManager, segmentSchema);
treeModels.add(treeModel);
}
MiningModel miningModel = new MiningModel(MiningFunction.REGRESSION, ModelUtil.createMiningSchema(continuousLabel))
.setSegmentation(MiningModelUtil.createSegmentation(Segmentation.MultipleModelMethod.SUM, treeModels));
return miningModel;
}