Entraînez des modèles de classification binaire à l'aide de l'algorithme PS-SMART pour les ensembles de données à grande échelle contenant des milliards d'échantillons et de caractéristiques.
Limites
Prend uniquement en charge le moteur de calcul MaxCompute.
Prérequis
La colonne cible doit contenir des valeurs numériques : 0 pour les échantillons négatifs, 1 pour les échantillons positifs. Convertissez les types STRING avant l'entraînement. Exemple : convertissez Good/Bad en 1/0.
Pour les données au format clé-valeur (KV), les ID de caractéristique doivent être des entiers positifs et les valeurs de caractéristique doivent être des nombres réels. Utilisez le composant de sérialisation pour convertir les ID de caractéristique STRING. Appliquez une ingénierie des caractéristiques (comme la discrétisation) pour les valeurs de chaîne catégorielles.
L'entraînement avec des centaines de milliers de caractéristiques est gourmand en ressources et lent. Pour de meilleures performances, utilisez des algorithmes similaires à GBDT qui s'entraînent directement sur des caractéristiques continues. Appliquez un encodage One-Hot aux caractéristiques catégorielles et filtrez les caractéristiques à faible fréquence. Évitez de discrétiser les caractéristiques numériques continues.
L'algorithme PS-SMART introduit de l'aléatoire par le biais de l'échantillonnage des données (data_sample_ratio), de l'échantillonnage des caractéristiques (fea_sample_ratio), de l'approximation par histogramme et de l'ordre de fusion des sketches. Les structures arborescentes peuvent différer selon les workers distribués. Les performances du modèle restent similaires. Attendez-vous à des résultats incohérents lors de différentes exécutions avec les mêmes données et paramètres.
Augmentez le number of computing cores pour accélérer l'entraînement. L'entraînement démarre une fois que tous les serveurs ont obtenu les ressources requises. Demander davantage de ressources lors d'une utilisation élevée du cluster peut augmenter le temps d'attente.
Instructions
Configuration
Configurez le composant PS-SMART Binary Classification en utilisant l'une des méthodes suivantes.
Configure through UI
Configurez les paramètres du composant sur la page de workflow Designer.
|
Onglet |
Paramètre |
Description |
|
Fields Setting |
Use Sparse Format |
Le format creux utilise des espaces pour séparer les paires KV et deux-points (:) pour séparer la clé de la valeur. Exemple : 1:0.3 3:0.9. |
|
Feature Columns |
Colonnes de caractéristiques de la table d'entrée pour l'entraînement. Pour le format dense, sélectionnez uniquement les colonnes numériques (BIGINT ou DOUBLE). Pour le format KV creux avec une clé et une valeur numériques, sélectionnez uniquement les colonnes STRING. |
|
|
Label Column |
Colonne d'étiquette de la table d'entrée. Prend en charge les types STRING et numériques. Le contenu doit être constitué de valeurs numériques (0 et 1 pour la classification binaire). |
|
|
Weight Column |
Colonne utilisée pour pondérer les lignes d'échantillon. Prend en charge les types numériques. |
|
|
Parameter Settings |
Evaluation Metric Type |
Types de métriques d'évaluation :
|
|
Number of Trees |
Nombre d'arbres. Doit être un entier positif. Le temps d'entraînement augmente avec le nombre d'arbres. |
|
|
Maximum Tree Depth |
Profondeur maximale de l'arbre. Par défaut : 5 (maximum 16 nœuds feuilles). Doit être un entier positif. |
|
|
Data Sampling Ratio |
Portion d'échantillon de données lors de la construction de chaque arbre. Accélère l'entraînement. |
|
|
Feature Sampling Ratio |
Portion d'échantillon de caractéristiques lors de la construction de chaque arbre. Accélère l'entraînement. |
|
|
L1 Penalty Coefficient |
Contrôle la taille des nœuds feuilles. Des valeurs plus élevées créent une distribution plus uniforme des nœuds feuilles. Augmentez cette valeur pour réduire le surapprentissage. |
|
|
L2 Penalty Coefficient |
Contrôle la taille des nœuds feuilles. Des valeurs plus élevées créent une distribution plus uniforme des nœuds feuilles. Augmentez cette valeur pour réduire le surapprentissage. |
|
|
Learning Rate |
Plage de valeurs : (0,1). |
|
|
Approximate Sketch Precision |
Seuil de quantile pour la division lors de la construction du sketch. Des valeurs plus petites créent plus de compartiments. Valeur par défaut : 0.03. Aucune configuration manuelle n'est requise. |
|
|
Minimum Split Loss Change |
Changement de perte minimal requis pour diviser un nœud. Des valeurs plus élevées entraînent une division plus conservative. |
|
|
Number of Features |
Nombre de caractéristiques ou ID de caractéristique maximal. Si non configuré, le système démarre une tâche SQL pour calculer automatiquement lors de l'estimation de l'utilisation des ressources. |
|
|
Global Bias Term |
Valeur de prédiction initiale pour tous les échantillons. |
|
|
Random Number Generator Seed |
Graine de nombre aléatoire. Doit être un entier. |
|
|
Feature Importance Type |
Types d'importance des caractéristiques :
|
|
|
Execution Tuning |
Number of Computing Cores |
Le système alloue automatiquement les cœurs. |
|
Memory Size per Core |
Mémoire par cœur en Mo. La configuration manuelle n'est généralement pas requise. Le système alloue la mémoire automatiquement. |
Configure through PAI commands
Utilisez les commandes Platform for AI (PAI) pour configurer les paramètres des composants. Le composant Script SQL permet d'appeler ces commandes PAI. Pour plus d'informations, consultez la rubrique Script SQL.
# 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";
|
Module |
Paramètre |
Obligatoire |
Description |
Valeur par défaut |
|
Paramètres de données |
featureColNames |
Oui |
Colonnes de caractéristiques issues de la table d'entrée pour l'entraînement. Pour le format dense, sélectionnez uniquement les colonnes numériques (BIGINT ou DOUBLE). Pour le format KV clairsemé avec une key et une value numériques, sélectionnez uniquement les colonnes STRING. |
Aucune |
|
labelColName |
Oui |
Colonne d'étiquette de la table d'entrée. Prend en charge les types STRING et numériques. Pour le stockage interne, seuls les types numériques sont pris en charge (exemple : 0 et 1 pour la classification binaire). |
Aucune |
|
|
weightCol |
Non |
Colonne utilisée pour pondérer chaque ligne d'échantillon. Prend en charge les types numériques. |
Aucune |
|
|
enableSparse |
Non |
Indique si le format est clairsemé. Valeurs valides : {true,false}. Le format clairsemé utilise des espaces pour séparer les paires KV et des deux-points (:) pour séparer la key de la value. Exemple : 1:0.3 3:0.9. |
false |
|
|
inputTableName |
Oui |
Nom de la table d'entrée. |
Aucune |
|
|
modelName |
Oui |
Nom du modèle de sortie. |
Aucune |
|
|
outputImportanceTableName |
Non |
Nom de la table de sortie pour l'importance des caractéristiques. |
Aucune |
|
|
inputTablePartitions |
Non |
Le format est ds=1/pt=1. |
Aucune |
|
|
outputTableName |
Non |
Table de sortie dans MaxCompute. La table est au format binaire et ne peut pas être lue. Récupérez-la uniquement via le composant de prédiction SMART. |
Aucune |
|
|
lifecycle |
Non |
Durée de vie de la table de sortie en jours. |
3 |
|
|
Paramètres d'algorithme |
objective |
Oui |
Type de fonction objective. Pour l'entraînement de classification binaire, sélectionnez binary:logistic. |
Aucune |
|
metric |
Non |
Type de métrique d'évaluation pour l'ensemble de données d'entraînement. La sortie est écrite dans le fichier stdout dans la section Coordinator de Logview. Types pris en charge :
|
Aucune |
|
|
treeCount |
Non |
Nombre d'arbres. Le temps d'entraînement est proportionnel au nombre d'arbres. |
1 |
|
|
maxDepth |
Non |
Profondeur maximale de l'arbre. Doit être un entier positif compris entre 1 et 20. |
5 |
|
|
sampleRatio |
Non |
Ratio d'échantillonnage des données. Plage de valeurs : (0,1]. La valeur 1.0 signifie qu'aucun échantillonnage n'est effectué. |
1.0 |
|
|
featureRatio |
Non |
Ratio d'échantillonnage des caractéristiques. Plage de valeurs : (0,1]. La valeur 1.0 signifie qu'aucun échantillonnage n'est effectué. |
1.0 |
|
|
l1 |
Non |
Coefficient de pénalité L1. Des valeurs plus élevées créent une distribution plus uniforme des nœuds feuilles. Augmentez cette valeur pour réduire le surapprentissage. |
0 |
|
|
l2 |
Non |
Coefficient de pénalité L2. Des valeurs plus élevées créent une distribution plus uniforme des nœuds feuilles. Augmentez cette valeur pour réduire le surapprentissage. |
1.0 |
|
|
shrinkage |
Non |
Taux d'apprentissage. Plage de valeurs : (0,1). |
0.3 |
|
|
sketchEps |
Non |
Seuil de quantile pour la division lors de la construction du sketch. Nombre de compartiments : O(1.0/sketchEps). Des valeurs plus petites créent plus de compartiments. Une configuration manuelle n'est généralement pas nécessaire. Plage de valeurs : (0,1). |
0.03 |
|
|
minSplitLoss |
Non |
Changement de perte minimal requis pour diviser un nœud. Des valeurs plus élevées entraînent des divisions plus conservatrices. |
0 |
|
|
featureNum |
Non |
Nombre de caractéristiques ou ID de caractéristique maximal. Si ce paramètre n'est pas configuré lors de l'estimation de l'utilisation des ressources, le système démarre une tâche SQL pour le calculer automatiquement. |
Aucune |
|
|
baseScore |
Non |
Valeur de prédiction initiale pour tous les échantillons. |
0.5 |
|
|
randSeed |
Non |
Graine de nombre aléatoire. Doit être un entier. |
Aucune |
|
|
featureImportanceType |
Non |
Type d'importance des caractéristiques à calculer. Types pris en charge :
|
gain |
|
|
Paramètres de réglage |
coreNum |
Non |
Nombre de cœurs. Des valeurs plus élevées augmentent la vitesse de l'algorithme. |
Attribué par le système |
|
memSizePerCore |
Non |
Mémoire par cœur en Mo. |
Attribué par le système |
Exemple
-
Exécutez une instruction SQL générant des données d'entraînement à l'aide du nœud ODPS SQL. Cet exemple utilise des données au format dense.
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;Données d'entraînement générées :

