{
  "id": "org.apache.spark.ml.classification.GBTClassifier",
  "json_schema": "https://api.dataplatform.ibm.com/schemas/common-pipeline/operators/uihints-v2-schema.json",
  "icon": "images/modelbuildspark.svg",
  "label": {
    "default": "Gradient Boosted Tree Classifier"
  },
  "description": {
    "default": "Fit a Gradient Boosted Tree Classifier Model"
  },
	"ui_parameters": [
    {
      "id": "uiOnlyField1",
      "type": "string",
      "default": "",
      "required": true
    },
    {
      "id": "uiOnlyField2",
      "type": "array[string]",
      "default": [],
      "required": true
    },
    {
      "id": "uiOnlyField3",
      "type": "integer",
      "default": -1
    }
  ],
  "parameter_info": [
    {
      "parameter_ref": "targetField",
      "label": {
        "default": "Target column"
      },
      "description": {
        "default": "Select a target column"
      }
    },
    {
      "parameter_ref": "inputFieldList",
      "label": {
        "default": "Input columns"
      },
      "description": {
        "default": "Select one or more input columns"
      }
    },
    {
      "parameter_ref": "checkpointInterval",
      "label": {
        "default": "Checkpoint Interval"
      },
      "description": {
        "default": "Set checkpoint interval (>= 1) or disable checkpoint (-1). Ex) 10 means that the cache will get checkpointed every 10 iterations"
      }
    },
    {
      "parameter_ref": "impurity",
      "label": {
        "default": "Impurity"
      },
      "description": {
        "default": "Criterion used for information gain calculation (case-insensitive). Supported: \"entropy\" and \"gini\""
      }
    },
    {
      "parameter_ref": "lossType",
      "label": {
        "default": "Loss Type"
      },
      "description": {
        "default": "Loss function which GBT tries to minimize"
      }
    },
    {
      "parameter_ref": "maxBins",
      "label": {
        "default": "Maximum number of bins"
      },
      "description": {
        "default": "Maximum number of bins used for discretizing continuous features and for choosing how to split on features at each node. More bins give higher granularity. Must be >= 2 and >= number of categories in any categorical feature"
      }
    },
    {
      "parameter_ref": "maxDepth",
      "label": {
        "default": "Maximum depth of the tree"
      },
      "description": {
        "default": "Maximum depth of the tree (>= 0). Ex) depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes"
      }
    },
    {
      "parameter_ref": "maxIter",
      "label": {
        "default": "Maximum iterations for convergence"
      },
      "description": {
        "default": "Maximum iterations for convergence (>= 0)"
      }
    },
    {
      "parameter_ref": "minInfoGain",
      "label": {
        "default": "Minimum information gain"
      },
      "description": {
        "default": "Minimum information gain for a split to be considered at a tree node"
      }
    },
    {
      "parameter_ref": "minInstancesPerNode",
      "label": {
        "default": "Minimum instances per node"
      },
      "description": {
        "default": "Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid (>= 1)"
      }
    },
    {
      "parameter_ref": "seed",
      "label": {
        "default": "Seed"
      },
      "description": {
        "default": "Random seed"
      },
      "number_generator": {
        "label": {
          "default": "Generate",
          "resource_key": "numberGenerator"
        },
        "range": {
          "min": 1000000,
          "max": 9999999
        }
      }
    },
    {
      "parameter_ref": "stepSize",
      "label": {
        "default": "Step size"
      },
      "description": {
        "default": "Step size to be used for each iteration of optimization"
      }
    },
    {
      "parameter_ref": "subsamplingRate",
      "label": {
        "default": "Subsampling Rate"
      },
      "description": {
        "default": "Fraction of the training data used for learning each decision tree (> 0 and <= 1)"
      }
    }
  ],
  "group_info": [
    {
      "id": "fields_settings",
      "type": "panels",
      "group_info": [
        {
          "id": "fields",
          "type": "fieldSelection",
          "label": {
            "default": "Fields"
          },
          "parameter_refs": [
            "targetField",
            "inputFieldList"
          ]
        }
      ]
    },
    {
      "id": "advancedParams",
      "label": {
        "default": "Advanced Parameters"
      },
      "parameter_refs": [
        "checkpointInterval",
        "impurity",
        "lossType",
        "maxBins",
        "maxDepth",
        "maxIter",
        "minInfoGain",
        "minInstancesPerNode",
        "seed",
        "stepSize",
        "subsamplingRate"
      ]
    }
  ]
}
