다음을 통해 공유


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)입니다. 대규모 학습 집합에 대해 이 값을 늘입니다. 기본값은 100MB입니다.

kernel

내부 제품을 계산하는 데 사용되는 커널을 나타내는 문자 문자열입니다. 자세한 내용은 maKernel을 참조하세요. 다음 중에서 선택할 수 있습니다.

  • rbfKernel(): 방사형 기본 함수 커널입니다. 해당 매개 변수는 gamma 용어 exp(-gamma|x-y|^2로 나타냅니다. 지정하지 않으면 기본적으로 1 사용되는 기능 수로 나뉩니다. 예: rbfKernel(gamma = .1). 기본값입니다.
  • linearKernel(): 선형 커널입니다.
  • polynomialKernel(): 매개 변수 이름이 abias있는 다항식 커널 및 deg 용어 (a*<x,y> + bias)^deg. 기본값은 bias.입니다 0. degree, deg즉 기본값은 .입니다 3. 지정하지 않으면 a 기능 수로 나누도록 1 설정됩니다. 예: maKernelPoynomial(bias = 0, deg = `` 3).
  • sigmoidKernel(): 매개 변수 이름과 gammacoef0 용어 tanh(gamma*<x,y> + coef0)가 있는 시그모이드 커널입니다. gamma- 기본적으로 1 기능 수로 나뉩니다. 매개 변수 coef0 의 기본값은 .입니다 0. 예: sigmoidKernel(gamma = .1, coef0 = 0).

epsilon

최적화 프로그램 수렴을 위한 임계값입니다. 반복 간의 개선 수준이 임계값보다 낮으면 알고리즘이 중지되며 현재 모델이 반환됩니다. 값은 0보다 크거나 같 .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. 이 정규화기는 0에서 0으로 매핑하여 스파스를 유지합니다.

mlTransforms

학습 전 또는 NULL 변환이 수행되지 않을 경우 데이터에서 수행할 MicrosoftML 변환 목록을 지정합니다. 지원되는 변환 은 featurizeText, 범주범주Hash를 참조하세요. 이러한 변환은 지정된 R 변환 후에 수행됩니다. 기본값은 NULL입니다.

mlTransformVars

사용할 변수 이름의 문자 벡터를 지정하거나 mlTransforms 사용할 NULL 변수가 없는 경우 지정합니다. 기본값은 NULL입니다.

rowSelection

데이터 집합의 논리 변수 이름(따옴표)을 사용하거나 데이터 집합의 변수를 사용하는 논리 식과 함께 모델에서 사용할 데이터 집합의 행(관찰)을 지정합니다. 예를 들어 rowSelection = "old" 변수 oldTRUE값이 있는 관찰만 사용합니다. rowSelection = (age > 20) & (age < 65) & (log(income) > 10)변수 값이 20에서 65 agelog 사이이고 변수 값 income 이 10보다 큰 관찰만 사용합니다. 행 선택은 데이터 변환을 처리한 후 수행됩니다(인수 transforms 또는 transformFunc참조). 모든 식과 마찬가지로 식 rowSelection 함수를 사용하여 함수 호출 외부에서 정의할 수 있습니다.

transforms

변수 변환의 첫 번째 라운드를 나타내는 폼 list(name = expression, ``...) 의 식입니다. 모든 식과 마찬가지로 식 함수를 transforms 사용하여 함수 호출 외부에서 정의할 수 있습니다.rowSelection

transformObjects

, transformstransformsFunc.에서 참조할 수 있는 개체가 포함된 명명된 rowSelection목록입니다.

transformFunc

변수 변환 함수입니다. 자세한 내용은 rxTransform을 참조하세요.

transformVars

변환 함수에 필요한 입력 데이터 집합 변수의 문자 벡터입니다. 자세한 내용은 rxTransform을 참조하세요.

transformPackages

변수 변환 함수에서 rxGetOption("transformPackages")사용할 수 있도록 미리 로드할 추가 R 패키지(지정된 패키지 외부)를 지정하는 문자 벡터입니다. 예를 들어 RevoScaleR 함수에 명시적으로 정의된 함수는 해당 함수와 transforms 인수 또는 인수를 통해 암시적으로 정의된 인수를 transformFunc 통해 formularowSelection 함수를 정의합니다. 인수는 transformPackages 외부 NULL 패키지가 미리 로드되지 않았음을 나타내는 인수일 수도 rxGetOption("transformPackages")있습니다.

transformEnvir

내부적으로 개발되어 변수 데이터 변환에 사용되는 모든 환경의 부모 역할을 하는 사용자 정의 환경입니다. 이 경우 transformEnvir = NULL부모가 baseenv() 있는 새 "해시" 환경이 대신 사용됩니다.

blocksPerRead

데이터 원본에서 읽은 데이터의 각 청크에 대해 읽을 블록 수를 지정합니다.

reportProgress

행 처리 진행률에 대한 보고 수준을 지정하는 정수 값입니다.

  • 0: 진행률이 보고되지 않습니다.
  • 1: 처리된 행 수가 인쇄되고 업데이트됩니다.
  • 2: 행이 처리되고 타이밍이 보고됩니다.
  • 3: 행이 처리되고 모든 타이밍이 보고됩니다.

verbose

원하는 출력의 양을 지정하는 정수 값입니다. 이 경우 0계산 중에 자세한 정보 출력이 인쇄되지 않습니다. 증가하는 양의 정보를 제공하기 위한 1 정수 값 4 입니다.

computeContext

유효한 RxComputeContext로 지정된 계산이 실행되는 컨텍스트를 설정합니다. 현재 로컬 및 RxInSqlServer 컴퓨팅 컨텍스트가 지원됩니다.

ensemble

ensembling에 대한 컨트롤 매개 변수입니다.

...

Microsoft 컴퓨팅 엔진에 직접 전달할 추가 인수입니다.

세부 정보

검색은 일부 대상 클래스에 속하지 않는 이상값을 식별하는 것입니다. 학습 집합에는 대상 클래스의 예제만 포함되므로 이 유형의 SVM은 한 클래스입니다. 대상 클래스의 개체에 대해 어떤 속성이 일반적인지 유추하고 이러한 속성에서 일반 예제와는 다른 예제를 예측합니다. 이는 학습 예제의 부족이 변칙의 정의 문자이기 때문에 변칙 검색에 유용합니다. 일반적으로 네트워크 침입, 사기 또는 기타 유형의 비정상적인 동작의 예는 거의 없습니다.

가치

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

참고하십시오

rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.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)