@Override public PolynomialKernel createKernel(Double degree, Double gamma, Double coef0){ return new PolynomialKernel() .setGamma(gamma) .setCoef0(coef0) .setDegree(degree); } },
@Override public PolynomialKernel addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
/** * Create an instance of {@link PolynomialKernel } * */ public PolynomialKernel createPolynomialKernel() { return new PolynomialKernel(); }
static public <V extends Number> Value<V> evaluatePolynomialKernel(PolynomialKernel polynomialKernel, ValueFactory<V> valueFactory, Object input, Object vector){ Value<V> result = valueFactory.newValue(dotProduct(input, vector)); Double gamma = polynomialKernel.getGamma(); if(gamma.doubleValue() != 1d){ result.multiply(gamma); } Double coef0 = polynomialKernel.getCoef0(); if(coef0.doubleValue() != 1d){ result.add(coef0); } Double degree = polynomialKernel.getDegree(); if(degree.doubleValue() != 1d){ result.power(degree); } return result; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = PMMLObject.traverse(visitor, getExtensions()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
/** * Create an instance of {@link PolynomialKernel } * */ public PolynomialKernel createPolynomialKernel() { return new PolynomialKernel(); }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = PMMLObject.traverse(visitor, getExtensions()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
static public Kernel createKernel(String kernel, Integer degree, Double gamma, Double coef0){ switch(kernel){ case "linear": return new LinearKernel(); case "poly": return new PolynomialKernel() .setGamma(gamma) .setCoef0(coef0) .setDegree(ValueUtil.asDouble(degree)); case "rbf": return new RadialBasisKernel() .setGamma(gamma); case "sigmoid": return new SigmoidKernel() .setGamma(gamma) .setCoef0(coef0); default: throw new IllegalArgumentException(kernel); } } }
@Override public PolynomialKernel addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }