全部產品
Search
文件中心

Platform For AI:IForest異常檢測

更新時間:Jul 13, 2024

IForest異常檢測使用sub-sampling演算法,降低了演算法的計算複雜度,可以識別資料中的異常點,在異常檢測領域有顯著的應用效果。本文為您介紹IForest異常檢測的參數配置。

組件配置

您可以通過以下任意一種方式,配置IForest異常檢測參數。

方式一:可視化方式

Designer工作流程頁面配置組件參數。

頁簽

參數名稱

描述

欄位設定

特徵列名數組

如果您已經配置了向量列名tensor列,則該參數不允許配置。

用於訓練的特徵列名。

說明

特徵列名數組tensor列向量列名是三個互斥參數,您只能使用其中一個參數來描述演算法的輸入特徵。

分組列名數組

分組列名。

tensor列

如果您已經配置了向量列名特徵列名數組,則該參數不允許配置。

tensor列名。

說明

特徵列名數組tensor列向量列名是三個互斥參數,您只能使用其中一個參數來描述演算法的輸入特徵。

向量列名

如果您已經配置了tensor列特徵列名數組,則該參數不允許配置。

向量列對應的列名。

說明

特徵列名數組tensor列向量列名是三個互斥參數,您只能使用其中一個參數來描述演算法的輸入特徵。

參數設定

預測結果列名

預測結果列的列名。

每組最大異常點數目

每組最大的異常點數目。

最大異常點比例

演算法檢測異常點的最大比例。

每組最大樣本數目

每組最大的樣本數目。

模型中樹的棵數

模型中樹的棵樹,預設為100。

異常評分閾值

當評分大於該閾值時,判定為異常點。

預測詳細資料列名

預測詳細資料列的列名。

每棵樹的樣本採樣行數

每棵樹的樣本採樣行數,正整數。範圍[2,100000],預設為256。

組件多線程線程個數

組件多線程的線程個數,預設為1。

執行調優

節點個數

節點個數,與參數單個節點記憶體大小配對使用,正整數。範圍[1, 9999]。

單個節點記憶體大小,單位M

單個節點記憶體大小,單位MB,正整數。範圍[1024, 64*1024]。

方式二:Python代碼方式

使用PyAlink指令碼組件,配置該組件參數。您可以使用PyAlink指令碼組件進行Python代碼調用,詳情請參見PyAlink指令碼

參數名稱

是否必選

描述

預設值

predictionCol

預測結果列的列名。

featureCols

特徵列名數組。

全選

groupCols

分組列名,支援多列。

maxOutlierNumPerGroup

每組最大的異常點數目。

maxOutlierRatio

演算法檢測異常點的最大比例。

maxSampleNumPerGroup

每組最大的樣本數目。

numTrees

模型中樹的棵數。

100

outlierThreshold

當評分大於該閾值時,判定為異常點。

predictionDetailCol

預測詳細資料列的列名。

tensorCol

tensor列。

vectorCol

向量列對應的列名。

subsamplingSize

每棵樹的樣本採樣行數,正整數。範圍[2,100000]。

256

numThreads

組件多線程的線程個數。

1

Python代碼方式的使用樣本如下。

from pyalink.alink import *
import pandas as pd
df = pd.DataFrame([
[0.73, 0],
[0.24, 0],
[0.63, 0],
[0.55, 0],
[0.73, 0],
[0.41, 0]
])

dataOp = BatchOperator.fromDataframe(df, schemaStr='val double, label int')

outlierOp = IForestOutlierBatchOp()\
    .setFeatureCols(["val"])\
    .setOutlierThreshold(3.0)\
    .setPredictionCol("pred")\
    .setPredictionDetailCol("pred_detail")

outlierOp.print()