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();
@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; }
String targetCategory = supportVectorMachine.getTargetCategory(); if(targetCategory == null){ throw new MissingAttributeException(supportVectorMachine, PMMLAttributes.SUPPORTVECTORMACHINE_TARGETCATEGORY);