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

Platform For AI:LOF外れ値

最終更新日:Jul 22, 2024

Platform for AI (PAI) のLOF外れ値コンポーネントは、ローカル外れ値要因 (LOF) アルゴリズムに基づいてサンプルを外れ値として識別します。 このトピックでは、LOF Outlierコンポーネントを設定する方法について説明します。

制限事項

MaxComputeのコンピューティングリソースのみに基づいて、LOF Outlierコンポーネントを使用できます。

コンポーネントの設定

次のいずれかの方法を使用して、LOF Outlierコンポーネントを設定できます。

方法1: PAIコンソールでコンポーネントを設定する

Machine Learning Designerのパイプラインページでコンポーネントを設定します。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

featureCols

フィーチャ列の名前の配列。

groupCols

グループ列の名前の配列。

tensorCol

テンソル列。

vectorCol

ベクトル列の名前。

パラメーター設定

予測結果列

予測結果列の名前。

距離測定方法

クラスタリングに使用される距離測定。 デフォルト値: EUCLIDEAN。 有効な値:

  • EUCLIDEAN

  • COSINE

  • INNERPRODUCT

  • CITYBLOCK

  • JACCARD

  • PEARSON

maxOutlierNumPerGroup

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

maxOutlierRatio

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

maxSampleNumPerGroup

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

numNeighbors

LOFダイアグラムで使用される隣接するデータポイントの数。 既定値:5

outlierThreshold

スコアが指定されたしきい値を超えると、外れ値が検出されます。

詳細予測情報の列名

予測の詳細列の名前。

numThreads

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

チューニングの実行

数の労働者

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

workerあたりのメモリ

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

方法2: Pythonコードを使用してコンポーネントを構成する

PyAlinkスクリプトコンポーネントを使用してPythonコードを呼び出し、LOF Outlierコンポーネントパラメーターを設定します。 詳細については、PyAlinkスクリプトのドキュメントを参照してください。

パラメーター

必須

説明

デフォルト値

predictionCol

予測結果列の名前。

N/A

distanceType

不可

クラスタリングに使用される距離測定。 有効な値:

  • EUCLIDEAN

  • COSINE

  • INNERPRODUCT

  • CITYBLOCK

  • JACCARD

  • PEARSON

EUCLIDEAN

featureCols

不可

フィーチャ列の名前の配列。

すべて選択

groupCols

不可

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

N/A

maxOutlierNumPerGroup

不可

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

N/A

maxOutlierRatio

不可

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

N/A

maxSampleNumPerGroup

不可

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

N/A

outlierThreshold

不可

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

N/A

predictionDetailCol

不可

予測の詳細列の名前。

N/A

tensorCol

不可

テンソル列の名前。

N/A

vectorCol

不可

ベクトル列の名前。

N/A

numNeighbors

不可

LOFダイアグラムで使用される隣接するデータポイントの数。

5

numThreads

不可

LOF Outlierコンポーネントのスレッド数。

1

サンプルPythonコード:

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 = LofOutlierBatchOp()\
    .setFeatureCols(["val"])\
    .setOutlierThreshold(3.0)\
    .setPredictionCol("pred")\
    .setPredictionDetailCol("pred_detail")

evalOp = EvalOutlierBatchOp()\
    .setLabelCol("label")\
    .setPredictionDetailCol("pred_detail")\
    .setOutlierValueStrings(["1"])

metrics = dataOp\
    .link(outlierOp)\
    .link(evalOp)\
    .collectMetrics()

print(metrics)