language: cn
model_unique_abbr: land_development_potential
version: 1.0

identification:
  docker_image_name: land_development_potential:1.0.2-sklearn
  model_name: 土地利用类型发展潜力（随机森林算法）
  semantic: land development potential
  category_application: 预测型
  category_data:
    - 点数据分析
  description: 该算法收集所有分类投票结果后，将投票次数最多的类别指定为最终的输出
  keywords:
    - 空间分类
    - 随机森林分类

parameter_info:
  parameters:
    - arg_name: sfm
      param_type: input_data
      name: 坡度样本
      description: 模型训练所需的坡度数据
      is_required: True
      data_type: tif
      data_semantic: slope

    - arg_name: rfm
      param_type: input_data
      name: 道路样本
      description: 模型训练所需的道路数据
      is_required: True
      data_type: tif
      data_semantic: road

    - arg_name: wfm
      param_type: input_data
      name: 水体样本
      description: 模型训练所需的水体数据
      is_required: True
      data_type: tif
      data_semantic: water

    - arg_name: tfm
      param_type: input_data
      name: 温度样本
      description: 模型训练所需的温度数据
      is_required: True
      data_type: tif
      data_semantic: temperature

    - arg_name: tl
      param_type: input_data
      name: 训练标签
      description: 模型训练所需的标签数据.
      is_required: True
      data_type: tif
      data_semantic: land development label

    - arg_name: op
      param_type: output_data
      name: 输出路径
      description: 预测结果的输出路径
      is_required: True
      data_type: csv
      data_semantic: land development potential

    - arg_name: ne
      param_type: param
      name: 树木数量
      description: 森林中树木的数量,范围是[1,],默认值为100
      is_required: True
      data_type: int
      data_semantic: n_estimators
      specification:
        default: 100
        range:
        - "[1,)"

    - arg_name: c
      param_type: param
      name: 不纯度方法
      description: 不纯度的计算方法
      is_required: True
      data_type: enum
      data_semantic: criterion
      specification:
        default: "gini"
        enum:
        - "entropy"
        - "gini"
        - "poisson"

    - arg_name: md
      param_type: param
      name: 最大深度
      description: 随机森林树的最大深度,范围为[1,],默认值为3
      is_required: True
      data_type: int
      data_semantic: max depth
      specification:
        default: 3
        range:
        - "[1,)"


    - arg_name: nj
      param_type: param
      visible: false
      name: 并行工作数
      description: 为近邻点搜索运行的并行作业数,范围是[-2,],默认值为1
      is_required: True
      data_type: int
      data_semantic: n_jobs
      specification:
        default: -1
        range:
        - "[-2,)"

    - arg_name: mss
      param_type: param
      name: 拆分内节点最少样本数
      description: 拆分内部节点所需的最少样本数,范围是[1,],默认是2
      is_required: True
      data_type: int
      data_semantic: min samples split
      specification:
        default: 2
        range:
        - "[1,)"

    - arg_name: msl
      param_type: param
      name: 叶节点最小样本数
      description: 在叶节点处需要的最小样本数，范围是[1,]，默认值为2
      is_required: True
      data_type: int
      data_semantic: min samples leaf
      specification:
        default: 1
        range:
        - "[1,)"

    - arg_name: mwfl
      param_type: param
      name: 最小加权分数
      description: 一个叶节点上所需的(所有输入样本的)总权重的最小加权分数，范围是[0.0,0.5]，默认为0.0
      is_required: True
      data_type: float
      data_semantic: min weight fraction leaf
      specification:
        default: 0.0
        range:
        - "[0.0,0.5]"


    - arg_name: v
      param_type: param
      name: 详细程度
      description: 在拟合和预测时控制输出日志的详细程度,范围[0,],默认值为0
      is_required: True
      data_type: int
      data_semantic: verbose
      specification:
        default: 0
        range:
        - "[0,)"

    - arg_name: ca
      param_type: param
      name: 复杂度参数
      description: 复杂度参数用于最小代价复杂度剪枝,范围[0.0,],默认值为0.0
      is_required: True
      data_type: float
      data_semantic: ccp_alpha
      specification:
        default: 0.0
        range:
        - "[0.0,)"
application:
  domain: 空间数据分类
  objective: 根据先验信息对带预测数据进行分类型预测
  mechanism: 该算法收集所有决策树分类投票结果后，将投票次数最多的类别指定为最终的输出
operation:
  usage: 须指定训练数据、训练标签、待预测的数据及输出路径，其他参数均可默认
  exec_example:
    - docker run -v $(pwd):/data random_forest:1.0.0-sklearn1.0.2 -td /data/test_rf_data.csv -tl /data/training_label.csv -fd /data/test_rf_pre.csv -op result.csv
  license:
    - BSD-3-Clause
    - PSF-2.0
    - GPL-2.0
technique:
  language:
    - python
  os:
    - Windows
    - Linux
  parallel:
    - multithreading
  hardware:
    - CPU
  dependencies:
    - name: scikit-learn
      version: 1.0.2
    - name: pandas
      version: 1.1.3
    - name: numpy
      version: 1.19.2
source:
  maintainer: Xian Cao
  organization: Beijing University of Civil Engineering and Architecture
  contact: southerndog@foxmail.com
  integrated_softwares:
    - name: scikit-learn
      version: 1.0.2
      license: BSD-3-Clause
  references:
    - Breiman, L. 2001. Random forests. Machine Learning, 45(1):5–32.
    - https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
