use of org.knime.base.node.mine.treeensemble2.node.proximity.RandomForestProximityNodeModel.ProximityMeasure in project knime-core by knime.
the class RandomForestProximityNodeModel method execute.
@Override
protected BufferedDataTable[] execute(final PortObject[] inObjects, final ExecutionContext exec) throws Exception {
TreeEnsembleModelPortObject model = (TreeEnsembleModelPortObject) inObjects[0];
BufferedDataTable table1 = (BufferedDataTable) inObjects[1];
BufferedDataTable table2 = (BufferedDataTable) inObjects[2];
BufferedDataTable[] tables;
if (table2 != null) {
tables = new BufferedDataTable[] { table1, table2 };
} else {
tables = new BufferedDataTable[] { table1 };
}
ExecutionContext calcExec = exec.createSubExecutionContext(0.7);
ExecutionContext writeExec = exec.createSubExecutionContext(0.3);
exec.setMessage("Calculating Proximity");
ProximityMatrix pm = null;
ProximityMeasure proximityMeasure = ProximityMeasure.valueOf(m_proximityMeasure.getStringValue());
switch(proximityMeasure) {
case PathProximity:
pm = new PathProximity(tables, model).calculatePathProximities(calcExec);
break;
case Proximity:
pm = Proximity.calcProximities(tables, model, calcExec);
break;
default:
throw new IllegalStateException("Illegal proximity measure encountered.");
}
exec.setMessage("Writing");
return new BufferedDataTable[] { pm.createTable(writeExec) };
}
use of org.knime.base.node.mine.treeensemble2.node.proximity.RandomForestProximityNodeModel.ProximityMeasure in project knime-core by knime.
the class RandomForestNearestNeighborNodeModel method execute.
/**
* {@inheritDoc}
*/
@Override
protected BufferedDataTable[] execute(final PortObject[] inObjects, final ExecutionContext exec) throws Exception {
TreeEnsembleModelPortObject ensembleModel = (TreeEnsembleModelPortObject) inObjects[0];
boolean optionalTable = inObjects[2] != null;
BufferedDataTable[] tables = new BufferedDataTable[optionalTable ? 2 : 1];
tables[0] = (BufferedDataTable) inObjects[1];
if (optionalTable) {
tables[1] = (BufferedDataTable) inObjects[2];
}
ExecutionContext proxExec = exec.createSubExecutionContext(0.6);
ExecutionContext nnExec = exec.createSubExecutionContext(0.4);
exec.setMessage("Calculating");
ProximityMatrix proximityMatrix = Proximity.calcProximities(tables, ensembleModel, proxExec);
ProximityMeasure proximityMeasure = ProximityMeasure.valueOf(m_proximityMeasure.getStringValue());
switch(proximityMeasure) {
case Proximity:
proximityMatrix = Proximity.calcProximities(tables, ensembleModel, proxExec);
break;
case PathProximity:
proximityMatrix = new PathProximity(tables, ensembleModel).calculatePathProximities(proxExec);
break;
default:
throw new IllegalStateException("Encountered unknown proximity measure.");
}
exec.setMessage("Calculating nearest neighbors");
int k = m_numNearestNeighbors.getIntValue();
return proximityMatrix.getNearestNeighbors(nnExec, k);
}
Aggregations