Search in sources :

Example 21 with TreeEnsemblePredictorConfiguration

use of org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration in project knime-core by knime.

the class TreeEnsembleClassificationPredictorCellFactory method createFactory.

/**
 * Creates a TreeEnsembleClassificationPredictorCellFactory from the provided <b>predictor</b>
 * @param predictor
 * @return an instance of TreeEnsembleClassificationPredictorCellFactory configured according to the settings of the provided
 * <b>predictor<b>
 * @throws InvalidSettingsException
 */
public static TreeEnsembleClassificationPredictorCellFactory createFactory(final TreeEnsemblePredictor predictor) throws InvalidSettingsException {
    DataTableSpec testDataSpec = predictor.getDataSpec();
    TreeEnsembleModelPortObjectSpec modelSpec = predictor.getModelSpec();
    TreeEnsembleModelPortObject modelObject = predictor.getModelObject();
    TreeEnsemblePredictorConfiguration configuration = predictor.getConfiguration();
    UniqueNameGenerator nameGen = new UniqueNameGenerator(testDataSpec);
    Map<String, DataCell> targetValueMap = modelSpec.getTargetColumnPossibleValueMap();
    List<DataColumnSpec> newColsList = new ArrayList<DataColumnSpec>();
    DataType targetColType = modelSpec.getTargetColumn().getType();
    String predictionColName = configuration.getPredictionColumnName();
    DataColumnSpec targetCol = nameGen.newColumn(predictionColName, targetColType);
    newColsList.add(targetCol);
    if (configuration.isAppendPredictionConfidence()) {
        newColsList.add(nameGen.newColumn(targetCol.getName() + " (Confidence)", DoubleCell.TYPE));
    }
    if (configuration.isAppendClassConfidences()) {
        final String targetColName = modelSpec.getTargetColumn().getName();
        final String suffix = configuration.getSuffixForClassProbabilities();
        // and this class is not called)
        assert targetValueMap != null : "Target column has no possible values";
        for (String v : targetValueMap.keySet()) {
            final String colName = "P(" + targetColName + "=" + v + ")" + suffix;
            newColsList.add(nameGen.newColumn(colName, DoubleCell.TYPE));
        }
    }
    if (configuration.isAppendModelCount()) {
        newColsList.add(nameGen.newColumn("model count", IntCell.TYPE));
    }
    // assigned
    assert modelObject == null || targetValueMap != null : "Target values must be known during execution";
    DataColumnSpec[] newCols = newColsList.toArray(new DataColumnSpec[newColsList.size()]);
    int[] learnColumnInRealDataIndices = modelSpec.calculateFilterIndices(testDataSpec);
    final Map<String, Integer> targetValueToIndexMap = new HashMap<String, Integer>(targetValueMap.size());
    Iterator<String> targetValIterator = targetValueMap.keySet().iterator();
    for (int i = 0; i < targetValueMap.size(); i++) {
        targetValueToIndexMap.put(targetValIterator.next(), i);
    }
    final VotingFactory votingFactory;
    if (configuration.isUseSoftVoting()) {
        votingFactory = new SoftVotingFactory(targetValueToIndexMap);
    } else {
        votingFactory = new HardVotingFactory(targetValueToIndexMap);
    }
    return new TreeEnsembleClassificationPredictorCellFactory(predictor, targetValueMap, newCols, learnColumnInRealDataIndices, votingFactory);
}
Also used : DataTableSpec(org.knime.core.data.DataTableSpec) HashMap(java.util.HashMap) TreeEnsembleModelPortObjectSpec(org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModelPortObjectSpec) TreeEnsemblePredictorConfiguration(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration) ArrayList(java.util.ArrayList) UniqueNameGenerator(org.knime.core.util.UniqueNameGenerator) TreeEnsembleModelPortObject(org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModelPortObject) DataColumnSpec(org.knime.core.data.DataColumnSpec) DataCell(org.knime.core.data.DataCell) DataType(org.knime.core.data.DataType)

Example 22 with TreeEnsemblePredictorConfiguration

use of org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration in project knime-core by knime.

the class TreeEnsembleClassificationPredictorNodeModel method validateSettings.

/**
 * {@inheritDoc}
 */
