Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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
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)