On Wed, Aug 17, 2011 at 6:36 PM, Jörn Kottmann <[email protected]> wrote:
> On 8/17/11 11:22 PM, [email protected] wrote: > >> Here is what I am planning to do: >> >> I will rename the new listener to EvaluationSampleListener and add two new >> methods. The method list would be: >> >> void correctlyClassified(T reference, T prediction); >> >> void missclassified(T reference, T prediction); >> >> void evaluationFinished(); >> > > Why do we need the one for finished? The calling code knows when it is > finished, > and indicates that by retrieving the results, or making a call to print > them out. > Like it is implemented currently. > I thought it would be useful for listener like the one for standard deviation, that should know when a sample stream finishes. I will implement it without the finished method and if it is needed we add it later. > Since we are doing now a little more work here, we should make the abstract > Evaluator > class handle the calls to the EvaluationSampleListeners. > > As far as I have seen on my last look in the code we would need to provide > a default implementation for the Evaluator.evaluateSample method, and call > a method > which an implementer overwrites (maybe Evaluator.processSample) from it, it > will return the > predicted sample, this way an equals test inside Evaluator.evaluateSample > can figure out if it needs > to call missclassified or correctlyClassified on the registered listeners. > Won't it break backward compatibility? If it is OK +1 to change it.
