microsoftml.rx_ensemble: combina modelos en uno solo
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)
Descripción
Entrena un conjunto de modelos.
Detalles
rx_ensemble
es una función que entrena varios modelos de diversos tipos para obtener un mejor rendimiento predictivo que el que se podría obtener a partir de un único modelo.
Argumentos
formula
Fórmula matemática o simbólica en sintaxis válida de Python, entre comillas dobles. Una fórmula simbólica podría hacer referencia a objetos del origen de datos, como "creditScore ~ yearsEmploy"
.
Actualmente, no se admiten términos de interacción (creditScore * yearsEmploy
) ni expresiones (creditScore == 1
).
datos
Objeto de origen de datos o cadena de caracteres que especifica un archivo .xdf o un objeto de trama de datos. Como alternativa, puede ser una lista de orígenes de datos que indica que cada modelo debe entrenarse mediante uno de los orígenes de datos de la lista. En este caso, la longitud de la lista de datos debe ser igual a model_count.
instructores
Lista de instructores y sus argumentos. Los instructores se crean mediante FastTrees
, FastForest
, FastLinear
, LogisticRegression
, NeuralNetwork
o OneClassSvm
.
método
Cadena de caracteres que especifica el tipo de conjunto: "anomaly"
para Detección de anomalías, "binary"
para Clasificación binaria, multiClass
para Clasificación de multiclase o "regression"
para Regresión.
random_seed
Especifica la inicialización aleatoria. El valor predeterminado es None
.
model_count
Especifica el número de modelos que se van a entrenar. Si este número es mayor que la longitud de la lista de instructores, esta lista se duplica para que coincida con model_count
.
replace
Valor lógico que especifica si el muestreo de observaciones debe realizarse con o sin reemplazo. El valor predeterminado es False
.
samp_rate
Escalar de valor positivo que especifica el porcentaje de observaciones que se deben muestrear para cada instructor. El valor predeterminado para muestreo con reemplazo es 1.0
(por ejemplo, replace=True
) y para muestreo sin reemplazo, 0.632
(por ejemplo, replace=False
). Cuando split_data
es True
, el valor predeterminado de samp_rate
es 1.0
(no se realiza muestreo antes de la separación).
split_data
Valor lógico que especifica si se deben entrenar o no los modelos base en particiones no superpuestas.
De manera predeterminada, es False
. Solo está disponible para el contexto de proceso RxSpark
y se omite para otros.
combine_method
Especifica el método usado para combinar los modelos:
"Median"
: para calcular la mediana de las salidas de modelo individuales,"Average"
: para calcular la media de las salidas de modelo individuales y"Vote"
: para calcular (pos-neg) / el número total de modelos, donde "pos" es el número de salidas positivas y "neg" de negativas.
max_calibration
Especifica el número máximo de ejemplos que usar para calibrar. Este argumento se omite para todas las tareas que no son de clasificación binaria.
ml_transforms
Especifica una lista de transformaciones de MicrosoftML que deben realizarse en los datos antes del entrenamiento, o bien None si no hay que realizar ninguna transformación. Transformaciones que requieren un pase adicional sobre los datos categorical
(como featurize_text
) no están permitidos.
Estas transformaciones se realizan después de cualquier transformación de R especificada.
El valor predeterminado es None.
ml_transform_vars
Especifica un vector de caracteres de nombres de variable que deben usarse en ml_transforms, o None si no hay que usar ninguno. El valor predeterminado es None.
row_selection
NO ADMITIDO. Especifica las filas (observaciones) del conjunto de datos que debe usar el modelo con el nombre de una variable lógica del conjunto de datos (entre comillas) o con una expresión lógica que usa variables en el conjunto de datos. Por ejemplo:
rowSelection = "old"
solo usará observaciones en las que el valor de la variableold
seaTrue
.rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
solo usa observaciones en las que el valor de la variableage
está entre 20 y 65, y el valor delog
de la variableincome
es mayor que 10.
La selección de fila se realiza después de procesar las transformaciones de datos (vea los argumentos transforms
o transform_func
). Al igual que con todas las expresiones, row_selection
se puede definir fuera de la llamada de función mediante la función expression
.
transformaciones
NO ADMITIDO. Expresión del formulario que representa la primera ronda de transformaciones de variables. Al igual que con todas las expresiones, transforms
(o row_selection
) se puede definir fuera de la llamada de función mediante la función expression
.
transform_objects
NO ADMITIDO. Lista con nombre que contiene objetos a los que pueden hacer referencia transforms
, transform_function
y row_selection
.
transform_function
Función de transformación de variables.
transform_variables
Vector de caracteres de variables del conjunto de datos de entrada necesarias para la función de transformación.
transform_packages
NO ADMITIDO. Vector de caracteres que especifica paquetes de Python adicionales (aparte de los especificados en RxOptions.get_option("transform_packages")
) que deben cargarse previamente y estar disponibles para usarlos en las funciones de transformación de variables.
Por ejemplo, los definidos explícitamente en las funciones de revoscalepy mediante los argumentos transforms
y transform_function
, o los definidos implícitamente con los argumentos formula
y row_selection
. El argumento transform_packages
también puede ser None, que indica que no se cargan previamente más paquetes aparte de los de RxOptions.get_option("transform_packages")
.
transform_environment
NO ADMITIDO. Entorno definido por el usuario que sirve como primario de todos los entornos desarrollados internamente y que se usa para la transformación de datos variables.
Si transform_environment = None
, un entorno "hash" nuevo con revoscalepy.baseenv
primario se usa en su lugar.
blocks_per_read
Especifica el número de bloques que se leerán para cada fragmento de datos leídos del origen de datos.
report_progress
Valor entero que especifica el nivel de notificación del progreso del procesamiento de filas:
0
: no se notifica el progreso.1
: se imprime y actualiza el número de filas procesadas.2
: se notifican las filas procesadas y los intervalos.3
: se notifican las filas procesadas y todos los intervalos.
verbose
Valor entero que especifica la cantidad de salida deseada.
Si es 0
, no se imprime ninguna salida detallada durante los cálculos. Los valores enteros de 1
a 4
proporcionan cantidades crecientes de información.
compute_context
Establece el contexto en el que se realizan los cálculos, especificado con revoscalepy.RxComputeContext
.
Actualmente, se admiten los contextos de proceso local y revoscalepy.RxInSqlServer. Cuando revoscalepy.RxSpark se especifica, el entrenamiento de los modelos se realiza de forma distribuida, y el montaje se hace de manera local. Tenga en cuenta que el contexto de proceso no puede ser de no espera.
Devoluciones
Objeto rx_ensemble
con el modelo de montaje entrenado.