Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Bosque rápido de Machine Learning
Uso
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(), ...)
Argumentos
formula
Fórmula tal como se describe en rxFormula. Los términos de interacción y F() no se admiten actualmente en MicrosoftML.
data
Objeto de origen de datos o cadena de caracteres que especifica un archivo .xdf o un objeto de trama de datos.
type
Cadena de caracteres que indica el tipo de árbol rápido:
-
"binary"para la clasificación binaria de árbol rápido predeterminada o -
"regression"para Regresión de árbol rápido.
numTrees
Especifica el número total de árboles de decisión que se van a crear en el conjunto. Al crear más árboles de decisión, puede obtener una mejor cobertura, pero el tiempo de entrenamiento aumenta. El valor predeterminado es 100.
numLeaves
Número máximo de hojas (nodos terminales) que se pueden crear en cualquier árbol. Los valores más altos pueden aumentar el tamaño del árbol y obtener una mejor precisión, pero corre el riesgo de sobreajustar y requerir tiempos de entrenamiento más largos. El valor predeterminado es 20.
minSplit
Número mínimo de instancias de entrenamiento necesarias para formar una hoja. Es decir, el número mínimo de documentos permitidos en una hoja de un árbol de regresión, fuera de los datos sub muestreados. Una "división" significa que las características de cada nivel del árbol (nodo) se dividen aleatoriamente. El valor predeterminado es 10.
exampleFraction
Fracción de instancias elegidas aleatoriamente que se van a usar para cada árbol. El valor predeterminado es 0,7.
featureFraction
Fracción de características elegidas aleatoriamente que se van a usar para cada árbol. El valor predeterminado es 0,7.
splitFraction
Fracción de características elegidas aleatoriamente que se usarán en cada división. El valor predeterminado es 0,7.
numBins
Número máximo de valores distintos (intervalos) por característica. El valor predeterminado es 255.
firstUsePenalty
La característica usa primero el coeficiente de penalización. El valor predeterminado es 0.
gainConfLevel
Requisito de confianza de ganancia de ajuste de árbol (debe estar en el intervalo [0,1)). El valor predeterminado es 0.
trainThreads
Número de subprocesos que se van a usar en el entrenamiento. Si NULL se especifica , el número de subprocesos que se van a usar se determina internamente. El valor predeterminado es NULL.
randomSeed
Especifica la inicialización aleatoria. El valor predeterminado es NULL.
mlTransforms
Especifica una lista de transformaciones de MicrosoftML que se van a realizar en los datos antes del entrenamiento o NULL si no se va a realizar ninguna transformación. Consulte featurizeText, categorical y categoricalHash para ver las transformaciones admitidas. Estas transformaciones se realizan después de las transformaciones de R especificadas. El valor predeterminado es NULL.
mlTransformVars
Especifica un vector de caracteres de nombres de variable en mlTransforms los que se va a usar o NULL si no se va a usar ninguno. El valor predeterminado es NULL.
rowSelection
Especifica las filas (observaciones) del conjunto de datos que va a usar el modelo con el nombre de una variable lógica del conjunto de datos (entre comillas) o con una expresión lógica mediante variables del conjunto de datos. Por ejemplo, rowSelection = "old" solo usará observaciones en las que el valor de la variable old es TRUE.
rowSelection = (age > 20) & (age < 65) & (log(income) > 10) solo usa observaciones en las que el valor de la age variable está comprendido entre 20 y 65 y el valor de log la income variable es mayor que 10. La selección de filas se realiza después de procesar las transformaciones de datos (vea los argumentos transforms o transformFunc). Al igual que con todas las expresiones, rowSelection se puede definir fuera de la llamada de función mediante la función expression.
transforms
Expresión del formulario list(name = expression, ``...) que representa la primera ronda de transformaciones de variables. Al igual que con todas las expresiones, transforms (o rowSelection) se puede definir fuera de la llamada de función mediante la función expression.
transformObjects
Lista con nombre que contiene objetos a los que puede hacer referencia transforms, transformsFuncy rowSelection.
transformFunc
Función de transformación de variables. Consulte rxTransform para obtener más información.
transformVars
Vector de caracteres de variables del conjunto de datos de entrada necesarias para la función de transformación. Consulte rxTransform para obtener más información.
transformPackages
Vector de caracteres que especifica paquetes de R adicionales (fuera de los especificados en rxGetOption("transformPackages")) que se van a poner a disposición y cargar previamente para su uso en las funciones de transformación de variables. Por ejemplo, los definidos explícitamente en las funciones de RevoScaleR a través de sus transforms argumentos y transformFunc o los definidos implícitamente a través de sus formula argumentos o rowSelection . El transformPackages argumento también puede ser NULL, que indica que no hay paquetes externos rxGetOption("transformPackages") cargados previamente.
transformEnvir
Un entorno definido por el usuario que sirve como elemento primario para todos los entornos desarrollados internamente y se usa para la transformación de datos variables. Si transformEnvir = NULLes , se usa en su lugar un nuevo entorno "hash" con el elemento primario baseenv() .
blocksPerRead
Especifica el número de bloques que se van a leer para cada fragmento de datos leídos desde el origen de datos.
reportProgress
Valor entero que especifica el nivel de informes sobre el progreso del procesamiento de filas:
-
0: no se notifica ningún progreso. -
1: el número de filas procesadas se imprime y actualiza. -
2: se notifican filas procesadas y tiempos. -
3: se notifican filas procesadas y todos los intervalos.
verbose
Valor entero que especifica la cantidad de salida deseada. Si 0es , no se imprime ninguna salida detallada durante los cálculos. Valores enteros de 1 para 4 proporcionar cantidades crecientes de información.
computeContext
Establece el contexto en el que se ejecutan los cálculos, especificados con un rxComputeContext válido. Actualmente se admiten contextos de proceso locales y RxInSqlServer.
ensemble
Parámetros de control para el montaje.
...
Argumentos adicionales que se van a pasar directamente al motor de proceso de Microsoft.
Detalles
Los árboles de decisión son modelos no paramétricos que realizan una secuencia
de pruebas simples en entradas. Este procedimiento de decisión los asigna a las salidas encontradas en el conjunto de datos de entrenamiento cuyas entradas eran similares a la instancia que se está procesando. Se toma una decisión en cada nodo de la estructura de datos del árbol binario en función de una medida de similitud que asigna cada instancia de forma recursiva a través de las ramas del árbol hasta que se alcanza el nodo hoja adecuado y se devuelve la decisión de salida.
Los árboles de decisión tienen varias ventajas:
Son eficientes tanto en el cálculo como en la utilización de la memoria durante el entrenamiento y la predicción.
Pueden representar límites de decisión no lineales.
Realizan la selección y clasificación de características integradas.
Son resistentes en presencia de características ruidosas.
La regresión rápida del bosque es un bosque aleatorio y una implementación de bosque de regresión cuantil mediante el aprendiz de árbol de regresión en rxFastTrees. El modelo consta de un conjunto de árboles de decisión. Cada árbol de un bosque de decisión genera una distribución gaussiana mediante la predicción. Se realiza una agregación sobre el conjunto de árboles para buscar la distribución gaussiana más cercana a la distribución combinada de todos los árboles del modelo.
Este clasificador de bosque de decisión consta de un conjunto de árboles de decisión. Por lo general, los modelos de conjunto proporcionan mejor cobertura y precisión que los árboles de decisión únicos. Cada árbol de un bosque de decisión genera una distribución gaussiana mediante la predicción. Se realiza una agregación sobre el conjunto de árboles para buscar la distribución gaussiana más cercana a la distribución combinada de todos los árboles del modelo.
Importancia
rxFastForest: un rxFastForest objeto con el modelo entrenado.
FastForest: un objeto de especificación del aprendiz de clase maml para el entrenador de Bosque rápido.
Notas
Este algoritmo es multiproceso y siempre intentará cargar todo el conjunto de datos en la memoria.
Autor(es)
Microsoft Corporation Microsoft Technical Support
Referencias
From Stumps to Trees to Forests
Consulte también
rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Ejemplos
# 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)