@Override
	public Double process(Address item, TaskMonitor monitor) throws Exception {
		if (Long.remainderUnsigned(item.getOffset(), alignment) != 0) {
			return null;
		}
		List<Feature> vecToClassify = ModelTrainingUtils.getFeatureVector(program, item,
			numPreBytes, numInitialBytes, includeBitLevelFeatures);
		ArrayExample<Label> vec =
			new ArrayExample<>(LabelFactory.UNKNOWN_LABEL, vecToClassify);

		if (vec.size() == 0) {
			return null;
		}
		Prediction<Label> pred = randomForest.predict(vec);
		return pred.getOutputScores().get(target.getLabel()).getScore();
	}
Creates a callback which applies {@code model} to addresses in {@code program} using
the data-gathering parameters {@code numPreBytes} and {@code numInitialBytes} to
determine the probability the address has label {@label}. 
@param model model to apply
@param numPreBytes bytes before address to gather
@param numInitialBytes bytes after address to gather
@param includeBitLevelFeatures whether to include bit-level features
@param program source program
@param target target label
Ghidra/Extensions/MachineLearning/src/main/java/ghidra/machinelearning/functionfinding/FunctionStartCallback.java