/** * Create an instance of {@link SupportVectorMachine } * */ public SupportVectorMachine createSupportVectorMachine() { return new SupportVectorMachine(); }
@Override public SupportVectorMachine addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
@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) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getSupportVectors(), getCoefficients()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public SupportVectorMachineModel encodeModel(Schema schema){ int[] shape = getSupportVectorsShape(); int numberOfVectors = shape[0]; int numberOfFeatures = shape[1]; List<Integer> support = getSupport(); List<? extends Number> supportVectors = getSupportVectors(); List<Integer> supportSizes = getSupportSizes(); List<? extends Number> dualCoef = getDualCoef(); List<? extends Number> intercept = getIntercept(); SupportVectorMachineModel supportVectorMachineModel = LibSVMUtil.createClassification(new CMatrix<>(ValueUtil.asDoubles(supportVectors), numberOfVectors, numberOfFeatures), supportSizes, SupportVectorMachineUtil.formatIds(support), ValueUtil.asDoubles(intercept), ValueUtil.asDoubles(dualCoef), schema) .setKernel(SupportVectorMachineUtil.createKernel(getKernel(), getDegree(), getGamma(), getCoef0())); List<SupportVectorMachine> supportVectorMachines = supportVectorMachineModel.getSupportVectorMachines(); for(SupportVectorMachine supportVectorMachine : supportVectorMachines){ String category = supportVectorMachine.getTargetCategory(); // LibSVM: (decisionFunction > 0 ? first : second) // PMML: (decisionFunction < 0 ? first : second) supportVectorMachine.setTargetCategory(supportVectorMachine.getAlternateTargetCategory()); supportVectorMachine.setAlternateTargetCategory(category); } return supportVectorMachineModel; }
SupportVectorMachine supportVectorMachine = supportVectorMachines.get(0); String targetCategory = supportVectorMachine.getTargetCategory(); if(targetCategory != null){ return SupportVectorMachineModel.ClassificationMethod.ONE_AGAINST_ONE; String targetCategory = supportVectorMachine.getTargetCategory(); String alternateTargetCategory = supportVectorMachine.getAlternateTargetCategory();
String targetCategory = supportVectorMachine.getTargetCategory(); if(targetCategory == null){ throw new MissingAttributeException(supportVectorMachine, PMMLAttributes.SUPPORTVECTORMACHINE_TARGETCATEGORY); String alternateTargetCategory = supportVectorMachine.getAlternateTargetCategory(); Double threshold = supportVectorMachine.getThreshold(); if(threshold == null){ threshold = supportVectorMachineModel.getThreshold();
Coefficients coefficients = supportVectorMachine.getCoefficients(); Iterator<Coefficient> coefficientIt = coefficients.iterator(); SupportVectors supportVectors = supportVectorMachine.getSupportVectors(); Iterator<SupportVector> supportVectorIt = supportVectors.iterator();
@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) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getSupportVectors(), getCoefficients()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
/** * Create an instance of {@link SupportVectorMachine } * */ public SupportVectorMachine createSupportVectorMachine() { return new SupportVectorMachine(); }
@Override public SupportVectorMachine addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }