すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:iForest Outlierを使用した異常の検出

最終更新日:Jul 22, 2024

Isolation Forest (iForest) は、サブサンプリングアルゴリズムを使用して異常を検出します。 サブサンプリングアルゴリズムはそれほど複雑ではなく、データセット内の異常点を識別するために使用することができる。 iForestは、異常検出の実行に広く使用されています。 このトピックでは、iForestを設定して異常を検出する方法について説明します。

コンポーネントの設定

次のいずれかの方法を使用して、異常検出用のiForestのパラメーターを設定できます。

方法1: Machine Learning Designerでコンポーネントを構成する

Machine Learning Designerのパイプラインページでコンポーネントパラメーターを設定します。

タブ

パラメーター

説明

フィールド設定

featureCols

vectorColまたはtensorColパラメーターを設定した場合、このパラメーターはグレー表示されます。

トレーニングに使用されるフィーチャ列。

説明

featureColstensorCol、およびvectorColパラメーターは相互に排他的です。 そのうちの1つだけを使用して、アルゴリズムの入力フィーチャを記述できます。

groupCols

グループ列の配列。The array of the group column.

tensorCol

vectorColまたはfeatureColsパラメーターを設定した場合、このパラメーターはグレー表示されます。

テンソル列の名前。

説明

featureColstensorCol、およびvectorColパラメーターは相互に排他的です。 そのうちの1つだけを使用して、アルゴリズムの入力フィーチャを記述できます。

vectorCol

tensorColまたはfeatureColsパラメーターを設定した場合、このパラメーターはグレー表示されます。

ベクトル列の名前。

説明

featureColstensorCol、およびvectorColパラメーターは相互に排他的です。 そのうちの1つだけを使用して、アルゴリズムの入力フィーチャを記述できます。

パラメーター設定

predictionCol

予測結果列の名前。

maxOutlierNumPerGroup

グループあたりの外れ値の最大数。

maxOutlierRatio

アルゴリズムによって検出される外れ値の最大比率。

maxSampleNumPerGroup

グループあたりの最大サンプル数。

numTrees

モデル内のツリーの数。 デフォルト値は 100 です。

outlierThreshold

スコアが指定されたしきい値を超える場合、データポイントは異常ポイントと見なされます。

詳細予測情報の列名

予測の詳細列の名前。

subsamplingSize

各ツリーでサンプリングされる行の数。 値は正の整数でなければなりません。 有効な値: 2 ~ 100000 デフォルト値: 256

numThreads

コンポーネントのスレッド数。 デフォルト値は 1 です。

実行チューニング

数の労働者

ノードの数を示します。 値は正の整数でなければなりません。 このパラメーターは、Memory per workerパラメーターと共に使用する必要があります。 有効な値: 1 ~ 9999

ワーカあたりのメモリ、単位MB

各ノードのメモリサイズ。 単位:MB。 値は正の整数でなければなりません。 1024から65536までの値を指定する必要があります。

方法2: Pythonコードを使用する

PyAlinkスクリプトコンポーネントを使用してコンポーネントパラメータを設定します。 PyAlinkスクリプトコンポーネントを使用してPythonコードを呼び出すことができます。 詳細については、「PyAlinkスクリプト」をご参照ください。

パラメーター

必須

説明

デフォルト値

predictionCol

予測結果列の名前。

N/A

featureCols

不可

フィーチャ列の配列。The array of the feature column.

すべて選択

groupCols

不可

グループ列の名前。 複数の条件を指定することができます。

N/A

maxOutlierNumPerGroup

不可

グループあたりの外れ値の最大数。

N/A

maxOutlierRatio

不可

アルゴリズムによって検出される外れ値の最大比率。

N/A

maxSampleNumPerGroup

不可

グループあたりの最大サンプル数。

N/A

numTrees

不可

モデル内のツリーの数。

100

outlierThreshold

不可

スコアが指定されたしきい値を超える場合、データポイントは異常ポイントと見なされます。

N/A

predictionDetailCol

不可

予測の詳細列の名前。

N/A

tensorCol

不可

テンソル列の名前。

N/A

vectorCol

不可

ベクトル列の名前。

N/A

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()