private ConfusionMatrix <ShapeType> computeRecognitionConfusionMatrix() { ConfusionMatrix <ShapeType> result = new ConfusionMatrix <ShapeType>(); foreach (Sketch.Shape correctShape in _original.Shapes) { if (IGNORE_CLASSIFICATIONS.Contains(correctShape.Classification.ToLower())) { continue; } ShapeType originalType = correctShape.Type; if (originalType.Equals(new ShapeType())) // skip unidentified shapes { continue; } if (_toCompare.ShapesL.Exists(delegate(Sketch.Shape s) { return(s.GeometricEquals(correctShape)); })) { Sketch.Shape resultShape = _toCompare.ShapesL.Find(delegate(Sketch.Shape s) { return(s.GeometricEquals(correctShape)); }); ShapeType resultType = resultShape.Type; // Record stats result.increment(originalType, resultType); } } return(result); }
private ConfusionMatrix <string> computeClassificationConfusionMatrix() { ConfusionMatrix <string> result = new ConfusionMatrix <string>(); foreach (Substroke correctStroke in _original.Substrokes) { string originalClass = correctStroke.Classification; Substroke resultStroke = _toCompare.SubstrokesL.Find(delegate(Substroke s) { return(s.Equals(correctStroke)); }); string resultClass = resultStroke.Classification; // Record stats result.increment(originalClass, resultClass); } return(result); }
private ConfusionMatrix <ShapeType> computeRecognitionConfusionMatrix() { ConfusionMatrix <ShapeType> result = new ConfusionMatrix <ShapeType>(); foreach (Sketch.Shape correctShape in _original.Shapes) { ShapeType originalType = correctShape.Type; if (_toCompare.ShapesL.Exists(delegate(Sketch.Shape s) { return(s.Equals(correctShape)); })) { Sketch.Shape resultShape = _toCompare.ShapesL.Find(delegate(Sketch.Shape s) { return(s.Equals(correctShape)); }); ShapeType resultType = resultShape.Type; // Record stats result.increment(originalType, resultType); } } return(result); }
private ConfusionMatrix <string> computeClassificationConfusionMatrix() { ConfusionMatrix <string> result = new ConfusionMatrix <string>(); foreach (Substroke correctStroke in _original.Substrokes) { if (IGNORE_CLASSIFICATIONS.Contains(correctStroke.Classification.ToLower())) { continue; } string originalClass = correctStroke.Classification; Substroke resultStroke = _toCompare.SubstrokesL.Find(delegate(Substroke s) { return(s.GeometricEquals(correctStroke)); }); string resultClass = resultStroke.Classification; // Record stats result.increment(originalClass, resultClass); } return(result); }