Entrene modelos de clasificación binaria mediante el algoritmo PS-SMART para conjuntos de datos a gran escala con miles de millones de muestras y funciones.
Limitaciones
Solo es compatible con el motor de computación MaxCompute.
Requisitos previos
La columna objetivo debe contener valores numéricos: 0 para muestras negativas y 1 para muestras positivas. Convierta los tipos STRING antes del entrenamiento. Por ejemplo, convierta Good/Bad a 1/0.
Para datos en formato clave-valor (KV), los ID de función deben ser enteros positivos y los valores de función deben ser números reales. Utilice el componente de serialización para convertir los ID de función de tipo STRING. Aplique ingeniería de funciones (como la discretización) para los valores de cadena categóricos.
El entrenamiento con cientos de miles de funciones consume muchos recursos y es lento. Para mejorar el rendimiento, utilice algoritmos similares a GBDT que entrenan directamente sobre funciones continuas. Aplique codificación One-Hot a las funciones categóricas y filtre las funciones de baja frecuencia. Evite discretizar funciones numéricas continuas.
El algoritmo PS-SMART introduce aleatoriedad mediante el muestreo de datos (data_sample_ratio), el muestreo de funciones (fea_sample_ratio), la aproximación de histogramas y el orden de fusión de bocetos. Las estructuras de árbol pueden diferir entre los trabajadores distribuidos, aunque el rendimiento del modelo se mantiene similar. Espere resultados inconsistentes entre ejecuciones con los mismos datos y parámetros.
Aumente el number of computing cores para acelerar el entrenamiento. Este comienza una vez que todos los servidores obtienen los recursos necesarios. Solicitar más recursos durante periodos de alto uso del clúster puede aumentar el tiempo de espera.
Configuración
Configure el componente PS-SMART Binary Classification mediante uno de los siguientes métodos.
Configurar mediante la interfaz de usuario
Configure los parámetros del componente en la página de flujo de trabajo de Designer.
|
Pestaña |
Parámetro |
Descripción |
|
Fields Setting |
Use Sparse Format |
El formato disperso utiliza espacios para separar pares KV y dos puntos (:) para separar la key del value. Ejemplo: 1:0.3 3:0.9. |
|
Feature Columns |
Columnas de funciones de la tabla de entrada para el entrenamiento. Para formato denso, seleccione solo columnas numéricas (BIGINT o DOUBLE). Para formato KV disperso con key y value numéricos, seleccione solo columnas STRING. |
|
|
Label Column |
Columna de etiqueta de la tabla de entrada. Admite tipos STRING y numéricos. El contenido debe consistir en valores numéricos (0 y 1 para clasificación binaria). |
|
|
Weight Column |
Columna utilizada para ponderar las filas de muestras. Admite tipos numéricos. |
|
|
Parameter Settings |
Evaluation Metric Type |
Tipos de métrica de evaluación:
|
|
Number of Trees |
Número de árboles. Debe ser un entero positivo. El tiempo de entrenamiento aumenta con la cantidad de árboles. |
|
|
Maximum Tree Depth |
Profundidad máxima del árbol. Valor predeterminado: 5 (máximo 16 nodos hoja). Debe ser un entero positivo. |
|
|
Data Sampling Ratio |
Proporción de datos de muestra al construir cada árbol. Acelera el entrenamiento. |
|
|
Feature Sampling Ratio |
Proporción de funciones de muestra al construir cada árbol. Acelera el entrenamiento. |
|
|
L1 Penalty Coefficient |
Controla el tamaño de los nodos hoja. Los valores más grandes crean una distribución más uniforme de los nodos hoja. Auméntelo para reducir el sobreajuste. |
|
|
L2 Penalty Coefficient |
Controla el tamaño de los nodos hoja. Los valores más grandes crean una distribución más uniforme de los nodos hoja. Auméntelo para reducir el sobreajuste. |
|
|
Learning Rate |
Rango de valores: (0.1). |
|
|
Approximate Sketch Precision |
Umbral de cuantil para la división al construir el boceto. Los valores más pequeños crean más cubos. Valor predeterminado: 0.03. No requiere configuración manual. |
|
|
Minimum Split Loss Change |
Cambio mínimo de pérdida necesario para dividir un nodo. Los valores más grandes resultan en divisiones más conservadoras. |
|
|
Number of Features |
Número de funciones o ID máximo de función. Si no se configura, el sistema inicia una tarea SQL para calcularlo automáticamente al estimar el uso de recursos. |
|
|
Global Bias Term |
Valor de predicción inicial para todas las muestras. |
|
|
Random Number Generator Seed |
Semilla de números aleatorios. Debe ser un entero. |
|
|
Feature Importance Type |
Tipos de importancia de función:
|
|
|
Execution Tuning |
Number of Computing Cores |
El sistema asigna los núcleos automáticamente. |
|
Memory Size per Core |
Memoria por núcleo en MB. Por lo general, no requiere configuración manual. El sistema asigna la memoria automáticamente. |
Configurar mediante comandos PAI
Utilice comandos de Platform for AI (PAI) para configurar los parámetros del componente. Use el componente de script SQL para invocar los comandos PAI. Para obtener más información, consulte SQL Script.
# Train.
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_binary_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545859_2"
-DoutputImportanceTableName="pai_temp_24515_545859_3"
-DlabelColName="label"
-DfeatureColNames="f0,f1,f2,f3,f4,f5"
-DenableSparse="false"
-Dobjective="binary:logistic"
-Dmetric="error"
-DfeatureImportanceType="gain"
-DtreeCount="5"
-DmaxDepth="5"
-Dshrinkage="0.3"
-Dl2="1.0"
-Dl1="0"
-Dlifecycle="3"
-DsketchEps="0.03"
-DsampleRatio="1.0"
-DfeatureRatio="1.0"
-DbaseScore="0.5"
-DminSplitLoss="0";
# Predict.
PAI -name prediction
-project algo_public
-DinputTableName="smart_binary_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="f0,f1,f2,f3,f4,f5"
-DappendColNames="label,qid,f0,f1,f2,f3,f4,f5"
-DenableSparse="false"
-Dlifecycle="28";
|
Módulo |
Parámetro |
Obligatorio |
Descripción |
Valor predeterminado |
|
Parámetros de datos |
featureColNames |
Sí |
Columnas de funciones de la tabla de entrada para el entrenamiento. Para formato denso, seleccione solo columnas numéricas (BIGINT o DOUBLE). Para formato KV disperso con key y value numéricos, seleccione solo columnas STRING. |
Ninguna |
|
labelColName |
Sí |
Columna de etiqueta de la tabla de entrada. Admite tipos STRING y numéricos. Para almacenamiento interno, solo se admiten tipos numéricos (ejemplo: 0 y 1 para clasificación binaria). |
Ninguna |
|
|
weightCol |
No |
Columna utilizada para ponderar cada fila de muestra. Admite tipos numéricos. |
Ninguna |
|
|
enableSparse |
No |
Especifica si el formato es disperso. Valores válidos: {true,false}. El formato disperso utiliza espacios para separar pares KV y dos puntos (:) para separar la key del value. Ejemplo: 1:0.3 3:0.9. |
false |
|
|
inputTableName |
Sí |
Nombre de la tabla de entrada. |
Ninguna |
|
|
modelName |
Sí |
Nombre del modelo de salida. |
Ninguna |
|
|
outputImportanceTableName |
No |
Nombre de la tabla de salida para la importancia de funciones. |
Ninguna |
|
|
inputTablePartitions |
No |
El formato es ds=1/pt=1. |
Ninguna |
|
|
outputTableName |
No |
Tabla de salida en MaxCompute. La tabla está en formato binario y no se puede leer. Recupérela únicamente mediante el componente SMART prediction. |
Ninguna |
|
|
lifecycle |
No |
Ciclo de vida de la tabla de salida en días. |
3 |
|
|
Parámetros del algoritmo |
objective |
Sí |
Tipo de función objetivo. Para entrenamiento de clasificación binaria, seleccione binary:logistic. |
Ninguna |
|
metric |
No |
Tipo de métrica de evaluación para el conjunto de datos de entrenamiento. La salida se escribe en el archivo stdout en la sección Coordinator de Logview. Tipos compatibles:
|
Ninguna |
|
|
treeCount |
No |
Número de árboles. El tiempo de entrenamiento es proporcional a la cantidad de árboles. |
1 |
|
|
maxDepth |
No |
Profundidad máxima del árbol. Debe ser un entero positivo de 1 a 20. |
5 |
|
|
sampleRatio |
No |
Proporción de muestreo de datos. Rango de valores: (0.1]. El valor 1.0 significa que no hay muestreo. |
1.0 |
|
|
featureRatio |
No |
Proporción de muestreo de funciones. Rango de valores: (0.1]. El valor 1.0 significa que no hay muestreo. |
1.0 |
|
|
l1 |
No |
Coeficiente de penalización L1. Los valores más grandes crean una distribución más uniforme de los nodos hoja. Auméntelo para reducir el sobreajuste. |
0 |
|
|
l2 |
No |
Coeficiente de penalización L2. Los valores más grandes crean una distribución más uniforme de los nodos hoja. Auméntelo para reducir el sobreajuste. |
1.0 |
|
|
shrinkage |
No |
Tasa de aprendizaje. Rango de valores: (0.1). |
0.3 |
|
|
sketchEps |
No |
Umbral de cuantil para la división al construir el boceto. Número de cubos: O(1.0/sketchEps). Los valores más pequeños crean más cubos. Por lo general, no requiere configuración manual. Rango de valores: (0.1). |
0.03 |
|
|
minSplitLoss |
No |
Cambio mínimo de pérdida necesario para dividir un nodo. Los valores más grandes resultan en divisiones más conservadoras. |
0 |
|
|
featureNum |
No |
Número de funciones o ID máximo de función. Si no se configura al estimar el uso de recursos, el sistema inicia una tarea SQL para calcularlo automáticamente. |
Ninguna |
|
|
baseScore |
No |
Valor de predicción inicial para todas las muestras. |
0.5 |
|
|
randSeed |
No |
Semilla de números aleatorios. Debe ser un entero. |
Ninguna |
|
|
featureImportanceType |
No |
Tipo de importancia de función a calcular. Tipos compatibles:
|
gain |
|
|
Parámetros de ajuste |
coreNum |
No |
Número de núcleos. Los valores más grandes aumentan la velocidad del algoritmo. |
Asignado por el sistema |
|
memSizePerCore |
No |
Memoria por núcleo en MB. |
Asignado por el sistema |
Ejemplo
-
Utilice ODPS SQL node para ejecutar una sentencia SQL que genere datos de entrenamiento. Este ejemplo utiliza datos en formato denso.
drop table if exists smart_binary_input; create table smart_binary_input lifecycle 3 as select * from ( select 0.72 as f0, 0.42 as f1, 0.55 as f2, -0.09 as f3, 1.79 as f4, -1.2 as f5, 0 as label union all select 1.23 as f0, -0.33 as f1, -1.55 as f2, 0.92 as f3, -0.04 as f4, -0.1 as f5, 1 as label union all select -0.2 as f0, -0.55 as f1, -1.28 as f2, 0.48 as f3, -1.7 as f4, 1.13 as f5, 1 as label union all select 1.24 as f0, -0.68 as f1, 1.82 as f2, 1.57 as f3, 1.18 as f4, 0.2 as f5, 0 as label union all select -0.85 as f0, 0.19 as f1, -0.06 as f2, -0.55 as f3, 0.31 as f4, 0.08 as f5, 1 as label union all select 0.58 as f0, -1.39 as f1, 0.05 as f2, 2.18 as f3, -0.02 as f4, 1.71 as f5, 0 as label union all select -0.48 as f0, 0.79 as f1, 2.52 as f2, -1.19 as f3, 0.9 as f4, -1.04 as f5, 1 as label union all select 1.02 as f0, -0.88 as f1, 0.82 as f2, 1.82 as f3, 1.55 as f4, 0.53 as f5, 0 as label union all select 1.19 as f0, -1.18 as f1, -1.1 as f2, 2.26 as f3, 1.22 as f4, 0.92 as f5, 0 as label union all select -2.78 as f0, 2.33 as f1, 1.18 as f2, -4.5 as f3, -1.31 as f4, -1.8 as f5, 1 as label ) tmp;Datos de entrenamiento generados:

-
Construya el flujo de trabajo y ejecute los componentes. Para obtener más información, consulte Algorithm modeling.

Busque y arrastre los componentes Read Table, PS-SMART Binary Classification Training, Prediction y Write Table desde la lista de componentes en el lado izquierdo del lienzo de Designer hacia el lienzo.
Conecte los componentes para construir el flujo de trabajo con relaciones ascendentes y descendentes.
-
Configure los parámetros de los componentes.
En el lienzo, haga clic en el componente Read Table-1. En la pestaña Select Table del panel derecho, establezca Table Name como smart_binary_input.
-
En el lienzo, haga clic en el componente PS-SMART Binary Classification Training-1. En el panel derecho, configure los parámetros como se describe a continuación. Utilice los valores predeterminados para los demás parámetros.
Pestaña
Parámetro
Descripción
Fields Setting
Feature Columns
Seleccione las columnas f0, f1, f2, f3, f4 y f5.
Label Column
Seleccione la columna label.
Parameter Settings
Evaluation Metric Type
Seleccione Area under curve for classification.
Number of Trees
Introduzca 5.
En el lienzo, haga clic en el componente Prediction-1. En la pestaña Fields Setting del panel derecho, establezca Reserved Columns como Select All. Utilice los valores predeterminados para los demás parámetros.
En el lienzo, haga clic en el componente Write Table-1. En la pestaña Select Table del panel derecho, establezca Output Table Name como smart_binary_output.
Después de configurar los parámetros, haga clic en el botón Run
para ejecutar el flujo de trabajo.
-
Haga clic con el botón derecho en el componente Prediction-1 y elija para consultar el resultado de la predicción.