-
Créez le flux de travail et exécutez les composants. Pour plus d'informations, consultez la rubrique Modélisation algorithmique.

Recherchez les composants Read Table, PS-SMART Binary Classification Training, Prediction et Write Table dans la liste des composants située à gauche du canevas du Designer, puis faites-les glisser vers le canevas.
Reliez les composants pour construire le flux de travail avec des relations amont et aval.
-
Configurez les paramètres des composants.
Sur le canevas, cliquez sur le composant Read Table-1. Dans l'onglet Select Table du volet droit, définissez le paramètre Table Name sur smart_binary_input.
-
Sur le canevas, cliquez sur le composant PS-SMART Binary Classification Training-1. Dans le volet droit, configurez les paramètres comme indiqué ci-dessous. Conservez les valeurs par défaut pour les autres paramètres.
Onglet
Paramètre
Description
Fields Setting
Feature Columns
Sélectionnez les colonnes f0, f1, f2, f3, f4 et f5.
Label Column
Sélectionnez la colonne label.
Parameter Settings
Evaluation Metric Type
Sélectionnez l'option Area under curve for classification.
Number of Trees
Saisissez la valeur 5.
Sur le canevas, cliquez sur le composant Prediction-1. Dans l'onglet Fields Setting du volet droit, définissez le paramètre Reserved Columns sur Select All. Conservez les valeurs par défaut pour les autres paramètres.
Sur le canevas, cliquez sur le composant Write Table-1. Dans l'onglet Select Table du volet droit, définissez le paramètre Output Table Name sur smart_binary_output.
Une fois les paramètres configurés, cliquez sur le bouton Exécuter
pour lancer le flux de travail.
-
Cliquez avec le bouton droit de la souris sur le composant Prediction-1 et sélectionnez pour afficher le résultat de la prédiction.

