Megosztás:


rxFastForest: Fast Forest

Machine Learning Fast Forest

Használat

  rxFastForest(formula = NULL, data, type = c("binary", "regression"),
    numTrees = 100, numLeaves = 20, minSplit = 10, exampleFraction = 0.7,
    featureFraction = 0.7, splitFraction = 0.7, numBins = 255,
    firstUsePenalty = 0, gainConfLevel = 0, trainThreads = 8,
    randomSeed = NULL, 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 = 2,
    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.

type

Gyorsfatípust jelző karaktersztring:

  • "binary" az alapértelmezett fast tree bináris besoroláshoz vagy
  • "regression" a Fast Tree Regresszióhoz.

numTrees

Megadja az együttesben létrehozandó döntési fák teljes számát. További döntési fák létrehozásával jobb lefedettséget érhet el, de a betanítási idő nő. Az alapértelmezett érték 100.

numLeaves

A fákon létrehozható levelek (terminálcsomópontok) maximális száma. A magasabb értékek növelhetik a fa méretét, és nagyobb pontosságot érhetnek el, de túlillesztést kockáztatnak, és hosszabb betanítási időt igényelnek. Az alapértelmezett érték 20.

minSplit

A levélalakításhoz szükséges képzési példányok minimális száma. Ez azt a minimális számú dokumentumot teszi lehetővé, amely egy regressziós fa levélében engedélyezve van, az almintából vett adatokból. A "felosztás" azt jelenti, hogy a fa (csomópont) egyes szintjei véletlenszerűen vannak elosztva. Az alapértelmezett érték 10.

exampleFraction

Az egyes fákhoz használandó véletlenszerűen kiválasztott példányok töredéke. Az alapértelmezett érték 0,7.

featureFraction

Az egyes fákhoz használandó véletlenszerűen kiválasztott funkciók töredéke. Az alapértelmezett érték 0,7.

splitFraction

Az egyes felosztásokon használandó véletlenszerűen kiválasztott funkciók töredéke. Az alapértelmezett érték 0,7.

numBins

A különböző értékek (tárolók) maximális száma funkciónként. Az alapértelmezett érték 255.

firstUsePenalty

A funkció először a büntetési együtthatót használja. Az alapértelmezett érték 0.

gainConfLevel

A faillesztés megbízhatósági követelménye (a tartománynak [0,1]) kell lennie). Az alapértelmezett érték 0.

trainThreads

A betanításhoz használandó szálak száma. Ha NULL meg van adva, a használandó szálak száma belsőleg lesz meghatározva. Az alapértelmezett érték a NULL.

randomSeed

A véletlenszerű magot adja meg. Az alapértelmezett érték a NULL.

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

A döntési fák nem parametrikus modellek, amelyek sorozatot hajtanak végre
bemeneteken végzett egyszerű tesztek. Ez a döntési eljárás megfelelteti őket a betanítási adatkészletben található kimeneteknek, amelyek bemenetei hasonlóak voltak a feldolgozott példányhoz. A bináris fa adatstruktúrájának minden csomópontján döntés születik egy hasonlósági mérték alapján, amely rekurzív módon leképozza az egyes példányokat a fa ágain, amíg el nem éri a megfelelő levélcsomópontot, és vissza nem adja a kimeneti döntést.

A döntési fáknak számos előnye van:

A betanítás és az előrejelzés során a számítás és a memóriahasználat terén is hatékonyak.

Ezek nem lineáris döntési határokat jelölhetnek.

Integrált funkciók kiválasztását és besorolását végzik el.

Zajos funkciók jelenlétében rugalmasak.

A gyors erdőregresszió egy véletlenszerű erdő- és kvantilis regressziós erdő-implementáció az rxFastTrees regressziós fatanulójának használatával. A modell döntési fákból áll. A döntési erdő minden faja előrejelzéssel ad ki egy Gauss-eloszlást. Az összesítés a fák együttesén keresztül történik, hogy a modellben szereplő összes fa együttes eloszlásához legközelebb eső Gauss-eloszlást találjon.

Ez a döntési erdőosztályozó döntési fákból áll. Az együttesmodellek általában jobb lefedettséget és pontosságot biztosítanak, mint az önálló döntési fák. A döntési erdő minden faja előrejelzéssel ad ki egy Gauss-eloszlást. Az összesítés a fák együttesén keresztül történik, hogy a modellben szereplő összes fa együttes eloszlásához legközelebb eső Gauss-eloszlást találjon.

Érték

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

FastForest: A Fast Forest oktató osztályának tanulói specifikációs maml objektuma.

Jegyzetek

Ez az algoritmus többszálú, és mindig megpróbálja betölteni a teljes adathalmazt a memóriába.

Szerző(k)

Microsoft Corporation Microsoft Technical Support

Hivatkozások

Wikipedia: Random forest

Quantile regression forest

From Stumps to Trees to Forests

Lásd még

rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, kategorikus, kategorikusHash, rxPredict.mlModel.

Példák


 # Estimate a binary classification forest
 infert1 <- infert
 infert1$isCase = (infert1$case == 1)
 forestModel <- rxFastForest(formula = isCase ~ age + parity + education + spontaneous + induced,
         data = infert1)

 # Create text file with per-instance results using rxPredict
 txtOutFile <- tempfile(pattern = "scoreOut", fileext = ".txt")
 txtOutDS <- RxTextData(file = txtOutFile)
 scoreDS <- rxPredict(forestModel, data = infert1,
    extraVarsToWrite = c("isCase", "Score"), outData = txtOutDS)

 # Print the fist ten rows   
 rxDataStep(scoreDS, numRows = 10)

 # Clean-up
 file.remove(txtOutFile)

 ######################################################################
 # Estimate a regression fast forest

 # Use the built-in data set 'airquality' to create test and train data
 DF <- airquality[!is.na(airquality$Ozone), ]  
 DF$Ozone <- as.numeric(DF$Ozone)
 randomSplit <- rnorm(nrow(DF))
 trainAir <- DF[randomSplit >= 0,]
 testAir <- DF[randomSplit < 0,]
 airFormula <- Ozone ~ Solar.R + Wind + Temp

 # Regression Fast Forest for train data
 rxFastForestReg <- rxFastForest(airFormula, type = "regression", 
     data = trainAir)  

 # Put score and model variables in data frame
 rxFastForestScoreDF <- rxPredict(rxFastForestReg, data = testAir, 
     writeModelVars = TRUE)

 # Plot actual versus predicted values with smoothed line
 rxLinePlot(Score ~ Ozone, type = c("p", "smooth"), data = rxFastForestScoreDF)