次の方法で共有


rxOneClassSvm: OneClass SVM

Machine Learning One クラスサポート ベクター マシン

使用方法

  rxOneClassSvm(formula = NULL, data, cacheSize = 100, kernel = rbfKernel(),
    epsilon = 0.001, nu = 0.1, shrink = TRUE, normalize = "auto",
    mlTransforms = NULL, mlTransformVars = NULL, rowSelection = NULL,
    transforms = NULL, transformObjects = NULL, transformFunc = NULL,
    transformVars = NULL, transformPackages = NULL, transformEnvir = NULL,
    blocksPerRead = rxGetOption("blocksPerRead"),
    reportProgress = rxGetOption("reportProgress"), verbose = 1,
    computeContext = rxGetOption("computeContext"),
    ensemble = ensembleControl(), ...)

論争

formula

rxFormula で説明されている数式。 相互作用の用語と F() は、 MicrosoftML では現在サポートされていません。

data

.xdf ファイルまたはデータ フレーム オブジェクトを指定するデータ ソース オブジェクトまたは文字列。

cacheSize

トレーニング データを格納するキャッシュの最大サイズ (MB)。 大規模なトレーニング セットの場合は、これを増やします。 既定値は 100 MB です。

kernel

内部製品の計算に使用されるカーネルを表す文字列。 詳細については、 maKernel を参照してください。 次の選択肢があります。

  • rbfKernel():放射状基底関数カーネル。 そのパラメーターは、gammaという用語のexp(-gamma|x-y|^2を表します。 指定しない場合、既定では 1 使用するフィーチャの数で除算されます。 たとえば、rbfKernel(gamma = .1) のようにします。 これが既定値です。
  • linearKernel(): 線形カーネル。
  • polynomialKernel(): aという用語でパラメーター名biasdeg、および(a*<x,y> + bias)^degを持つ多項式カーネル。 biasは、既定で 0 に設定されます。 度 ( deg) は、既定で 3 に設定されます。 aが指定されていない場合は、1フィーチャの数で割った値に設定されます。 たとえば、maKernelPoynomial(bias = 0, deg = `` 3) のようにします。
  • sigmoidKernel(): パラメーター名がgammaされ、coef0という用語でtanh(gamma*<x,y> + coef0)されている Sigmoid カーネル。 gammaでは、既定では 1 特徴数で除算されます。 パラメーター coef0 既定値は 0 です。 たとえば、sigmoidKernel(gamma = .1, coef0 = 0) のようにします。

epsilon

オプティマイザーの収束のしきい値。 イテレーション間の改善がしきい値を下回った場合に、アルゴリズムが終了して現在のモデルが返されます。 値は、 .Machine$double.eps以上である必要があります。 既定値は 0.001 です。

nu

外れ値の割合とサポート ベクターの数の間のトレードオフ (ギリシャ文字 nu で表されます)。 0 から 1 の間 (通常は 0.1 から 0.5 の間) である必要があります。 既定値は 0.1 です。

shrink

TRUE場合は、縮小ヒューリスティックを使用します。 この場合、一部のサンプルはトレーニング手順中に "圧縮" され、トレーニングが高速化される可能性があります。 既定値は TRUE です。

normalize

使用する自動正規化の種類を指定します。

  • "auto": 正規化が必要な場合は、自動的に実行されます。 これが既定の選択肢です。
  • "no": 正規化は実行されません。
  • "yes": 正規化が実行されます。
  • "warn": 正規化が必要な場合は、警告メッセージが表示されますが、正規化は実行されません。
    正規化では、さまざまなデータ範囲が標準スケールに再スケーリングされます。 特徴量スケーリングは、データ ポイント間の距離が比例することを保証し、勾配降下などのさまざまな最適化方法がはるかに高速に収束できるようにします。 正規化を実行する場合は、 MaxMin ノーマライザーが使用されます。 間隔 [a, b] で値を正規化します。ここで、 -1 <= a <= 00 <= b <= 1b - a = 1。 このノーマライザーは、ゼロをゼロにマッピングすることで、スパーリティを維持します。

mlTransforms

トレーニングの前にデータに対して実行する MicrosoftML 変換の一覧を指定します。変換を実行しない場合は NULL します。 サポートされている変換については、 featurizeTextcategoricalおよび categoricalHash を参照してください。 これらの変換は、指定された R 変換の後に実行されます。 既定値は NULL です。

mlTransformVars

mlTransformsで使用する変数名の文字ベクトルを指定します。使用しない場合はNULLします。 既定値は NULL です。

rowSelection

モデルで使用されるデータ セットの行 (観測値) を、データ セットの論理変数の名前 (引用符で囲む) またはデータ セット内の変数を使用する論理式で指定します。 たとえば、 rowSelection = "old" では、変数 old の値が TRUEされた観測値のみが使用されます。 rowSelection = (age > 20) & (age < 65) & (log(income) > 10)は、age変数の値が 20 から 65 の範囲で、log変数のincomeの値が 10 より大きい観測値のみを使用します。 行の選択は、データ変換を処理した後に実行されます (引数 transforms または transformFuncを参照)。 すべての式と同様に、 rowSelection は式関数を使用して関数呼び出しの外部で定義できます。

transforms

変数変換の最初のラウンドを表すフォーム list(name = expression, ``...) の式。 すべての式と同様に、 transforms (または rowSelection) は、式関数を使用して関数呼び出しの外部で定義できます。

transformObjects

transformstransformsFunc、およびrowSelectionで参照できるオブジェクトを含む名前付きリスト。

transformFunc

変数変換関数。 詳細については、rxTransform を参照してください。

transformVars

変換関数に必要な入力データ セット変数の文字ベクトル。 詳細については、rxTransform を参照してください。

transformPackages

変数変換関数で使用するために使用可能にしてプリロードする追加の R パッケージ ( rxGetOption("transformPackages")で指定されているものの外部) を指定する文字ベクトル。 たとえば、 RevoScaleR 関数で明示的に定義されている引数は、 transforms 引数と transformFunc 引数を使用して定義され、 formula または rowSelection 引数を使用して暗黙的に定義されます。 transformPackages引数をNULLすることもできます。これは、rxGetOption("transformPackages")外のパッケージがプリロードされていないことを示します。

transformEnvir

内部で開発され、変数データ変換に使用されるすべての環境の親として機能するユーザー定義環境。 transformEnvir = NULL場合は、親baseenv()を持つ新しい "ハッシュ" 環境が代わりに使用されます。

blocksPerRead

データ ソースから読み取られたデータのチャンクごとに読み取るブロックの数を指定します。

reportProgress

行処理の進行状況に関するレポートのレベルを指定する整数値。

  • 0: 進行状況は報告されません。
  • 1: 処理された行の数が印刷され、更新されます。
  • 2: 処理された行とタイミングが報告されます。
  • 3: 処理された行とすべてのタイミングが報告されます。

verbose

必要な出力量を指定する整数値。 0場合、計算中に詳細な出力は出力されません。 1から4までの整数値により、情報の量が増えます。

computeContext

有効な RxComputeContext で指定された計算を実行するコンテキストを設定します。 現在、ローカルおよび RxInSqlServer コンピューティング コンテキストがサポートされています。

ensemble

エンレンブリングの制御パラメーター。

...

Microsoft コンピューティング エンジンに直接渡される追加の引数。

詳細

検出は、一部のターゲット クラスに属していない外れ値を識別することです。 トレーニング セットにはターゲット クラスの例のみが含まれているため、この種類の SVM は 1 クラスです。 ターゲット クラス内のオブジェクトに対して正常なプロパティを推測し、これらのプロパティから、通常の例とは異なる例を予測します。 これは、トレーニング例の不足が異常の定義特性であるため、異常検出に役立ちます。通常、ネットワーク侵入、不正行為、またはその他の種類の異常な動作の例はほとんどありません。

価値

rxOneClassSvm: トレーニング済みモデルを持つ rxOneClassSvm オブジェクト。

OneClassSvm: OneClass Svm トレーナーのクラス maml の学習者指定オブジェクト。

注記

このアルゴリズムはシングル スレッドであり、常にデータセット全体をメモリに読み込もうとします。

作成者

Microsoft Corporation Microsoft Technical Support

リファレンス

Anomaly detection

Azure Machine Learning Studio (classic): One-Class Support Vector Machine

Support of a High-Dimensional Distribution

Support Vector Algorithms

for Support Vector Machines

こちらも参照ください

rbfKernellinearKernelpolynomialKernelsigmoidKernelrxFastTreesrxFastForestrxFastLinearrxLogisticRegressionrxNeuralNetfeaturizeTextcategoricalcategoricalHashrxPredict.mlModel

例示


 # Estimate a One-Class SVM model
 trainRows <- c(1:30, 51:80, 101:130)
 testRows = !(1:150 %in% trainRows)
 trainIris <- iris[trainRows,]
 testIris <- iris[testRows,]

 svmModel <- rxOneClassSvm(
     formula = ~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width,
     data = trainIris)

 # Add additional non-iris data to the test data set
 testIris$isIris <- 1
 notIris <- data.frame(
     Sepal.Length = c(2.5, 2.6),
     Sepal.Width = c(.75, .9),
     Petal.Length = c(2.5, 2.5),
     Petal.Width = c(.8, .7),
     Species = c("not iris", "not iris"),
     isIris = 0)
 testIris <- rbind(testIris, notIris)  

 scoreDF <- rxPredict(svmModel, 
      data = testIris, extraVarsToWrite = "isIris")

 # Look at the last few observations
 tail(scoreDF)
 # Look at average scores conditioned by 'isIris'
 rxCube(Score ~ F(isIris), data = scoreDF)