Megosztás:


rxOneClassSvm: OneClass SVM

Machine Learning Egy osztály támogatása vektorgépek

Használat

  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(), ...)

Érvek

formula

A képlet az rxFormulában leírtak szerint. Interakciós feltételek, és F() jelenleg nem támogatottak a MicrosoftML-ben.

data

.xdf-fájlt vagy adatkeret-objektumot meghatározó adatforrás-objektum vagy karaktersztring.

cacheSize

A betanítási adatokat tároló gyorsítótár maximális mérete MB-ban. Növelje ezt a nagy betanítási csoportok esetében. Az alapértelmezett érték 100 MB.

kernel

A belső termékek számításához használt kernelt jelképező karaktersztring. További információ: maKernel. A következő lehetőségek érhetők el:

  • rbfKernel(): Radiális alapfüggvény kernel. Paramétere a kifejezésben gammaszerepelexp(-gamma|x-y|^2. Ha nincs megadva, az alapértelmezés szerint 1 a használt funkciók számával van osztva. Például: rbfKernel(gamma = .1). Ez az alapértelmezett érték.
  • linearKernel(): Lineáris kernel.
  • polynomialKernel(): Polinom kernel paraméternevekkel a, biasés deg a kifejezésben (a*<x,y> + bias)^deg. Az biasalapértelmezett érték a következő.0 A fok, degaz alapértelmezett érték a következő.3 Ha a nincs megadva, akkor a 1 funkció a funkciók számával van osztva. Például: maKernelPoynomial(bias = 0, deg = `` 3).
  • sigmoidKernel(): Sigmoid kernel paraméternevekkel gamma és coef0 a kifejezésben tanh(gamma*<x,y> + coef0). gammaalapértelmezés szerint 1 osztva a funkciók számával. A paraméter coef0 alapértelmezés szerint a következő.0 Például: sigmoidKernel(gamma = .1, coef0 = 0).

epsilon

Az optimalizáló konvergenciájának küszöbértéke. Ha az iterációk közötti javulás kisebb, mint a küszöbérték, az algoritmus leáll, és visszaadja az aktuális modellt. Az értéknek nagyobbnak vagy egyenlőnek .Machine$double.epskell lennie. Az alapértelmezett érték 0,001.

nu

A kiugró értékek törtrésze és a támogató vektorok száma közötti kompromisszum (amelyet a görög nu betű jelöl). 0 és 1 között kell lennie, általában 0,1 és 0,5 között. Az alapértelmezett érték 0,1.

shrink

A zsugorító heurisztikus ha TRUE. Ebben az esetben egyes minták "zsugorulnak" a betanítási eljárás során, ami felgyorsíthatja a betanítást. Az alapértelmezett érték a TRUE.

normalize

A használt automatikus normalizálás típusát adja meg:

  • "auto": ha normalizálásra van szükség, a rendszer automatikusan végrehajtja. Ez az alapértelmezett választás.
  • "no": nem történik normalizálás.
  • "yes": normalizálás történik.
  • "warn": ha normalizálásra van szükség, figyelmeztető üzenet jelenik meg, de a normalizálás nem történik meg.
    A normalizálás az adattartományokat standard méretezésre skálázza át. A funkciók skálázása biztosítja az adatpontok közötti távolságok arányosak, és lehetővé teszi a különböző optimalizálási módszereket, például a színátmenetes süllyedést, hogy sokkal gyorsabban konvergáljanak. Normalizálás esetén a rendszer normalizálót MaxMin használ. Normalizálja az értékeket egy intervallumban [a, b] ahol -1 <= a <= 0és 0 <= b <= 1 .b - a = 1 Ez a normalizáló a nulláról nullára való leképezéssel megőrzi a ritkaságot.

mlTransforms

Megadja azon MicrosoftML-átalakítások listáját, amelyeket betanítás előtt el kell végezni az adatokon, vagy NULL hogy nem kell-e átalakításokat végrehajtani. A támogatott átalakításokról lásd : featurizeText, kategorikus és kategorikusHash. Ezek az átalakítások a megadott R-átalakítások után lesznek végrehajtva. Az alapértelmezett érték a NULL.

mlTransformVars

A változónevek mlTransforms karaktervektorát adja meg, vagy NULL ha egyik sem használható. Az alapértelmezett érték a NULL.

rowSelection

Az adathalmaz azon sorait (megfigyeléseit) adja meg, amelyeket a modell az adathalmazból származó logikai változó nevével (idézőjelekben) vagy az adathalmaz változóit használó logikai kifejezéssel használ. Például csak olyan megfigyeléseket fog használni, rowSelection = "old" amelyekben a változó old értéke .TRUE rowSelection = (age > 20) & (age < 65) & (log(income) > 10) csak olyan megfigyeléseket használ, amelyekben a age változó értéke 20 és 65 között van, és a logincome változó értéke nagyobb, mint 10. A sorkijelölés az adatátalakítások feldolgozása után történik (lásd az argumentumokat transforms vagy transformFunca ). Az összes kifejezéshez hasonlóan a rowSelection függvényhíváson kívül is definiálható a kifejezésfüggvény használatával.

transforms

Az űrlap list(name = expression, ``...) kifejezése, amely a változóátalakítások első fordulóját jelöli. Az összes kifejezéshez transforms hasonlóan (vagy rowSelection) a függvényhíváson kívül is definiálható a kifejezésfüggvény használatával.

transformObjects

Névvel ellátott lista, amely olyan objektumokat tartalmaz, amelyekre hivatkozni transformslehet.transformsFuncrowSelection

transformFunc

A változó transzformációs függvénye. Részletekért tekintse meg az rxTransformot.

transformVars

A bemeneti adathalmaz változóinak karaktervektora, amely az átalakítási függvényhez szükséges. Részletekért tekintse meg az rxTransformot.

transformPackages

Egy karaktervektor, amely további R-csomagokat határoz meg (a megadottakon rxGetOption("transformPackages")kívül), amelyeket elérhetővé kell tenni és előre be kell tölteni a változóátalakítási függvényekben való használatra. A RevoScaleR-ben explicit módon definiált függvények például azok és transforms argumentumaiktransformFunc, illetve az azok vagy formula argumentumaik rowSelection által implicit módon definiált függvények. Az transformPackages argumentum lehet NULLaz is, amely azt jelzi, hogy nincsenek előre betöltött csomagok.rxGetOption("transformPackages")

transformEnvir

Felhasználó által definiált környezet, amely szülőként szolgál minden belső fejlesztésű és változó adatátalakításhoz használt környezethez. Ha transformEnvir = NULLa rendszer ehelyett egy új "kivonat" környezetet használ szülővel baseenv() .

blocksPerRead

Megadja az adatforrásból beolvasott adattömbök olvasási blokkjainak számát.

reportProgress

Egész számérték, amely a sorfeldolgozási folyamat jelentési szintjét határozza meg:

  • 0: nem jelent előrehaladást.
  • 1: a feldolgozott sorok száma ki lesz nyomtatva és frissítve.
  • 2: a feldolgozott sorok és az időzítések jelentése.
  • 3: feldolgozott sorok és az összes időzítés jelentése.

verbose

Egy egész szám, amely meghatározza a kívánt kimenet mennyiségét. Ha 0, a számítások során a rendszer nem nyomtat részletes kimenetet. Egész számértékek a 1 növekvő mennyiségű információ biztosításához 4 .

computeContext

Beállítja a számítások végrehajtásának környezetét egy érvényes RxComputeContexttel megadva. Jelenleg a helyi és az RxInSqlServer számítási környezetek támogatottak.

ensemble

Vezérlési paraméterek a ensemblinghez.

...

További argumentumok, amelyek közvetlenül a Microsoft számítási motornak lesznek átadva.

Részletek

az észlelés olyan kiugró értékek azonosítására használható, amelyek nem tartoznak valamilyen célosztályhoz. Az SVM ilyen típusa egyosztályos, mert a betanítási csoport csak a célosztályból származó példákat tartalmaz. Ebből arra következtet, hogy a célosztály objektumai milyen tulajdonságokat használnak, és ezekből a tulajdonságokból előrejelzi, hogy mely példák különböznek a normál példáktól. Ez azért hasznos az anomáliadetektáláshoz, mert a betanítási példák szűkössége az anomáliák meghatározó karaktere: általában nagyon kevés példa van hálózati behatolásra, csalásra vagy egyéb rendellenes viselkedésre.

Érték

rxOneClassSvm: A rxOneClassSvm betanított modellel rendelkező objektum.

OneClassSvm: A OneClass Svm oktató osztályának tanulói specifikációs maml objektuma.

Jegyzetek

Ez az algoritmus egyszálas, és mindig megpróbálja betölteni a teljes adathalmazt a memóriába.

Szerző(k)

Microsoft Corporation Microsoft Technical Support

Hivatkozások

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

Lásd még

rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.mlModel.

Példák


 # 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)