Search in sources :

Example 16 with TreeEnsemblePredictorConfiguration

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

the class GradientBoostingPMMLPredictorNodeModel method validateSettings.

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

Example 17 with TreeEnsemblePredictorConfiguration

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

the class GradientBoostingPredictorNodeModel 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)

Example 18 with TreeEnsemblePredictorConfiguration

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

the class GradientBoostingPredictorNodeModel method validateSettings.

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

Example 19 with TreeEnsemblePredictorConfiguration

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

the class TreeEnsembleClassificationLearnerNodeModel 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 20 with TreeEnsemblePredictorConfiguration

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

the class TreeEnsembleRegressionPredictorCellFactory method getCells.

/**
 * {@inheritDoc}
 */
@Override
public DataCell[] getCells(final DataRow row) {
    TreeEnsembleModelPortObject modelObject = m_predictor.getModelObject();
    TreeEnsemblePredictorConfiguration cfg = m_predictor.getConfiguration();
    final TreeEnsembleModel ensembleModel = modelObject.getEnsembleModel();
    int size = 1;
    final boolean appendConfidence = cfg.isAppendPredictionConfidence();
    final boolean appendModelCount = cfg.isAppendModelCount();
    if (appendConfidence) {
        size += 1;
    }
    if (appendModelCount) {
        size += 1;
    }
    final boolean hasOutOfBagFilter = m_predictor.hasOutOfBagFilter();
    DataCell[] result = new DataCell[size];
    DataRow filterRow = new FilterColumnRow(row, m_learnColumnInRealDataIndices);
    PredictorRecord record = ensembleModel.createPredictorRecord(filterRow, m_learnSpec);
    if (record == null) {
        // missing value
        Arrays.fill(result, DataType.getMissingCell());
        return result;
    }
    Mean mean = new Mean();
    Variance variance = new Variance();
    final int nrModels = ensembleModel.getNrModels();
    for (int i = 0; i < nrModels; i++) {
        if (hasOutOfBagFilter && m_predictor.isRowPartOfTrainingData(row.getKey(), i)) {
        // ignore, row was used to train the model
        } else {
            TreeModelRegression m = ensembleModel.getTreeModelRegression(i);
            TreeNodeRegression match = m.findMatchingNode(record);
            double nodeMean = match.getMean();
            mean.increment(nodeMean);
            variance.increment(nodeMean);
        }
    }
    int nrValidModels = (int) mean.getN();
    int index = 0;
    result[index++] = nrValidModels == 0 ? DataType.getMissingCell() : new DoubleCell(mean.getResult());
    if (appendConfidence) {
        result[index++] = nrValidModels == 0 ? DataType.getMissingCell() : new DoubleCell(variance.getResult());
    }
    if (appendModelCount) {
        result[index++] = new IntCell(nrValidModels);
    }
    return result;
}
Also used : Mean(org.apache.commons.math.stat.descriptive.moment.Mean) TreeEnsembleModel(org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModel) DoubleCell(org.knime.core.data.def.DoubleCell) TreeEnsemblePredictorConfiguration(org.knime.base.node.mine.treeensemble2.node.predictor.TreeEnsemblePredictorConfiguration) DataRow(org.knime.core.data.DataRow) TreeNodeRegression(org.knime.base.node.mine.treeensemble2.model.TreeNodeRegression) Variance(org.apache.commons.math.stat.descriptive.moment.Variance) TreeModelRegression(org.knime.base.node.mine.treeensemble2.model.TreeModelRegression) IntCell(org.knime.core.data.def.IntCell) TreeEnsembleModelPortObject(org.knime.base.node.mine.treeensemble2.model.TreeEnsembleModelPortObject) PredictorRecord(org.knime.base.node.mine.treeensemble2.data.PredictorRecord) DataCell(org.knime.core.data.DataCell) FilterColumnRow(org.knime.base.data.filter.column.FilterColumnRow)

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