org.jpmml.converter.transformations.SigmoidTransformation Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pmml-converter Show documentation
Show all versions of pmml-converter Show documentation
JPMML class model converters
/*
* Copyright (c) 2017 Villu Ruusmann
*
* This file is part of JPMML-Converter
*
* JPMML-Converter is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JPMML-Converter is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with JPMML-Converter. If not, see .
*/
package org.jpmml.converter.transformations;
import java.util.Objects;
import org.dmg.pmml.Expression;
import org.dmg.pmml.FieldRef;
import org.dmg.pmml.PMMLFunctions;
import org.jpmml.converter.ExpressionUtil;
import org.jpmml.converter.FieldNameUtil;
public class SigmoidTransformation extends AbstractTransformation {
private Number multiplier = null;
public SigmoidTransformation(Number multiplier){
setMultiplier(multiplier);
}
@Override
public String getName(String name){
return FieldNameUtil.create("sigmoid", name);
}
@Override
public Expression createExpression(FieldRef fieldRef){
return createExpression(getMultiplier(), fieldRef);
}
public Number getMultiplier(){
return this.multiplier;
}
private void setMultiplier(Number multiplier){
this.multiplier = Objects.requireNonNull(multiplier);
}
static
public Expression createExpression(Number multiplier, FieldRef fieldRef){
Number one;
if(multiplier instanceof Float){
one = 1f;
} else
if(multiplier instanceof Double){
one = 1d;
} else
{
throw new IllegalArgumentException();
}
return ExpressionUtil.createApply(PMMLFunctions.DIVIDE, ExpressionUtil.createConstant(one), ExpressionUtil.createApply(PMMLFunctions.ADD, ExpressionUtil.createConstant(one), ExpressionUtil.createApply(PMMLFunctions.EXP, ExpressionUtil.createApply(PMMLFunctions.MULTIPLY, ExpressionUtil.createConstant(multiplier), fieldRef))));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy