<root>
  <key>TrainVectorClassifier-gbt</key>
  <exec>otbcli_TrainVectorClassifier</exec>
  <longname>TrainVectorClassifier (gbt)</longname>
  <group>Learning</group>
  <description>Train a classifier based on labeled geometries and a list of features to consider.</description>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputVectorDataList">ParameterMultipleInput</parameter_type>
    <key>io.vd</key>
    <name>Input Vector Data</name>
    <description>Input geometries used for training (note : all geometries from the layer will be used)</description>
    <datatype />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>io.stats</key>
    <name>Input XML image statistics file</name>
    <description>XML file containing mean and variance of each feature.</description>
    <isFolder />
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>io.confmatout</key>
    <name>Output confusion matrix</name>
    <description>Output file containing the confusion matrix (.csv format).</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>io.out</key>
    <name>Output model</name>
    <description>Output file containing the model estimated (.txt format).</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_StringList">ParameterString</parameter_type>
    <key>feat</key>
    <name>Field names for training features.</name>
    <description>List of field names in the input vector data to be used as features for training.</description>
    <options />
    <default />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_String">ParameterString</parameter_type>
    <key>cfield</key>
    <name>Field containing the class id for supervision</name>
    <description>Field containing the class id for supervision. Only geometries with this field available will be taken into account.</description>
    <default>class</default>
    <multiline />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>layer</key>
    <name>Layer Index</name>
    <description>Index of the layer to use in the input vector file.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputVectorDataList">ParameterMultipleInput</parameter_type>
    <key>valid.vd</key>
    <name>Validation Vector Data</name>
    <description>Geometries used for validation (must contain the same fields used for training, all geometries from the layer will be used)</description>
    <datatype />
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>valid.layer</key>
    <name>Layer Index</name>
    <description>Index of the layer to use in the validation vector file.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier</key>
    <name>Classifier to use for the training</name>
    <description>Choice of the classifier to use for the training.</description>
    <options>
      <choices>
        <choice>gbt</choice>
        </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>classifier.gbt.w</key>
    <name>Number of boosting algorithm iterations</name>
    <description>Number "w" of boosting algorithm iterations, with w*K being the total number of trees in the GBT model, where K is the output number of classes.</description>
    <minValue />
    <maxValue />
    <default>200</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.gbt.s</key>
    <name>Regularization parameter</name>
    <description>Regularization parameter.</description>
    <minValue />
    <maxValue />
    <default>0.01</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.gbt.p</key>
    <name>Portion of the whole training set used for each algorithm iteration</name>
    <description>Portion of the whole training set used for each algorithm iteration. The subset is generated randomly.</description>
    <minValue />
    <maxValue />
    <default>0.8</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>classifier.gbt.max</key>
    <name>Maximum depth of the tree</name>
    <description>The training algorithm attempts to split each node while its depth is smaller than the maximum possible depth of the tree. The actual depth may be smaller if the other termination criteria are met, and/or if the tree is pruned.</description>
    <minValue />
    <maxValue />
    <default>3</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>rand</key>
    <name>set user defined seed</name>
    <description>Set specific seed. with integer value.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
</root>
