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

Platform For AI:1クラスSVM外れ値

最終更新日:Jul 22, 2024

1クラスのサポートベクターマシン (SVM) は、従来のSVMアルゴリズムとは異なる教師なし機械学習アルゴリズムです。 1クラスSVM外れ値コンポーネントを使用して、決定境界を学習することで外れ値を検出できます。 このトピックでは、Platform for AI (PAI) でOne-Class SVM Outlierコンポーネントを設定する方法について説明します。

制限事項

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

コンポーネントの設定

次のいずれかの方法を使用して、one-Class SVM Outlierコンポーネントのパラメーターを設定できます。

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

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

タブ

パラメーター

説明

フィールド設定

featureCols

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

groupCols

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

tensorCol

テンソル列。

vectorCol

ベクトル列の名前。

パラメーター設定

予測結果列

予測結果列の名前。

coef0

カーネル関数のcoef0パラメーター。 デフォルト値: 0.0

説明

このパラメーターは、カーネル関数の型が多項式またはシグモイドの場合にのみ有効です。

程度

多項式の次数。

イプシロン

イテレーションが停止する前にトレーニング結果から取得する値。 デフォルト値: 1.0E-6。

ガンマ

カーネル関数のガンマパラメーター。 デフォルト値: -1.0

説明

このパラメーターは、カーネル関数の型がRBF、多項式、またはシグモイドの場合にのみ有効です。 このパラメーターを設定しない場合、デフォルト値の1/dataディメンションが使用されます。

kernelType

カーネル関数の型。 有効な値:

  • RBF

  • ポリ

  • SIGMOID

  • リニア

maxOutlierNumPerGroup

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

maxOutlierRatio

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

maxSampleNumPerGroup

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

nu

カーネル関数のnuパラメーター。 このパラメータは、サポートベクトルの数と正の相関がある。 有効な値: (0,1) 。 デフォルト値: 0.01

outlierThreshold

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

詳細予測情報の列名

予測の詳細列の名前。

numThreads

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

チューニングの実行

数の労働者

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

workerあたりのメモリ

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

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

PyAlinkスクリプトコンポーネントを使用してPythonコードを呼び出すことにより、One-Class SVM Outlierコンポーネントを構成できます。 詳しくは、「PyAlinkスクリプト」をご参照ください。

パラメーター

必須

説明

デフォルト値

predictionCol

予測結果列の名前。

N/A

程度

不可

多項式の次数。

2

イプシロン

不可

イテレーションが停止する前にトレーニング結果から取得する値。

1.0E-6

featureCols

不可

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

すべて選択

groupCols

不可

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

N/A

maxOutlierNumPerGroup

不可

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

N/A

maxOutlierRatio

不可

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

N/A

maxSampleNumPerGroup

不可

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

N/A

outlierThreshold

不可

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

N/A

predictionDetailCol

不可

予測の詳細列の名前。

N/A

tensorCol

不可

テンソル列の名前。

N/A

vectorCol

不可

ベクトル列の名前。

N/A

kernelType

不可

カーネル関数の型。 有効な値:

  • RBF

  • ポリ

  • SIGMOID

  • リニア

RBF

coef0

不可

カーネル関数のcoef0パラメーター。

説明

このパラメーターは、カーネル関数の型が多項式またはシグモイドの場合にのみ有効です。

0.0

ガンマ

不可

カーネル関数のガンマパラメーター。

説明

このパラメーターは、カーネル関数の型がRBF、多項式、またはシグモイドの場合にのみ有効です。 このパラメーターを設定しない場合、デフォルト値の1/dataディメンションが使用されます。

-1.0

nu

不可

カーネル関数のnuパラメーター。 このパラメータは、サポートベクトルの数と正の相関がある。 有効な値: (0,1) 。

0.01

numThreads

不可

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

1

サンプルPythonコード:

df = pd.DataFrame([
[0.730967787376657,0.24053641567148587,0.6374174253501083,0.5504370051176339],
[0.7308781907032909,0.41008081149220166,0.20771484130971707,0.3327170559595112],
[0.7311469360199058,0.9014476240300544,0.49682259343089075,0.9858769332362016],
[0.731057369148862,0.07099203475193139,0.06712000939049956,0.768156984078079],
[0.7306094602878371,0.9187140138555101,0.9186071189908658,0.6795571637816596],
[0.730519863614471,0.08825840967622589,0.4889045498516358,0.461837214623537],
[0.7307886238322471,0.5796252073129174,0.7780122870716483,0.11499709190022733],
[0.7306990420600421,0.7491696031336331,0.34830970303125697,0.8972771427421047]])

# load data
data = BatchOperator.fromDataframe(df, schemaStr="x1 double, x2 double, x3 double, x4 double")

OcsvmOutlierBatchOp() \
            .setFeatureCols(["x1", "x2", "x3", "x4"]) \
            .setGamma(0.5) \
            .setNu(0.1) \
            .setKernelType("RBF") \
            .setPredictionCol("pred").linkFrom(data).print()