@Override
protected void validateSettings(final NodeSettingsRO settings) throws InvalidSettingsException {
    TreeEnsemblePredictorConfiguration config = new TreeEnsemblePredictorConfiguration(false, "");
    config.loadInModel(settings);
}
Also used : TreeEnsemblePredictorConfiguration(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration)

Example 23 with TreeEnsemblePredictorConfiguration

use of org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration in project knime-core by knime.

the class RandomForestClassificationLearnerNodeModel method createOutOfBagPredictor.

/**
 * @param ensembleSpec
 * @param ensembleModel
 * @param inSpec
 * @return
 * @throws InvalidSettingsException
 */
private TreeEnsemblePredictor createOutOfBagPredictor(final TreeEnsembleModelPortObjectSpec ensembleSpec, final TreeEnsembleModelPortObject ensembleModel, final DataTableSpec inSpec) throws InvalidSettingsException {
    String targetColumn = m_configuration.getTargetColumn();
    TreeEnsemblePredictorConfiguration ooBConfig = new TreeEnsemblePredictorConfiguration(false, targetColumn);
    String append = targetColumn + " (Out-of-bag)";
    ooBConfig.setPredictionColumnName(append);
    ooBConfig.setAppendPredictionConfidence(true);
    ooBConfig.setAppendClassConfidences(true);
    ooBConfig.setAppendModelCount(true);
    return new TreeEnsemblePredictor(ensembleSpec, ensembleModel, inSpec, ooBConfig);
}
Also used : TreeEnsemblePredictorConfiguration(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration) TreeEnsemblePredictor(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictor)

Example 24 with TreeEnsemblePredictorConfiguration

use of org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration in project knime-core by knime.

the class RandomForestClassificationPredictorNodeModel method loadValidatedSettingsFrom.

/**
 * {@inheritDoc}
 */
@Override
protected void loadValidatedSettingsFrom(final NodeSettingsRO settings) throws InvalidSettingsException {
    TreeEnsemblePredictorConfiguration config = new TreeEnsemblePredictorConfiguration(false, "");
    config.loadInModel(settings);
    m_configuration = config;
}
Also used : TreeEnsemblePredictorConfiguration(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration)

Example 25 with TreeEnsemblePredictorConfiguration

use of org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration in project knime-core by knime.

the class RandomForestRegressionPredictorNodeModel method loadValidatedSettingsFrom.

/**
 * {@inheritDoc}
 */
@Override
protected void loadValidatedSettingsFrom(final NodeSettingsRO settings) throws InvalidSettingsException {
    TreeEnsemblePredictorConfiguration config = new TreeEnsemblePredictorConfiguration(true, "");
    config.loadInModel(settings);
    m_configuration = config;
}
Also used : TreeEnsemblePredictorConfiguration(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration)

Aggregations

TreeEnsemblePredictorConfiguration (org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration)25 DataCell (org.knime.core.data.DataCell)6 TreeEnsembleModelPortObject (org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModelPortObject)5 ArrayList (java.util.ArrayList)4 TreeEnsembleModelPortObjectSpec (org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModelPortObjectSpec)4 TreeEnsemblePredictor (org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictor)4 DataColumnSpec (org.knime.core.data.DataColumnSpec)4 DataTableSpec (org.knime.core.data.DataTableSpec)4 UniqueNameGenerator (org.knime.core.util.UniqueNameGenerator)4 FilterColumnRow (org.knime.base.data.filter.column.FilterColumnRow)3 PredictorRecord (org.knime.base.node.mine.treeensemble2.data.PredictorRecord)3 TreeEnsembleModel (org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModel)3 DataRow (org.knime.core.data.DataRow)3 DoubleCell (org.knime.core.data.def.DoubleCell)3 IntCell (org.knime.core.data.def.IntCell)3 NominalValueRepresentation (org.knime.base.node.mine.treeensemble2.data.NominalValueRepresentation)2 TreeTargetNominalColumnMetaData (org.knime.base.node.mine.treeensemble2.data.TreeTargetNominalColumnMetaData)2 TreeModelClassification (org.knime.base.node.mine.treeensemble2.model.TreeModelClassification)2 TreeNodeClassification (org.knime.base.node.mine.treeensemble2.model.TreeNodeClassification)2 DataType (org.knime.core.data.DataType)2