/** * @param miningSchema {@link MiningSchema} from a model * @return index of the {@link MiningField.UsageType#PREDICTED} feature */ public static Integer findTargetIndex(MiningSchema miningSchema) { List<MiningField> miningFields = miningSchema.getMiningFields(); for (int i = 0; i < miningFields.size(); i++) { if (miningFields.get(i).getUsageType() == MiningField.UsageType.PREDICTED) { return i; } } return null; }
return new MiningSchema(miningFields);
@Override public VisitorAction visit(MiningSchema miningSchema){ if(miningSchema.hasMiningFields()){ List<MiningField> miningFields = miningSchema.getMiningFields(); for(ListIterator<MiningField> it = miningFields.listIterator(); it.hasNext(); ){ it.set(intern(it.next())); } } return super.visit(miningSchema); }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasMiningFields()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getMiningFields()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
List<MiningField> miningFields = miningSchema.getMiningFields(); MiningField miningField = new MiningField(activeFieldName); miningSchema.addMiningFields(miningField);
MiningSchema miningSchema = new MiningSchema() .addMiningFields( new MiningField(temperature), new MiningField(humidity),
@Override public MiningSchema build(BasicML basicML) { MiningSchema miningSchema = new MiningSchema(); for(ColumnConfig columnConfig: columnConfigList) { if(columnConfig.isFinalSelect() || columnConfig.isTarget()) { MiningField miningField = new MiningField(); // TODO, how to support segment variable in tree model, here should be changed miningField.setName(FieldName.create(CommonUtils.getSimpleColumnName(columnConfig.getColumnName()))); miningField.setOptype(getOptype(columnConfig)); if(columnConfig.isNumerical()) { miningField.setMissingValueReplacement(String.valueOf(columnConfig.getColumnStats().getMean())); } else { miningField.setMissingValueReplacement(""); } if(columnConfig.isFinalSelect()) { miningField.setUsageType(FieldUsageType.ACTIVE); } else if(columnConfig.isTarget()) { miningField.setUsageType(FieldUsageType.TARGET); } miningSchema.withMiningFields(miningField); } } return miningSchema; } }
@Override public VisitorAction visit(MiningSchema miningSchema){ if(!miningSchema.hasMiningFields()){ return VisitorAction.SKIP; } return super.visit(miningSchema); } }
@Override public VisitorAction visit(MiningSchema miningSchema){ if(miningSchema.hasMiningFields()){ List<MiningField> miningFields = miningSchema.getMiningFields(); for(ListIterator<MiningField> it = miningFields.listIterator(); it.hasNext(); ){ it.set(intern(it.next())); } } return super.visit(miningSchema); }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasMiningFields()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getMiningFields()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
List<MiningField> miningFields = miningSchema.getMiningFields(); MiningField miningField = new MiningField(activeFieldName); miningSchema.addMiningFields(miningField);
@Override public MiningSchema build(BasicML basicML) { MiningSchema miningSchema = new MiningSchema(); miningField.setUsageType(FieldUsageType.ACTIVE); miningSchema.withMiningFields(miningField); } else if(isSegExpansionMode) { miningField.setUsageType(FieldUsageType.ACTIVE); miningSchema.withMiningFields(miningField); break; miningField.setUsageType(FieldUsageType.ACTIVE); miningSchema.withMiningFields(miningField); } else if(isSegExpansionMode) { miningField.setUsageType(FieldUsageType.ACTIVE); miningSchema.withMiningFields(miningField); break;
@Override public VisitorAction visit(MiningSchema miningSchema){ if(!miningSchema.hasMiningFields()){ return VisitorAction.SKIP; } return super.visit(miningSchema); } }
/** * @param miningSchema {@link MiningSchema} from a model * @return names of features in order */ public static List<String> getFeatureNames(MiningSchema miningSchema) { return miningSchema.getMiningFields().stream().map(field -> field.getName().getValue()) .collect(Collectors.toList()); }
@Override public VisitorAction visit(MiningSchema miningSchema){ if(miningSchema.hasMiningFields()){ List<MiningField> miningFields = miningSchema.getMiningFields(); for(ListIterator<MiningField> it = miningFields.listIterator(); it.hasNext(); ){ it.set(intern(it.next())); } } return super.visit(miningSchema); }
.setOpType(OpType.CONTINUOUS).setUsageType(MiningField.UsageType.ACTIVE); miningFields.add(yMF); MiningSchema miningSchema = new MiningSchema(miningFields);
if(miningSchema.hasMiningFields()){ this.miningFields = CacheUtil.getValue(miningSchema, ModelEvaluator.miningFieldCache);
List<MiningField> miningFields = miningSchema.getMiningFields(); double[] featureImportances = new double[featureNames.size()]; for (int i = 0; i < miningFields.size(); i++) {
private void processModel(Model model){ Set<Field<?>> targetFields = getTargetFields(); MiningSchema miningSchema = model.getMiningSchema(); if(miningSchema != null && miningSchema.hasMiningFields()){ Set<FieldName> targetFieldNames = new LinkedHashSet<>(); List<MiningField> miningFields = miningSchema.getMiningFields(); for(MiningField miningField : miningFields){ FieldName name = miningField.getName(); MiningField.UsageType usageType = miningField.getUsageType(); switch(usageType){ case TARGET: case PREDICTED: targetFieldNames.add(name); break; default: break; } } if(targetFieldNames.size() > 0){ Set<Field<?>> modelFields = getFields(model); targetFields.addAll(FieldUtil.selectAll(modelFields, targetFieldNames)); } } }
.setUsageType(MiningField.UsageType.PREDICTED); miningFields.add(targetMF); MiningSchema miningSchema = new MiningSchema(miningFields);