Class DrawDiagnosticsChart

All Implemented Interfaces:
LogicalOperator

public class DrawDiagnosticsChart extends CompositeOperator

This operator takes the output of one or multiple predictors and uses the confidence values produced by these predictors along with the actual target values ("true class") to produce diagnostic charts.

Supported chart types are ROC, Gains and Lift:

  • An ROC (Receiver Operating Characteristics) chart shows how the true positive rate (y-axis) compares to the false positive rate (x-axis) as the confidence threshold decreases.
  • A Gains chart (CRC, Cumulative Response Chart) shows how the true positive rate (y-axis) changes as the percentage of the targeted population (x-axis) increases.
  • A Lift chart shows how the lift (the ratio between predictor result and baseline; y-axis) changes as the percentage of the targeted population (x-axis) increases.
The true positive rate captures how many correct positive results occur among all positive samples in the test. The false positive rate captures how many incorrect positive results occur among all negative samples in the test.

This operator accepts an arbitrary number of input ports. The first port is always mandatory, the other ports may be optional, dependent on the constructor settings used.

Note: This operator is not parallelizable. In cluster mode, it will execute on a single node.

  • Field Details

    • DEFAULT_INPUT_PORT_COUNT

      public static final int DEFAULT_INPUT_PORT_COUNT
      The default number of input ports
      See Also:
  • Constructor Details

    • DrawDiagnosticsChart

      public DrawDiagnosticsChart()
      Creates an operator with a default number of (optional) input ports.
    • DrawDiagnosticsChart

      public DrawDiagnosticsChart(int inputPortsCount)
      Creates an operator with the given number of mandatory input ports.
      Parameters:
      inputPortsCount - The number of input ports.
    • DrawDiagnosticsChart

      public DrawDiagnosticsChart(int inputPortsCount, boolean optional)
      Creates an operator with the given number of input ports.
      Parameters:
      inputPortsCount - The number of input ports.
      optional - If true, all input ports except for the first will be optional.
  • Method Details

    • getInput

      public RecordPort getInput(int idx) throws IndexOutOfBoundsException
      Returns the input port for the given index.
      Parameters:
      idx - The index of the input port. It must be within the configured range.
      Returns:
      the input port
      Throws:
      IndexOutOfBoundsException - if the index is outside the configured range.
    • getOutput

      public RecordPort getOutput()
      Returns the output port.
      Returns:
      the output port
    • getPortCount

      public int getPortCount()
      Returns the number of input ports.
      Returns:
      the number of input ports
    • getInputPortsOptional

      public boolean getInputPortsOptional()
      Returns whether the input ports with index > 0 are optional. The port with index 0 is always mandatory, other ports are always either all optional or all mandatory.
      Returns:
      true if the ports with index > 0 are optional, false if the ports with index > 0 are mandatory
    • getTargetFieldNames

      public List<String> getTargetFieldNames()
      Returns the actual target field names for all input ports (null entries for disconnected ports).
      Returns:
      the target field names
    • setTargetFieldNames

      public void setTargetFieldNames(List<String> targetFieldNames)
      Sets the actual target field names for all input ports (null entries for disconnected ports).
      Parameters:
      targetFieldNames - the target field names
    • getTargetValue

      public String getTargetValue()
      Returns the target value ("true class")
      Returns:
      the target value
    • setTargetValue

      public void setTargetValue(String targetValue)
      Sets the target value ("true class")
      Parameters:
      targetValue - the target value
    • getConfidenceFieldNames

      public List<String> getConfidenceFieldNames()
      Returns the confidence field names for each input port (null entries for disconnected ports).
      Returns:
      the confidence field names
    • setConfidenceFieldNames

      public void setConfidenceFieldNames(List<String> confidenceFieldNames)
      Sets the confidence field names for each input port (null entries for disconnected ports).
      Parameters:
      confidenceFieldNames - the confidence field names
    • getResultSize

      public int getResultSize()
      Returns the number of results. The sequence of confusion matrices (one per input data point) will be split into the given number of equal sized slices. This reduced set will be used for chart creation.
      Returns:
      the number of results
    • setResultSize

      public void setResultSize(int resultSize)
      Sets the number of results. The sequence of confusion matrices (one per input data point) will be split into the given number of equal sized slices. This reduced set will be used for chart creation.
      Parameters:
      resultSize - the number of results
    • getChartType

      public ChartType getChartType()
      Returns the desired chart type (ROC, Gains, Lift).
      Returns:
      the chart type
    • setChartType

      public void setChartType(ChartType chartType)
      Sets the desired chart type (ROC, Gains, Lift).
      Parameters:
      chartType - the desired chart type
    • getChartNames

      public List<String> getChartNames()
      Returns the predictor names for each input port to be displayed as the chart legend (null entries for disconnected input ports).
      Returns:
      the predictor/chart names
    • setChartNames

      public void setChartNames(List<String> chartNames)
      Sets the predictor names for each input port to be displayed as the chart legend (null entries for disconnected input ports).
      Parameters:
      chartNames - the predictor/chart names
    • getOutputPath

      public String getOutputPath()
      Returns the path of the .png output file (null means no output file will be generated).
      Returns:
      the output path
    • setOutputPath

      public void setOutputPath(String outputPath)
      Sets the path of the .png output file (null means no output file will be generated).
      Parameters:
      outputPath - the output path
    • compose

      protected void compose(CompositionContext context)
      Description copied from class: CompositeOperator
      Compose the body of this operator. Implementations should do the following:
      1. Perform any validation of configuration, input types, etc
      2. Instantiate and configure sub-operators, adding them to the provided context via the method OperatorComposable.add(O)
      3. Create necessary connections via the method OperatorComposable.connect(P, P). This includes connections from the composite's input ports to sub-operators, connections between sub-operators, and connections from sub-operators output ports to the composite's output ports
      Specified by:
      compose in class CompositeOperator
      Parameters:
      context - the context