共用方式為


rxOneClassSvm:OneClass SVM

Machine Learning 一類支援向量機器

用法

  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 中所述的公式。 MicrosoftML 目前不支援互動字詞和 F()

data

指定 .xdf 檔案或資料框架物件的數據源物件或字元字串。

cacheSize

以 MB 為單位的快取大小上限,可儲存定型數據。 針對大型定型集增加這個值。 預設值為 100 MB。

kernel

字元字串,表示用於計算內部產品的核心。 如需詳細資訊,請參閱 maKernel。 可用的選項如下:

  • rbfKernel():星形基礎函式核心。 其參數在 gamma 詞彙 exp(-gamma|x-y|^2中表示。 如果未指定,則預設 1 會除以所使用的功能數目。 例如: rbfKernel(gamma = .1) 。 這是預設值。
  • linearKernel():線性核心。
  • polynomialKernel():具有參數名稱 abiasdeg 一詞 (a*<x,y> + bias)^deg的多項式核心。 預設 bias0。 度 , deg預設為 3。 如果未 a 指定,則會將它設定為 1 除以特徵數目。 例如: maKernelPoynomial(bias = 0, deg = `` 3)
  • sigmoidKernel():具有參數名稱和 gammacoef0 詞彙 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 如果未執行任何轉換,則為 。 如需支持的轉換,請參閱 featurizeText類別類別Hash。 這些轉換會在任何指定的 R 轉換之後執行。 預設值是 NULL

mlTransformVars

指定要用於 mlTransforms 中之變數名稱的字元向量,如果未 NULL 使用任何名稱,則為 。 預設值是 NULL

rowSelection

指定數據集中的數據列(觀察值),該數據集將由模型使用數據集名稱的邏輯變數名稱(以引號括住),或使用數據集中的變數搭配邏輯表達式使用。 例如,rowSelection = "old"只會使用變數oldTRUE值為的觀察。 rowSelection = (age > 20) & (age < 65) & (log(income) > 10)只會使用值,其中變數的值age介於 20 到 65 之間,而變數的值logincome大於 10。 數據列選取會在處理任何資料轉換之後執行(請參閱自變數 transformstransformFunc)。 如同所有表達式, rowSelection 可以使用表達式函數在函數調用外部定義。

transforms

表示第一輪變數轉換之窗體 list(name = expression, ``...) 的表達式。 如同所有表示式, transforms 可以使用表示式函數在函數呼叫外部定義 (或 rowSelection) 。

transformObjects

具名清單,其中包含 可由、 transformstransformsFunc參考的物件rowSelection

transformFunc

變數轉換函式。 如需詳細資訊,請參閱 rxTransform。

transformVars

轉換函式所需的輸入數據集變數字元向量。 如需詳細資訊,請參閱 rxTransform。

transformPackages

字元向量,指定要用於變數轉換函式的其他 R 套件(在 中所 rxGetOption("transformPackages")指定套件之外), 並預先載入。 例如, 在 RevoScaleR 函式中明確定義這些函式的 函式是透過 和 自變數,或是透過 或 transformstransformFuncformularowSelection 自變數隱含定義的函式。 自 transformPackages 變數也可能是 NULL,表示外部 rxGetOption("transformPackages") 未預先載入任何套件。

transformEnvir

使用者定義的環境,做為內部開發之所有環境的父系,並用於變數數據轉換。 如果 transformEnvir = NULL為 ,則會改用具有父 baseenv() 代的新「哈希」環境。

blocksPerRead

指定要針對從數據源讀取的每個數據區塊讀取的區塊數目。

reportProgress

整數值,指定數據列處理進度的報告層級:

  • 0:不會報告任何進度。
  • 1:列印和更新已處理的數據列數目。
  • 2:已處理的數據列和計時報告。
  • 3:已處理的數據列和報告所有計時。

verbose

指定所需輸出量的整數值。 如果 0為 ,則計算期間不會列印任何詳細信息輸出。 從 14 提供增加資訊量的整數值。

computeContext

設定執行計算的內容,以有效的 RxComputeContext 指定。 目前支援本機和 RxInSqlServer 計算內容。

ensemble

用於合奏的控制參數。

...

要直接傳遞至Microsoft計算引擎的其他自變數。

詳細資訊

偵測是識別不屬於某些目標類別的極端值。 這種類型的 SVM 是一個類別,因為定型集只包含來自目標類別的範例。 它會推斷目標類別中物件的正常屬性,並從這些屬性預測哪些範例與一般範例不同。 這對於異常偵測很有用,因為訓練範例的稀缺性是異常的決定性特徵:通常網路入侵、詐騙或其他異常行為的範例很少。

價值觀

rxOneClassSvm rxOneClassSvm:具有定型模型的 物件。

OneClassSvm:OneClass Svm 定型器類別 maml 的學習模組規格物件。

註釋

此演算法是單個線程,而且一律會嘗試將整個數據集載入記憶體。

作者(秒)

Microsoft公司 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

另請參閱

rbfKernellinearKernelpolynomialKernelsigmoidKernelrxFastTreesrxFastForestrxFastLinearrxLogisticRegressionrxNeuralNetfeaturizeTextcategoricalHashrxPredict.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)