Entraînez des modèles de gradient boosting pour les tâches de classification et de régression à l'aide de l'algorithme XGBoost.
PAI étend la bibliothèque open source XGBoost en ajoutant la prise en charge du calcul distribué et l'intégration à la plateforme.
Ressources de calcul
Ressources de calcul prises en charge :
MaxCompute
Flink
Deep Learning Containers (DLC)
Formats de données
Formats d'entrée acceptés : Table ou LibSVM. Spécifiez-les via l'onglet Field Setting : utilisez featureCols pour le format Table, ou vectorCol pour le format LibSVM (ces options s'excluent mutuellement).
Format Table
Chaque ligne représente une instance d'entraînement. Les colonnes stockent les valeurs des caractéristiques et l'étiquette.
| f0 | f1 | label |
|---|---|---|
| 0.1 | 1 | 0 |
| 0.9 | 2 | 1 |
Format LibSVM
Chaque ligne contient des paires caractéristique-valeur clairsemées au format index:value. Exemple :
2:1 9:1 10:1 20:1 29:1 33:1 35:1 39:1 40:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
0:1 9:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 115:1 121:1
2:1 8:1 18:1 20:1 29:1 33:1 35:1 39:1 41:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
2:1 9:1 13:1 21:1 28:1 33:1 36:1 38:1 40:1 53:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 97:1 105:1 113:1 119:1
0:1 9:1 18:1 20:1 22:1 33:1 35:1 38:1 44:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 115:1 121:1
0:1 8:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 116:1 121:1
Configuration
Configurez le composant à l'aide de trois onglets :
Field Setting : structure des données d'entrée et emplacement de stockage du modèle
Parameter Setting : hyperparamètres de l'algorithme d'entraînement XGBoost
Execution Tuning : ressources d'entraînement distribué
Field Setting
| Parameter | Type | Description |
|---|---|---|
| labelCol | String | Nom de la colonne d'étiquette. |
| featureCols | String array | Colonnes de caractéristiques au format Table. S'exclut mutuellement avec vectorCol. Nécessite des données d'entrée au format Table. |
| vectorCol | String | Nom de la colonne vectorielle au format LibSVM. S'exclut mutuellement avec featureCols. Nécessite des données d'entrée au format LibSVM. |
| weightCol | String | Nom de la colonne de pondération. |
| set the model file path | String | Chemin du bucket OSS pour stocker le modèle entraîné. |
Parameter Setting
Hyperparamètres XGBoost standard.
Training objective
| Parameter | Type | Default | Description |
|---|---|---|---|
| The number of rounds for boosting | Integer | -- | Nombre d'itérations de boosting. |
| objective | String | binary:logistic | Tâche d'apprentissage et objectif d'apprentissage correspondant. |
| Base score | Floating-point number | 0.5 | Biais global utilisé comme score de prédiction initial pour toutes les instances. |
| The number of classes | Integer | -- | Nombre de classes. Requis pour la classification multiclasse. |
Tree construction
| Parameter | Type | Default | Description |
|---|---|---|---|
| Tree Method | String | auto | Algorithme de construction d'arbres. Valeurs valides : auto, exact, approx, hist. |
| Maximum depth of a tree | Integer | 6 | Profondeur maximale de l'arbre. Des valeurs plus élevées augmentent la complexité du modèle et le risque de surapprentissage. |
| Max leaves | Integer | 0 | Nombre maximal de nœuds feuilles. 0 signifie aucune limite. |
| Grow Policy | String | depthwise | Stratégie d'ajout de nœuds. Valeurs valides : depthwise, lossguide. |
| Maximum number of discrete bins to bucket continuous features | Integer | 256 | Nombre maximal de bacs discrets pour les caractéristiques continues. S'applique uniquement lorsque Tree Method est défini sur hist. |
| sketch_eps | Floating-point number | 0.03 | Précision du binning dans l'algorithme de sketching. S'applique uniquement lorsque Tree Method est défini sur approx. |
Regularization
| Parameter | Type | Default | Description |
|---|---|---|---|
| L1 regularization term on weights | Floating-point number | 0.0 | Régularisation L1 sur les poids. Des valeurs plus élevées produisent des modèles plus conservateurs. |
| L2 regularization term on weights | Floating-point number | 1.0 | Régularisation L2 sur les poids. Des valeurs plus élevées produisent des modèles plus conservateurs. |
| gamma | Floating-point number | 0.0 | Réduction minimale de la perte requise pour une partition supplémentaire des nœuds feuilles. |
| Min child weight | Floating-point number | 1.0 | Somme minimale des poids d'instance requise dans un nœud enfant. |
| Max delta step | Floating-point number | 0.0 | Pas delta maximal par nœud feuille. Contrôle la granularité de la mise à jour du modèle. |
Learning rate and sampling
| Parameter | Type | Default | Description |
|---|---|---|---|
| eta | Floating-point number | 0.3 | Taux d'apprentissage. Des valeurs plus faibles améliorent la robustesse mais nécessitent davantage d'itérations de boosting. |
| scale_pos_weight | Floating-point number | 1.0 | Ratio de pondération pour équilibrer les classes positives et négatives. Utile pour les jeux de données déséquilibrés. |
| Subsample ratio of the training instances | Floating-point number | 1 | Fraction des instances d'entraînement échantillonnées avant chaque itération de boosting. |
| Sampling method | String | GRADIENT_BASED | Méthode d'échantillonnage pour les instances d'entraînement. Valeurs valides : GRADIENT_BASED, UNIFORM. |
| Subsample ratio of columns for each level | Floating-point number | 1.0 | Fraction de colonnes échantillonnées par niveau d'arbre. |
| Subsample ratio of columns for each node (split) | Floating-point number | 1.0 | Fraction de colonnes échantillonnées par division de nœud. |
| Subsample ratio of columns when constructing each tree | Floating-point number | 1.0 | Fraction de colonnes échantillonnées par arbre. |
Constraints and distribution
| Parameter | Type | Default | Description |
|---|---|---|---|
| Interaction constraints | String | -- | Groupes de caractéristiques autorisés à interagir. |
| Monotone constraints | String | -- | Contraintes de monotonie par caractéristique. |
| Tweedie variance power | Floating-point number | 1.5 | Puissance de variance de la distribution Tweedie. S'applique uniquement lorsque l'objectif utilise la distribution Tweedie. |
Execution Tuning
| Parameter | Type | Valid values | Description |
|---|---|---|---|
| Number of Workers | Positive integer | [1, 9999] | Nombre de nœuds workers. À configurer avec Memory per worker, unit MB. |
| Memory per worker, unit MB | Positive integer | [1024, 64 x 1024] | Mémoire allouée par nœud worker, en Mo. |
Exemple d'utilisation
Cet exemple illustre la classification XGBoost sur des données d'événements de boson de Higgs à l'aide d'un modèle prédéfini. Pour créer ce pipeline à partir du modèle Use XGBoost algorithm to identify the Higgs boson, consultez la rubrique Créer un pipeline à partir d'un modèle prédéfini.
Convertir le format de sortie pour l'évaluation
Le composant produit des chaînes JSON sérialisées issues de la bibliothèque open source XGBoost. Convertissez cette sortie pour permettre aux composants d'évaluation de traiter les prédictions.
Ajoutez un composant SQL Script en aval de XGboost Predict. Le script SQL convertit les prédictions au format requis par Binary classification Evaluation V2. Utilisez le code suivant :
set odps.sql.udf.getjsonobj.new=true;
select *, CONCAT("{\"0\":", 1.0-prob, ",\"1\":", prob, "}") as detail
FROM (
select *, cast(get_json_object(pred, '$[0]') as double) as prob FROM ${t1})
Références
Pour l'inférence hors ligne avec un modèle entraîné, utilisez le composant XGboost Predict. Consultez la rubrique XGboost Predict.
Pour la liste complète des composants d'algorithme, consultez la rubrique Référence des composants : Vue d'ensemble de tous les composants.