Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
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)