Dans la colonne prediction_detail, la valeur 1 représente les échantillons positifs et la valeur 0 représente les échantillons négatifs.
-
Cliquez avec le bouton droit de la souris sur le composant PS-SMART Binary Classification Training-1 et sélectionnez pour afficher le tableau d'importance des caractéristiques.

Paramètres :
id : Numéro ordinal de la caractéristique d'entrée. Dans cet exemple, les caractéristiques d'entrée sont f0, f1, f2, f3, f4 et f5. La valeur 0 dans la colonne id correspond à la colonne de caractéristique f0. La valeur 4 correspond à la colonne de caractéristique f4. Pour les données d'entrée au format clé-valeur (KV), la colonne id représente la key.
value : Type d'importance de la caractéristique. Valeur par défaut : gain, qui correspond à la somme du gain d'information apporté par la caractéristique au modèle.
Le tableau d'importance des caractéristiques ne contient que trois caractéristiques. Seules ces trois caractéristiques sont utilisées lors du processus de division des arbres. Les autres caractéristiques ont une importance nulle.
Déploiement du modèle
Pour déployer le modèle généré par le composant PS-SMART en tant que service en ligne, ajoutez le composant General-purpose Model Export en aval du composant PS-SMART. Configurez les paramètres du composant de la même manière que pour les autres composants de la série PS. Pour plus d'informations, consultez la rubrique Exportation de modèle polyvalent.
Une fois l'exécution terminée avec succès, déployez le service de modèle sur la page PAI-EAS Model Online Service. Pour plus d'informations, consultez la rubrique Déployer un service dans la console.
Informations connexes
Pour plus d'informations sur les composants du Designer, consultez la rubrique Présentation du Designer.
Le Designer propose une variété de composants algorithmiques. Sélectionnez les composants appropriés pour le traitement des données en fonction de votre scénario. Pour plus d'informations, consultez la rubrique Référence des composants : Tous les composants.