Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Floresta Rápida do 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
A fórmula, conforme descrito em rxFormula. No momento, não há suporte para termos F()
de interação no MicrosoftML.
data
Um objeto de fonte de dados ou uma cadeia de caracteres especificando um arquivo .xdf ou um objeto de quadro de dados.
type
Uma cadeia de caracteres que indica o tipo árvore rápida:
-
"binary"
para a classificação binária de árvore rápida padrão ou -
"regression"
para regressão rápida de árvore.
numTrees
Especifica o número total de árvores de decisão a serem criadas no conjunto. Ao criar mais árvores de decisão, você pode potencialmente obter uma melhor cobertura, mas o tempo de treinamento aumenta. O valor padrão é 100.
numLeaves
O número máximo de folhas (nós de terminal) que podem ser criadas em qualquer árvore. Valores mais altos potencialmente aumentam o tamanho da árvore e obtêm melhor precisão, mas correm o risco de sobreajustá-lo e exigir tempos de treinamento mais longos. O valor padrão é 20.
minSplit
Número mínimo de instâncias de treinamento necessárias para formar uma folha. Ou seja, o número mínimo de documentos permitidos em uma folha de uma árvore de regressão, fora dos dados sub-amostrados. Uma 'divisão' significa que os recursos em cada nível da árvore (nó) são divididos aleatoriamente. O valor padrão é 10.
exampleFraction
A fração de instâncias escolhidas aleatoriamente a serem usadas para cada árvore. O valor padrão é 0,7.
featureFraction
A fração de recursos escolhidos aleatoriamente a serem usados para cada árvore. O valor padrão é 0,7.
splitFraction
A fração de recursos escolhidos aleatoriamente a serem usados em cada divisão. O valor padrão é 0,7.
numBins
Número máximo de valores distintos (compartimentos) por recurso. O valor padrão é 255.
firstUsePenalty
O recurso usa primeiro o coeficiente de penalidade. O valor padrão é 0.
gainConfLevel
Requisito de confiança de ganho de ajuste de árvore (deve estar no intervalo [0,1)). O valor padrão é 0.
trainThreads
O número de threads a serem usados no treinamento. Se NULL
for especificado, o número de threads a serem usados será determinado internamente. O valor padrão é NULL
.
randomSeed
Especifica a semente aleatória. O valor padrão é NULL
.
mlTransforms
Especifica uma lista de transformações do MicrosoftML a serem executadas nos dados antes do treinamento ou NULL
se nenhuma transformação deve ser executada. Consulte featurizeText, categórico e categórico para ver as transformações com suporte. Essas transformações são executadas após quaisquer transformações de R especificadas. O valor padrão é NULL
.
mlTransformVars
Especifica um vetor de caractere de nomes de variáveis a ser usado ou mlTransforms
NULL
se nenhum deve ser usado. O valor padrão é NULL
.
rowSelection
Especifica as linhas (observações) do conjunto de dados que devem ser usadas pelo modelo com o nome de uma variável lógica do conjunto de dados (entre aspas) ou com uma expressão lógica usando variáveis no conjunto de dados. Por exemplo, rowSelection = "old"
usará apenas observações nas quais o valor da variável old
é TRUE
.
rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
usa apenas observações nas quais o valor da age
variável está entre 20 e 65 e o valor da log
income
variável é maior que 10. A seleção de linha é executada após o processamento de transformações de dados (consulte os argumentos transforms
ou transformFunc
). Assim como acontece com todas as expressões, rowSelection
pode ser definido fora da chamada de função usando a função de expressão.
transforms
Uma expressão do formulário list(name = expression, ``...)
que representa a primeira rodada de transformações variáveis. Assim como acontece com todas as expressões, transforms
(ou rowSelection
) pode ser definido fora da chamada de função usando a função de expressão.
transformObjects
Uma lista nomeada que contém objetos que podem ser referenciados por transforms
, transformsFunc
e rowSelection
.
transformFunc
A função de transformação variável. Consulte rxTransform para obter detalhes.
transformVars
Um vetor de caractere das variáveis de conjunto de dados de entrada necessárias para a função de transformação. Consulte rxTransform para obter detalhes.
transformPackages
Um vetor de caracteres que especifica pacotes R adicionais (fora daqueles especificados em rxGetOption("transformPackages")
) a serem disponibilizados e pré-carregados para uso em funções de transformação variável. Por exemplo, aqueles explicitamente definidos em funções RevoScaleR por meio de seus transforms
argumentos ou transformFunc
argumentos ou aqueles definidos implicitamente por meio de seus formula
argumentos ou rowSelection
argumentos. O transformPackages
argumento também pode ser NULL
, indicando que nenhum pacote externo rxGetOption("transformPackages")
está pré-carregado.
transformEnvir
Um ambiente definido pelo usuário para servir como pai para todos os ambientes desenvolvidos internamente e usados para transformação de dados variáveis. Em transformEnvir = NULL
vez disso, um novo ambiente "hash" com pai baseenv()
será usado.
blocksPerRead
Especifica o número de blocos a serem lidos para cada parte dos dados lidos da fonte de dados.
reportProgress
Um valor inteiro que especifica o nível de relatório sobre o progresso do processamento de linhas:
-
0
: nenhum progresso é relatado. -
1
: o número de linhas processadas é impresso e atualizado. -
2
: linhas processadas e intervalos são relatados. -
3
: linhas processadas e todos os intervalos são relatados.
verbose
Um valor inteiro que especifica a quantidade de saída desejada. Se 0
, nenhuma saída detalhada será impressa durante os cálculos. Valores inteiros de 1
para 4
fornecer quantidades crescentes de informações.
computeContext
Define o contexto no qual os cálculos são executados, especificado com um RxComputeContext válido. Atualmente, há suporte para contextos de computação locais e RxInSqlServer.
ensemble
Controlar parâmetros para ensembling.
...
Argumentos adicionais a serem passados diretamente para o Mecanismo de Computação da Microsoft.
Detalhes
Árvores de decisão são modelos não paramétricos que executam uma sequência
de testes simples em entradas. Esse procedimento de decisão os mapeia para saídas encontradas no conjunto de dados de treinamento cujas entradas eram semelhantes à instância que está sendo processada. Uma decisão é tomada em cada nó da estrutura de dados de árvore binária com base em uma medida de similaridade que mapeia cada instância recursivamente pelos branches da árvore até que o nó folha apropriado seja atingido e a decisão de saída seja retornada.
As árvores de decisão têm várias vantagens:
São eficientes no uso de memória e computação durante o treinamento e a previsão.
Podem representar limites de decisão não lineares.
Elas executam a seleção de recursos integrados e classificação.
Elas são flexíveis na presença de recursos com ruídos.
A regressão rápida da floresta é uma implementação de floresta aleatória e floresta de regressão quantile usando o aprendiz de árvore de regressão em rxFastTrees. O modelo consiste em um conjunto de árvores de decisão. Cada árvore em uma floresta de decisão gera uma distribuição gaussiana por meio da previsão. É realizada uma agregação no conjunto de árvores para encontrar uma distribuição gaussiana mais próxima da combinada para todas as árvores no modelo.
Esse classificador de floresta de decisão consiste em um conjunto de árvores de decisão. Em termos gerais, os modelos de ensemble fornecem melhor cobertura e precisão que árvores de decisão únicas. Cada árvore em uma floresta de decisão gera uma distribuição gaussiana por meio da previsão. É realizada uma agregação no conjunto de árvores para encontrar uma distribuição gaussiana mais próxima da combinada para todas as árvores no modelo.
Valor
rxFastForest
: um rxFastForest
objeto com o modelo treinado.
FastForest
: um objeto de especificação de aluno da classe maml
para o treinador de Floresta Rápida.
Anotações
Esse algoritmo tem vários threads e sempre tentará carregar todo o conjunto de dados na memória.
Autor(s)
Microsoft Corporation Microsoft Technical Support
Referências
From Stumps to Trees to Forests
Consulte também
rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Exemplos
# 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)