PS-SMART entrena modelos de clasificación multiclase mediante un algoritmo basado en GBDT que escala a miles de millones de muestras y miles de nodos.
Limitaciones
La columna objetivo solo acepta tipos numéricos. Convierta los datos STRING de las tablas de MaxCompute antes del entrenamiento. Por ejemplo, convierta Good/Medium/Bad a 0/1/2.
En los datos con formato KV, los identificadores de características deben ser enteros positivos y sus valores deben ser números reales. Convierta los identificadores de tipo cadena mediante el componente serialize. Aplique ingeniería de características (como la discretización) a los valores categóricos de tipo cadena.
El componente procesa cientos de miles de características, pero consume muchos recursos y se ejecuta lentamente. Los algoritmos GBDT funcionan mejor con características continuas. Aplique codificación one-hot a las características categóricas para filtrar las de baja frecuencia. Evite discretizar las características continuas.
PS-SMART introduce aleatoriedad mediante el muestreo de datos (data_sample_ratio), el muestreo de características (fea_sample_ratio), la aproximación por histogramas y el orden de fusión de sketches. Las estructuras de árbol pueden variar entre los workers distribuidos, aunque el rendimiento del modelo se mantiene similar. Datos y parámetros idénticos pueden generar resultados distintos entre ejecuciones.
Aumentar computing cores acelera el entrenamiento. Este proceso inicia solo cuando todos los servidores obtienen los recursos necesarios. Si solicita más recursos durante la congestión del clúster, el tiempo de espera aumenta.
Configurar el componente
Método 1: usar la interfaz gráfica
Agregue PS-SMART multiclass classification al flujo de trabajo de Designer y configure los parámetros:
|
Tipo de parámetro |
Parámetro |
Descripción |
|
Fields setting |
Is sparse format |
El formato disperso usa espacios para separar los pares KV y dos puntos para separar la clave del value. Ejemplo: 1:0.3 3:0.9. |
|
Feature columns |
Columnas de características de la tabla de entrada. Para el formato denso, seleccione solo columnas numéricas (BIGINT o DOUBLE). En el formato KV disperso, donde tanto la clave como el value son numéricos, seleccione únicamente columnas STRING. |
|
|
Label column |
Columna de etiquetas de la tabla de entrada. Acepta tipos STRING y numéricos. El almacenamiento interno requiere tipos numéricos, como 0 y 1 para la clasificación binaria. |
|
|
Weight column |
Columna de ponderación para cada fila de muestra. Solo acepta tipos numéricos. |
|
|
Parameters setting |
Number of classes |
Número de clases para la clasificación multiclase. Si establece este valor en n, los valores de la columna de etiquetas deben ir de 0 a n-1. |
|
Evaluation metric type |
Tipos de métricas de evaluación: verosimilitud logarítmica negativa multiclase y error de clasificación multiclase. |
|
|
Number of trees |
Cantidad de árboles (entero positivo). El tiempo de entrenamiento aumenta de forma proporcional. |
|
|
Maximum tree depth |
Profundidad máxima del árbol. Valor predeterminado: 5 (permite hasta 32 nodos hoja). |
|
|
Data sampling ratio |
Proporción de datos muestreados al construir cada árbol. Genera aprendices débiles y acelera el entrenamiento. |
|
|
Feature sampling ratio |
Proporción de características muestreadas al construir cada árbol. Genera aprendices débiles y acelera el entrenamiento. |
|
|
L1 penalty coefficient |
Coeficiente de penalización L1. Controla la distribución del tamaño de los nodos hoja. Los valores más altos generan una distribución más uniforme. Auméntelo para evitar el sobreajuste. |
|
|
L2 penalty coefficient |
Coeficiente de penalización L2. Controla la distribución del tamaño de los nodos hoja. Los valores más altos generan una distribución más uniforme. Auméntelo para evitar el sobreajuste. |
|
|
Learning rate |
Tasa de aprendizaje. Rango: (0.1). |
|
|
Approximate sketch precision |
Umbral de cuantiles para construir el sketch. Los valores más pequeños crean más buckets. Valor predeterminado: 0.03. No es necesario configurarlo manualmente. |
|
|
Minimum split loss change |
Reducción mínima de pérdida obligatoria para dividir un nodo. Los valores más altos producen divisiones más conservadoras. |
|
|
Number of features |
Cantidad de características o identificador máximo de característica. Se usa para estimar recursos. |
|
|
Global bias |
Valor de predicción inicial para todas las muestras. También se conoce como puntuación base. |
|
|
Random number generator seed |
Semilla aleatoria (entero). |
|
|
Feature importance type |
Tipos de cálculo de importancia de características:
|
|
|
Execution tuning |
Number of cores |
Cantidad de núcleos de cómputo. De forma predeterminada, el sistema los asigna automáticamente. |
|
Memory size per core |
Memoria por núcleo (MB). El sistema la asigna automáticamente. Casi nunca se configura de forma manual. |
Método 2: usar comandos de PAI
Ejecute los comandos de PAI desde un componente de script SQL. Para obtener más información, consulte Escenario 4: Execute PAI commands in a SQL script component.
--Train
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_multiclass_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="features"
-DenableSparse="true"
-Dobjective="multi:softprob"
-Dmetric="mlogloss"
-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_multiclass_input";
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="features"
-DappendColNames="label,features"
-DenableSparse="true"
-DkvDelimiter=":"
-Dlifecycle="28"
|
Módulo |
Parámetro |
Obligatorio |
Predeterminado |
Descripción |
|
Data parameters |
featureColNames |
Sí |
Ninguna |
Columnas de características de la tabla de entrada. Para el formato denso, seleccione solo columnas numéricas (BIGINT o DOUBLE). En el formato KV disperso, donde la clave y el value son numéricos, seleccione únicamente columnas STRING. |
|
labelColName |
Sí |
Ninguna |
Columna de etiquetas de la tabla de entrada. Acepta tipos STRING y numéricos. El almacenamiento interno requiere tipos numéricos. En la clasificación multiclase, los valores deben ir de 0 a n-1, donde n es la cantidad de clases. |
|
|
weightCol |
No |
Ninguna |
Columna de ponderación para cada fila de muestra. Solo acepta tipos numéricos. |
|
|
enableSparse |
No |
false |
Indica si los datos están en formato disperso. Valores: true o false. El formato disperso usa espacios para separar los pares KV y dos puntos para separar la clave del value. Ejemplo: 1:0.3 3:0.9. |
|
|
inputTableName |
Sí |
Ninguna |
Nombre de la tabla de entrada. |
|
|
modelName |
Sí |
Ninguna |
Nombre del modelo de salida. |
|
|
outputImportanceTableName |
No |
Ninguna |
Nombre de la tabla de salida para la importancia de características. |
|
|
inputTablePartitions |
No |
Ninguna |
Formato: ds=1/pt=1. |
|
|
outputTableName |
No |
Ninguna |
Tabla de salida en MaxCompute. Está en formato binario y no se lee directamente. Solo se accede a ella mediante el componente SMART prediction. |
|
|
lifecycle |
No |
3 |
Ciclo de vida de la tabla de salida (en días). |
|
|
Algorithm parameters |
classNum |
Sí |
Ninguna |
Cantidad de clases para la clasificación multiclase. Si establece este valor en n, los valores de la columna de etiquetas deben ir de 0 a n-1. |
|
objective |
Sí |
Ninguna |
Tipo de función objetivo. Para entrenar una clasificación multiclase, use multi:softprob. |
|
|
metric |
No |
Ninguna |
Tipo de métrica de evaluación para el conjunto de datos de entrenamiento. La salida se escribe en stdout, dentro del área Coordinator de Logview. Tipos:
|
|
|
treeCount |
No |
1 |
Cantidad de árboles (entero positivo). El tiempo de entrenamiento aumenta de forma proporcional. |
|
|
maxDepth |
No |
5 |
Profundidad máxima del árbol. Rango: de 1 a 20. |
|
|
sampleRatio |
No |
1.0 |
Proporción de muestreo de datos. Rango: (0.1]. El valor 1.0 deshabilita el muestreo. |
|
|
featureRatio |
No |
1.0 |
Proporción de muestreo de características. Rango: (0.1]. El valor 1.0 deshabilita el muestreo. |
|
|
l1 |
No |
0 |
Coeficiente de penalización L1. Los valores más altos generan una distribución más uniforme de los nodos hoja. Auméntelo para evitar el sobreajuste. |
|
|
l2 |
No |
1.0 |
Coeficiente de penalización L2. Los valores más altos generan una distribución más uniforme de los nodos hoja. Auméntelo para evitar el sobreajuste. |
|
|
shrinkage |
No |
0.3 |
Tasa de aprendizaje. Rango: (0.1). |
|
|
sketchEps |
No |
0.03 |
Umbral de cuantiles para construir el sketch. Cantidad de buckets: O(1.0/sketchEps). Los valores más pequeños crean más buckets. Use el valor predeterminado; no es necesario configurarlo manualmente. Rango: (0.1). |
|
|
minSplitLoss |
No |
0 |
Reducción mínima de pérdida obligatoria para dividir un nodo. Los valores más altos producen divisiones más conservadoras. |
|
|
featureNum |
No |
Ninguna |
Cantidad de características o identificador máximo de característica. Se usa para estimar recursos. |
|
|
baseScore |
No |
0.5 |
Valor de predicción inicial para todas las muestras. También se conoce como sesgo global. |
|
|
randSeed |
No |
Ninguna |
Semilla aleatoria (entero). |
|
|
featureImportanceType |
No |
gain |
Tipos de cálculo de importancia de características:
|
|
|
Tuning parameters |
coreNum |
No |
Asignados por el sistema |
Cantidad de núcleos de cómputo. Los valores más altos aceleran la ejecución. |
|
memSizePerCore |
No |
Asignada por el sistema |
Memoria por núcleo en MB. |
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 después del componente PS-SMART. Configure los parámetros del componente de la misma manera que en los demás componentes de la serie PS. Para obtener más información, consulte General-purpose Model Export.
Una vez que la ejecución finalice de forma exitosa, despliegue el servicio del modelo en la página PAI-EAS Model Online Service. Para obtener más información, consulte Deploy a service in the console.