Sdílet prostřednictvím


rxFastForest: Fast Forest

Rychlý doménový struktura služby Machine Learning

Použití

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

Argumenty

formula

Vzorec, jak je popsáno v rxFormula. Podmínky interakce a F() v MicrosoftML se v současné době nepodporují.

data

Objekt zdroje dat nebo řetězec znaku určující soubor .xdf nebo objekt datového rámce.

type

Znakový řetězec označující typ Fast Tree:

  • "binary" pro výchozí binární klasifikaci rychlého stromu nebo
  • "regression" pro regresi rychlého stromu.

numTrees

Určuje celkový počet rozhodovacích stromů, které se mají vytvořit v souboru. Vytvořením více rozhodovacích stromů můžete potenciálně získat lepší pokrytí, ale doba trénování se zvyšuje. Výchozí hodnota je 100.

numLeaves

Maximální počet listů (terminálových uzlů), které lze vytvořit v libovolném stromu. Vyšší hodnoty potenciálně zvětší velikost stromu a získají lepší přesnost, ale riskuje přeurčení a vyžaduje delší dobu trénování. Výchozí hodnota je 20.

minSplit

Minimální počet trénovacích instancí potřebných k vytvoření listu To znamená, že minimální počet dokumentů povolených v listu regresního stromu z dat s dílčím vzorkem. "rozdělením" se rozumí, že funkce na každé úrovni stromu (uzlu) jsou náhodně rozdělené. Výchozí hodnota je 10.

exampleFraction

Zlomek náhodně zvolených instancí, které se mají použít pro každý strom. Výchozí hodnota je 0,7.

featureFraction

Zlomek náhodně zvolených funkcí, které se mají použít pro každý strom. Výchozí hodnota je 0,7.

splitFraction

Zlomek náhodně zvolených funkcí, které se mají použít pro každé rozdělení. Výchozí hodnota je 0,7.

numBins

Maximální početjedinečných Výchozí hodnota je 255.

firstUsePenalty

Funkce nejprve používá penalizační koeficient. Výchozí hodnota je 0.

gainConfLevel

Požadavek na získání spolehlivosti stromové fitovky (by měl být v rozsahu [0,1)). Výchozí hodnota je 0.

trainThreads

Počet vláken, která se mají použít při trénování. Pokud NULL je zadán, počet vláken, která se mají použít, je určen interně. Výchozí hodnota je NULL.

randomSeed

Určuje náhodné počáteční. Výchozí hodnota je NULL.

mlTransforms

Určuje seznam transformací MicrosoftML, které mají být provedeny s daty před trénováním nebo NULL pokud nejsou provedeny žádné transformace. Informace o podporovaných transformacích najdete v tématu featurizeText, kategorický a kategorickýHash. Tyto transformace se provádějí po všech zadaných transformacích jazyka R. Výchozí hodnota je NULL.

mlTransformVars

Určuje vektor znaku názvů proměnných, který se má použít, mlTransforms nebo NULL pokud se má použít žádný. Výchozí hodnota je NULL.

rowSelection

Určuje řádky (pozorování) ze sady dat, které má model používat s názvem logické proměnné ze sady dat (v uvozovkách) nebo logickým výrazem pomocí proměnných v sadě dat. Použije například pouze pozorování, rowSelection = "old" ve kterých je oldhodnota proměnné TRUE . rowSelection = (age > 20) & (age < 65) & (log(income) > 10) používá pouze pozorování, ve kterých je hodnota age proměnné mezi 20 a 65 a hodnotou logincome proměnné je větší než 10. Výběr řádku se provede po zpracování všech transformací dat (viz argumenty transforms nebo transformFunc). Stejně jako u všech výrazů rowSelection je možné definovat mimo volání funkce pomocí funkce výrazu.

transforms

Výraz formuláře list(name = expression, ``...) , který představuje první kolo transformací proměnných. Stejně jako u všech výrazů transforms lze definovat (nebo rowSelection) mimo volání funkce pomocí funkce výrazu.

transformObjects

Pojmenovaný seznam obsahující objekty, na které lze odkazovat pomocí transforms, transformsFunca rowSelection.

transformFunc

Proměnná transformační funkce. Podrobnosti najdete v souboru rxTransform.

transformVars