En la columna prediction_detail, 1 representa muestras positivas y 0 representa muestras negativas.
-
Haga clic con el botón derecho en el componente PS-SMART Binary Classification Training-1 y elija para consultar la tabla de importancia de funciones.

Parámetros:
id: Número ordinal de la función de entrada. En este ejemplo, las funciones de entrada son f0, f1, f2, f3, f4 y f5. El valor 0 en la columna id representa la columna de función f0. El valor 4 representa la columna de función f4. Para datos de entrada en formato clave-valor (KV), la columna id representa la key.
value: Tipo de importancia de función. Valor predeterminado: gain, que es la suma de la ganancia de información que la función aporta al modelo.
La tabla de importancia de funciones contiene solo tres funciones. Solo estas tres funciones se utilizan en el proceso de división del árbol. Las demás funciones tienen una importancia de 0.
Despliegue del modelo
Para desplegar el modelo generado por el componente PS-SMART como un servicio en línea, agregue el componente General-purpose Model Export en posición descendente respecto al componente PS-SMART. Configure los parámetros del componente de la misma manera que para otros componentes de la serie PS. Para obtener más información, consulte General-purpose Model Export.
Una vez ejecutado correctamente, despliegue el servicio de modelo en la página PAI-EAS Model Online Service. Para obtener más información, consulte Deploy a service in the console.
Información relacionada
Para obtener más información sobre los componentes de Designer, consulte Designer overview.
Designer proporciona una variedad de componentes algorítmicos. Seleccione los componentes adecuados para el procesamiento de datos según su escenario. Para obtener más información, consulte Component reference: All components.