IForest 異常検知コンポーネントは、サブサンプリングアルゴリズムを使用してデータ内の異常点を識別します。このメソッドは異常検知に非常に効果的であり、計算の複雑さを軽減します。このトピックでは、IForest 異常検知コンポーネントのパラメーター設定について説明します。
コンポーネントの構成
IForest 異常検知コンポーネントのパラメーターは、次のいずれかの方法で設定できます。
方法 1:Designer UI の使用
Designer のワークフローページでコンポーネントのパラメーターを設定します。
|
タブ |
パラメーター名 |
説明 |
|
[フィールド設定] |
機能列 |
[ベクター列] または [テンソル列] パラメーターを設定した場合、このパラメーターは設定できません。 トレーニングに使用される特徴列。 説明
[特徴列]、[テンソル列]、[ベクター列] パラメーターは相互排他的です。これらのパラメーターのうち 1 つだけを使用して、アルゴリズムの入力特徴量を指定できます。 |
|
グループ列 |
データのグループ化に使用される列。 |
|
|
Tensor 列 |
[ベクター列] または [特徴列] パラメーターを設定した場合、このパラメーターは設定できません。 テンソル列の名前。 説明
[特徴列]、[テンソル列]、[ベクター列] パラメーターは相互排他的です。これらのパラメーターのうち 1 つだけを使用して、アルゴリズムの入力特徴量を指定できます。 |
|
|
ベクトル列 |
[テンソル列] または [特徴列] パラメーターを設定した場合、このパラメーターは設定できません。 ベクター列の名前。 説明
[特徴列]、[テンソル列]、[ベクター列] パラメーターは相互排他的です。これらのパラメーターのうち 1 つだけを使用して、アルゴリズムの入力特徴量を指定できます。 |
|
|
[パラメーター設定] |
[予測結果列] |
予測結果列の名前。 |
|
[グループごとの最大外れ値数] |
各グループで検出する外れ値の最大数。 |
|
|
外れ値の最大比率 |
アルゴリズムが検出できる外れ値の最大比率。 |
|
|
[グループごとの最大サンプル数] |
各グループの最大サンプル数。 |
|
|
[モデル内のツリー数] |
モデル内のツリー数。デフォルト値は 100 です。 |
|
|
[外れ値スコアのしきい値] |
データポイントのスコアがこのしきい値より大きい場合、そのデータポイントは外れ値として識別されます。 |
|
|
[予測詳細列] |
予測詳細を格納する列の名前。 |
|
|
[ツリーごとのサンプリング行数] |
各ツリーでサンプリングする行数。このパラメーターは正の整数である必要があります。値の範囲は [2, 100000] です。デフォルト値は 256 です。 |
|
|
[スレッド数] |
コンポーネントのスレッド数。デフォルト値は 1 です。 |
|
|
[実行チューニング] |
[ワーカー数] |
ワーカー数。このパラメーターは [ワーカーごとのメモリ] パラメーターとともに使用されます。値は [1, 9999] の範囲の正の整数である必要があります。 |
|
[ワーカーごとのメモリ (MB)] |
各ワーカーのメモリサイズ (MB)。値は [1024, 65536] の範囲の正の整数である必要があります。 |
方法 2:Python コードの使用
PyAlink スクリプトコンポーネントを使用して、コンポーネントのパラメーターを設定できます。このコンポーネントを使用すると、Python コードを呼び出すことができます。詳細については、「PyAlink スクリプト」をご参照ください。
|
パラメーター名 |
必須 |
説明 |
デフォルト値 |
|
predictionCol |
はい |
予測結果列の名前。 |
N/A |
|
featureCols |
いいえ |
特徴列の名前。このパラメーターは配列です。 |
すべて選択 |
|
groupCols |
いいえ |
グループ列の名前。複数の列がサポートされています。 |
なし |
|
maxOutlierNumPerGroup |
いいえ |
各グループの外れ値の最大数。 |
なし |
|
maxOutlierRatio |
いいえ |
アルゴリズムが検出できる外れ値の最大比率。 |
なし |
|
maxSampleNumPerGroup |
いいえ |
各グループの最大サンプル数。 |
なし |
|
numTrees |
いいえ |
モデル内のツリー数。 |
100 |
|
outlierThreshold |
いいえ |
データポイントのスコアがこのしきい値より大きい場合、そのデータポイントは外れ値として識別されます。 |
なし |
|
predictionDetailCol |
はい |
予測詳細を含む列の名前。 |
N/A |
|
tensorCol |
いいえ |
テンソル列。 |
なし |
|
vectorCol |
いいえ |
ベクター列の名前。 |
なし |
|
subsamplingSize |
いいえ |
各ツリーでサンプリングされる行数。正の整数である必要があります。有効値:[2, 100000]。 |
256 |
|
numThreads |
いいえ |
コンポーネントのスレッド数。 |
1 |
次のコードに例を示します。
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()