Znakový vektor vstupních proměnných množiny dat potřebných pro transformační funkci. Podrobnosti najdete v souboru rxTransform.

transformPackages

Znakový vektor určující další balíčky jazyka R (mimo balíčky uvedené v rxGetOption("transformPackages")) pro zpřístupnění a předběžné načtení pro použití v transformačních funkcích proměnných. Například ty, které jsou explicitně definované ve funkcích RevoScaleR prostřednictvím jejich transforms a transformFunc argumentů nebo těch, které jsou definovány implicitně prostřednictvím jejich formula nebo rowSelection argumentů. Argumentem transformPackages může být NULLtaké indikující, že nejsou předem načteny žádné balíčky mimo rxGetOption("transformPackages") .

transformEnvir

Uživatelem definované prostředí, které bude sloužit jako nadřazené všem prostředím vyvinutým interně a které se používají k transformaci proměnných dat. Pokud transformEnvir = NULLse místo toho použije nové prostředí hash s nadřazeným objektem baseenv() .

blocksPerRead

Určuje početblokůch

reportProgress

Celočíselná hodnota, která určuje úroveň generování sestav o průběhu zpracování řádků:

  • 0: Nebyl hlášen žádný průběh.
  • 1: Počet zpracovaných řádků se vytiskne a aktualizuje.
  • 2: Jsou hlášeny řádky zpracovávané a časování.
  • 3: Jsou hlášeny řádky zpracovávané a všechna časování.

verbose

Celočíselná hodnota, která určuje požadovanou velikost výstupu. Pokud 0se během výpočtů nevytiskne žádný podrobný výstup. Celočíselné hodnoty, od 1 které se 4 poskytují rostoucí množství informací.

computeContext

Nastaví kontext, ve kterém se výpočty spouštějí, zadané pomocí platného RxComputeContext. V současné době se podporují místní výpočetní kontexty a výpočetní kontexty RxInSqlServer.

ensemble

Kontrolní parametry pro přemíscení

...

Další argumenty, které se mají předat přímo do výpočetního modulu Microsoftu.

Podrobnosti

Rozhodovací stromy jsou neparametrické modely, které provádějí sekvenci.
jednoduchých testů na vstupech. Tento postup rozhodování je mapuje na výstupy nalezené v trénovací datové sadě, jejichž vstupy se podobaly zpracovávané instanci. Rozhodnutí se provádí v každém uzlu datové struktury binárního stromu na základě míry podobnosti, která mapuje každou instanci rekurzivně přes větve stromu, dokud se nedosáhne příslušného uzlu typu list a vrácené výstupní rozhodnutí.

Rozhodovací stromy mají několik výhod:

Jsou efektivní při výpočtu i využití paměti během trénování a předpovědi.

Můžou představovat nelineární rozhodovací hranice.

Provádějí integrovaný výběr a klasifikaci funkcí.

Jsou odolné v přítomnosti hlučných funkcí.

Rychlá regrese doménové struktury je náhodná doménová struktura a implementace regresní doménové struktury pomocí učení regresního stromu v rxFastTrees. Model se skládá ze souboru rozhodovacích stromů. Každý strom v rozhodovacím lese vypíše gaussovské rozdělení predikcí. Agregace se provádí přes soubor stromů, aby bylo možné najít Gaussovské rozdělení nejblíže kombinované distribuci pro všechny stromy v modelu.

Tento klasifikátor rozhodovacího lesa se skládá ze souboru rozhodovacích stromů. Obecně platí, že modely souborů poskytují lepší pokrytí a přesnost než jednotlivé rozhodovací stromy. Každý strom v rozhodovacím lese vypíše gaussovské rozdělení predikcí. Agregace se provádí přes soubor stromů, aby bylo možné najít Gaussovské rozdělení nejblíže kombinované distribuci pro všechny stromy v modelu.

Hodnota

rxFastForest: Objekt rxFastForest s natrénovaným modelem.

FastForest: Předmět třídy pro maml trenéra Fast Forest.

Poznámky

Tento algoritmus je vícevláknový a vždy se pokusí načíst celou datovou sadu do paměti.

Autori

Microsoft Corporation Microsoft Technical Support

Odkazy

Wikipedia: Random forest

Quantile regression forest

From Stumps to Trees to Forests

Viz také

rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categoricalHash, rxPredict.mlModel.

Příklady


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