microsoftml.rx_ensemble: combinar os modelos em um só modelo
Uso
microsoftml.rx_ensemble(formula: str,
data: [<class 'revoscalepy.datasource.RxDataSource.RxDataSource'>,
<class 'pandas.core.frame.DataFrame'>, <class 'list'>],
trainers: typing.List[microsoftml.modules.base_learner.BaseLearner],
method: str = None, model_count: int = None,
random_seed: int = None, replace: bool = False,
samp_rate: float = None, combine_method: ['Average', 'Median',
'Vote'] = 'Median', max_calibration: int = 100000,
split_data: bool = False, ml_transforms: list = None,
ml_transform_vars: list = None, row_selection: str = None,
transforms: dict = None, transform_objects: dict = None,
transform_function: str = None,
transform_variables: list = None,
transform_packages: list = None,
transform_environment: dict = None, blocks_per_read: int = None,
report_progress: int = None, verbose: int = 1,
compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None)
Descrição
Treine um ensemble de modelos.
Detalhes
rx_ensemble
é uma função que treina vários modelos de vários tipos para obter um desempenho preditivo melhor do que seria obtido de um só modelo.
Argumentos
formula
Uma fórmula simbólica ou matemática na sintaxe Python válida, entre aspas duplas. Uma fórmula simbólica pode referenciar objetos na fonte de dados, como "creditScore ~ yearsEmploy"
.
No momento, não há suporte para termos de interação (creditScore * yearsEmploy
) e expressões (creditScore == 1
).
data
Um objeto de fonte de dados ou uma cadeia de caracteres que especifica um arquivo .xdf ou um objeto de dataframe. Como alternativa, ele pode ser uma lista de fontes de dados que indicam que cada modelo deve ser treinado usando uma das fontes de dados na lista. Nesse caso, o comprimento da lista de dados precisa ser igual a model_count.
trainers
Uma lista de treinadores com os respectivos argumentos. Os treinadores são criados usando FastTrees
, FastForest
, FastLinear
, LogisticRegression
, NeuralNetwork
ou OneClassSvm
.
method
Uma cadeia de caracteres que especifica o tipo de conjunto: "anomaly"
para Detecção de Anomalias, "binary"
para Classificação Binária, multiClass
para Classificação Multiclasse ou "regression"
para Regressão.
random_seed
Especifica a semente aleatória. O valor padrão é None
.
model_count
Especifica o número de modelos a serem treinados. Se esse número for maior que o comprimento da lista de treinadores, essa lista será duplicada para corresponder a model_count
.
substituir
Um valor lógico que especifica se a amostragem de observações deve ser feita com ou sem substituição. O valor padrão é False
.
samp_rate
Um escalar de valor positivo que especifica o percentual de observações a ser amostrado para cada treinador. O padrão é 1.0
para amostragem com substituição (ou seja, replace=True
) e 0.632
para amostragem sem substituição (ou seja, replace=False
). Quando split_data
é True
, o padrão de samp_rate
é 1.0
(não é feita nenhuma amostragem antes da divisão).
split_data
Um valor lógico que especifica se os modelos base devem ou não serem treinados em partições não sobrepostas.
O padrão é False
. Ele está disponível apenas para o contexto de computação RxSpark
e é ignorado nos outros contextos.
combine_method
Especifica o método usado para combinar modelos:
"Median"
: para computar a mediana das saídas do modelo individual,"Average"
: para computar a média das saídas do modelo individual e"Vote"
: para computar (pos-neg)/o número total de modelos, em que "pos" é o número de saídas positivas e "neg" é o número de saídas negativas.
max_calibration
Especifica o número máximo de exemplos a serem usados para calibração. Esse argumento é ignorado em todas as tarefas que não são a classificação binária.
ml_transforms
Especifica uma lista de transformações do MicrosoftML a serem executadas nos dados antes do treinamento ou None para que nenhuma transformação seja executada. As transformação que exigem uma passagem adicional nos dados (como featurize_text
, categorical
) não são permitidas.
Essas transformações são executadas após as transformações R especificadas.
O valor padrão é None.
ml_transform_vars
Especifica um vetor de caracteres de nomes de variáveis a serem usados em ml_transforms ou None quando não é usado nenhum nome. O valor padrão é None.
row_selection
SEM SUPORTE. 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ávelold
sejaTrue
.rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
apenas usa observações nas quais o valor da variávelage
está entre 20 e 65 e o valor delog
da variávelincome
é maior que 10.
A seleção de linha é executada após o processamento de todas as transformações de dados (confira os argumentos transforms
ou transform_func
). Assim como acontece com todas as expressões, é possível definir row_selection
fora da chamada de função usando a função expression
.
transformações
SEM SUPORTE. Uma expressão do formato que representa a primeira rodada de transformações de variável. Assim como acontece com todas as expressões, é possível definir transforms
(ou row_selection
) fora da chamada de função usando a função expression
.
transform_objects
SEM SUPORTE. Uma lista nomeada que contém objetos que podem ser referenciados por transforms
, transform_function
e row_selection
.
transform_function
A função de transformação de variável.
transform_variables
Um vetor de caracteres de variáveis do conjunto de dados de entrada necessário para a função de transformação.
transform_packages
SEM SUPORTE. Um vetor de caracteres que especifica pacotes Python adicionais (fora aqueles especificados em RxOptions.get_option("transform_packages")
) a serem disponibilizados e pré-carregados para uso em funções de transformação de variável.
Por exemplo, os definidos explicitamente nas funções revoscalepy por meio dos respectivos argumentos transforms
e transform_function
ou os definidos implicitamente por meio dos respectivos argumentos formula
ou row_selection
. O argumento transform_packages
também pode ser None, indicando que nenhum pacote fora de RxOptions.get_option("transform_packages")
é pré-carregado.
transform_environment
SEM SUPORTE. Um ambiente definido pelo usuário para funcionar como um pai de todos os ambientes desenvolvidos internamente e usados para transformação de dados de variável.
Se transform_environment = None
, um novo ambiente de “hash” com revoscalepy.baseenv
pai é usado.
blocks_per_read
Especifica o número de blocos a serem lidos em cada parte dos dados lidos da fonte de dados.
report_progress
Um valor inteiro que especifica o nível de relatório sobre o progresso do processamento de linha:
0
: não é relatado nenhum progresso.1
: o número de linhas processadas é impresso e atualizado.2
: as linhas processadas e os tempos são relatados.3
: as linhas processadas e todos os tempos são relatados.
verbose
Um valor inteiro que especifica a quantidade de saída desejada.
Se definido como 0
, não será impressa nenhuma saída detalhada durante os cálculos. Valores inteiros de 1
a 4
fornecem quantidades crescentes de informações.
compute_context
Define o contexto no qual as computações são executadas, especificado com um revoscalepy.RxComputeContext
válido.
No momento, há suporte para os contextos de computação local e revoscalepy.RxSpark. Quando revoscalepy.RxSpark é especificado, o treinamento dos modelos é feito de maneira distribuída e a definição do conjunto é feita localmente. Observe que o contexto de computação não pode ser “sem espera”.
Retornos
Um objeto rx_ensemble
com o modelo de conjunto treinado.