language: cn
model_unique_abbr: local_outlier_factor
version: 1.0
identification:
  docker_image_name: local_outlier_factor:1.0
  model_name: 基于局部密度度量的一元空间点过程异常探测
  semantic: outlier detection
  description: 通过度量地理空间点对象在其k邻域内与其它地理空间点对象间的可达距离表征该对象的局部可达密度，将局部异常度定义为地理空间点对象局部可达密度与其空间邻近对象的局部可达密度均值之比，基于此将局部异常度较大的地理空间点对象识别为一元空间点过程异常
  category_application: 诊断型
  category_data:
    - 点数据分析
  keywords:
    - 空间异常模式
    - k邻域
    - 局部可达密度
parameter_info:
  parameters:
    - arg_name: input
      is_single_en_dash: false
      param_type: input_data
      name: 空间点数据
      description: 待分析的空间点数据,以csv的形式保存,需要表头, 且至少包含x坐标和y坐标两列
      data_type: csv
      data_semantic: cluster_data

    - arg_name: x_field
      is_single_en_dash: false
      param_type: param
      name: X坐标字段
      description: X坐标列在输入文件中的列名
      data_type: str
      data_semantic: x_field
      param_switches:
        - switch_arg_name: input
          switch_arg_value_regex: csv$
          switch_arg_value_examples: [big_dataset.csv, small_dataset.csv]
      specification:
        default: x

    - arg_name: y_field
      is_single_en_dash: false
      param_type: param
      name: Y坐标字段
      description: Y坐标列在输入文件中的列名
      data_type: str
      data_semantic: y_field
      param_switches:
        - switch_arg_name: input
          switch_arg_value_regex: csv$
          switch_arg_value_examples: [big_dataset.csv, small_dataset.csv]
      specification:
        default: y

    - arg_name: k
      is_single_en_dash: false
      param_type: param
      name:  k邻近距离参数， 整型，大于0
      description: K-neighborhood parameter
      is_required: true
      data_type: int
      data_semantic: K-neighborhood  parameter
      specification:
        default: 10

    - arg_name: lof_threshold
      is_single_en_dash: false
      param_type: param
      name: 局部密度阈值
      description: 局部密度阈值，浮点型，大于0
      is_required: true
      data_type: float
      data_semantic: local density threshold
      specification:
        default: 1.5

    - arg_name: output
      is_single_en_dash: false
      param_type: output_data
      name: 异常结果
      description: "异常输出结果文件，保存为json格式，key分别为lof和is_noise，其中lof表示异常数值，is_noise表示是否为异常，is_noise为true即为异常，key中值与源数据的顺序一一对应"
      data_type: json
      data_semantic: abnormal_result

  groups:
    - group_id: ixy
      group_name: 输入数据XY列
      group_param_arg_names:
        - input
        - x_field
        - y_field
application:
  domain: 空间异常模式
  objective: 将空间局部密度较高的点识别为异常点
  dimension:
    - 二维
  mechanism: "通过度量地理空间点对象在其k邻域内与其它地理空间点对象间的可达距离表征该对象的局部可达密度，将局部异常度定义为地理空间点对象局部可达密度与其空间邻近对象的局部可达密度均值之比，基于此将局部异常度较大的地理空间点对象识别为一元空间点过程异常"
operation:
  usage: "该算法需要五个参数,X坐标列名,Y坐标列名,k邻域大小，局部密度阈值"
  exec_example:
    - docker run -v $(pwd):/data local_outlier_factor:1.0 --input /data/data.csv --k 6 --lof_threshold 0.6 --output /data/res.json
  output_display:
    - "结果为文本文件，不需要可视化"

technique:
  language:
    - Python
  os:
    - Linux
    - Windows
source:
  maintainer: Nanwei Cheng
  organization: Central South University
  contact: 2247486718@qq.com
  references:
    - "Breunig, M.M. 2000. LOF: Identifying density based local outliers.Proceedings of the ACM SIGMOD International Conference on Management of Data, 29(2): 93–104."
