@Override public Comparable apply( RegressionTable regressionTable ) { return categories.indexOf( regressionTable.getTargetCategory() ); } } );
ExpressionEvaluator bind( Fields argumentFields ) { if( isNoOp() ) return new ExpressionEvaluator( targetCategory ); ParameterExpression[] expressions = new ParameterExpression[ parameters.size() ]; int count = 0; for( Parameter parameter : parameters.values() ) expressions[ count++ ] = parameter.createExpression( argumentFields ); return new ExpressionEvaluator( targetCategory, expressions ); }
RegressionTable regressionTable = new RegressionTable(); regressionTable.addParameter( new Parameter( "intercept", 2.24166872421148d ) ); regressionTable.addParameter( new Parameter( "p1", 0.53448203205212d, new CovariantPredictor( "sepal_width" ) ) ); regressionTable.addParameter( new Parameter( "p2", 0.691035562908626d, new CovariantPredictor( "petal_length" ) ) ); regressionTable.addParameter( new Parameter( "p3", -0.21488157609202d, new CovariantPredictor( "petal_width" ) ) ); regressionTable.addParameter( new Parameter( "p4", 0d, new FactorPredictor( "species", "setosa" ) ) ); regressionTable.addParameter( new Parameter( "p5", -0.43150751368126d, new FactorPredictor( "species", "versicolor" ) ) ); regressionTable.addParameter( new Parameter( "p6", -0.61868924203063d, new FactorPredictor( "species", "virginica" ) ) );
public ExpressionEvaluator[] getRegressionTableEvaluators( Fields argumentFields ) { List<RegressionTable> tables = new ArrayList<RegressionTable>( regressionTables ); final DataField predictedField = getModelSchema().getPredictedField( getModelSchema().getPredictedFieldNames().get( 0 ) ); // order tables in category order as this is the declared field name order if( predictedField instanceof CategoricalDataField ) { Ordering<RegressionTable> ordering = Ordering.natural().onResultOf( new Function<RegressionTable, Comparable>() { private List<String> categories = ( (CategoricalDataField) predictedField ).getCategories(); @Override public Comparable apply( RegressionTable regressionTable ) { return categories.indexOf( regressionTable.getTargetCategory() ); } } ); Collections.sort( tables, ordering ); } ExpressionEvaluator[] evaluators = new ExpressionEvaluator[ tables.size() ]; for( int i = 0; i < tables.size(); i++ ) evaluators[ i ] = tables.get( i ).bind( argumentFields ); return evaluators; }
RegressionTable regressionTable = new RegressionTable( "versicolor" ); regressionTable.addParameter( new Parameter( "intercept", 86.7061379450354d ) ); regressionTable.addParameter( new Parameter( "p0", -11.3336819785783d, new CovariantPredictor( "sepal_length" ) ) ); regressionTable.addParameter( new Parameter( "p1", -40.8601511206805d, new CovariantPredictor( "sepal_width" ) ) ); regressionTable.addParameter( new Parameter( "p2", 38.439099544679d, new CovariantPredictor( "petal_length" ) ) ); regressionTable.addParameter( new Parameter( "p3", -12.2920287460217d, new CovariantPredictor( "petal_width" ) ) ); RegressionTable regressionTable = new RegressionTable( "virginica" ); regressionTable.addParameter( new Parameter( "intercept", -111.666532867146d ) ); regressionTable.addParameter( new Parameter( "p0", -47.1170644419116d, new CovariantPredictor( "sepal_length" ) ) ); regressionTable.addParameter( new Parameter( "p1", -51.6805606658275d, new CovariantPredictor( "sepal_width" ) ) ); regressionTable.addParameter( new Parameter( "p2", 108.27736751831d, new CovariantPredictor( "petal_length" ) ) ); regressionTable.addParameter( new Parameter( "p3", 54.0277175236148d, new CovariantPredictor( "petal_width" ) ) ); RegressionTable regressionTable = new RegressionTable( "setosa" ); regressionTable.addParameter( new Parameter( "intercept", 0d ) );
RegressionTable table = new RegressionTable(); table.addParameter( new Parameter( "p0", -16.9456960387809d ) ); table.addParameter( new Parameter( "p1", 11.7592159418536d, new CovariantPredictor( "sepal_length" ) ) ); table.addParameter( new Parameter( "p2", 7.84157781514097d, new CovariantPredictor( "sepal_width" ) ) ); table.addParameter( new Parameter( "p3", -20.0880078273996d, new CovariantPredictor( "petal_length" ) ) ); table.addParameter( new Parameter( "p4", -21.6076488529538d, new CovariantPredictor( "petal_width" ) ) );