Algorithmes de régression
Créé pour :
- Développeur
Ce document présente les différents algorithmes de régression, en se concentrant sur leur configuration, leurs paramètres clés et leur utilisation pratique dans les modèles statistiques avancés. Les algorithmes de régression sont utilisés pour modéliser la relation entre les variables dépendantes et indépendantes, prédisant des résultats continus basés sur les données observées. Chaque section comprend des descriptions de paramètre et des exemples de code pour vous aider à mettre en oeuvre et à optimiser ces algorithmes pour des tâches telles que linéaire, forêt aléatoire et régression de survie.
régression Decision Tree
Decision Tree L’apprentissage est une méthode d’apprentissage supervisée utilisée dans les statistiques, l’exploration des données et l’apprentissage automatique. Dans cette approche, un arbre de décision de classification ou de régression est utilisé comme modèle prédictif pour tirer des conclusions sur un ensemble d’observations.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances des modèles d’arbre de décision.
Paramètre | Description | Valeur par défaut | Valeurs possibles |
---|---|---|---|
MAX_BINS | Ce paramètre spécifie le nombre maximal de classes utilisées pour discréditer les fonctionnalités continues et déterminer les divisions à chaque noeud. Plus de classes se traduisent par une granularité et un détail plus précis. | 32 | Doit comporter au moins 2 catégories et au moins le nombre de catégories dans n’importe quelle fonctionnalité catégorielle. |
CACHE_NODE_IDS | Ce paramètre détermine s’il faut mettre en cache les ID de noeud pour chaque instance. Si false , l’algorithme transmet les arborescences aux exécuteurs pour faire correspondre les instances aux noeuds. Si true , l’algorithme met en cache les identifiants de noeud pour chaque instance, ce qui peut accélérer l’entraînement des arborescences plus profondes. Les utilisateurs peuvent configurer la fréquence à laquelle le cache doit être coché ou désactivé en définissant CHECKPOINT_INTERVAL . | False | true ou false . |
CHECKPOINT_INTERVAL | Ce paramètre spécifie la fréquence à laquelle les identifiants de noeud mis en cache doivent être cochés. Par exemple, le fait de le définir sur 10 signifie que le cache sera coché toutes les 10 itérations. Cela ne s’applique que si CACHE_NODE_IDS est défini sur true et que le répertoire du point de contrôle est configuré dans org.apache.spark.SparkContext . | 10 | (>=1) |
IMPURITY | Ce paramètre spécifie le critère utilisé pour calculer le gain d’information. Les valeurs prises en charge sont entropy et gini . | gini | entropy , gini |
MAX_DEPTH | Ce paramètre spécifie la profondeur maximale de l’arborescence. Par exemple, une profondeur de 0 signifie 1 noeud feuille, tandis qu’une profondeur de 1 signifie 1 noeud interne et 2 noeuds feuille. La profondeur doit être comprise dans la plage [0, 30] . | 5 | [0, 30] |
MIN_INFO_GAIN | Ce paramètre définit le gain d’informations minimal requis pour qu’un partage soit considéré comme valide sur un noeud d’arborescence. | 0,0 | (>=0.0) |
MIN_WEIGHT_FRACTION_PER_NODE | Ce paramètre spécifie la fraction minimale du nombre d’échantillons pondéré que chaque noeud enfant doit avoir après un partage. Si l’un des noeuds enfants comporte une fraction inférieure à cette valeur, la division est ignorée. | 0,0 | [0.0, 0.5] |
MIN_INSTANCES_PER_NODE | Ce paramètre définit le nombre minimum d’instances que chaque noeud enfant doit avoir après un partage. Si un partage entraîne un nombre d’instances inférieur à cette valeur, le partage est ignoré comme non valide. | 1 | (>=1) |
MAX_MEMORY_IN_MB | Ce paramètre spécifie la mémoire maximale, en mégaoctets (Mo), allouée à l’agrégation de l’histogramme. Si la mémoire est trop petite, un seul noeud est divisé par itération et ses agrégats peuvent dépasser cette taille. | 256 | Toute valeur entière positive |
PREDICTION_COL | Ce paramètre spécifie le nom de la colonne utilisée pour le stockage des prédictions. | "prédiction" | Toute chaîne |
SEED | Ce paramètre définit la valeur de départ aléatoire utilisée dans le modèle. | Aucune | Tout nombre 64 bits |
WEIGHT_COL | Ce paramètre spécifie le nom de la colonne poids. Si ce paramètre n’est pas défini ou est vide, tous les poids d’instance sont traités comme 1.0 . | Non défini | Toute chaîne |
Exemple
CREATE MODEL modelname OPTIONS(
type = 'decision_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
régression Factorization Machines
Factorization Machines est un algorithme d’apprentissage par régression qui prend en charge la descente en dégradé normal et le solveur AdamW. L’algorithme est basé sur l’article de S. Rendle (2010), "Factorization Machines".
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de la régression Factorization Machines.
Paramètre | Description | Valeur par défaut | Valeurs possibles |
---|---|---|---|
TOL | Ce paramètre spécifie la tolérance de convergence pour l’algorithme. Des valeurs plus élevées peuvent se traduire par une convergence plus rapide mais une moindre précision. | 1E-6 | (>= 0) |
FACTOR_SIZE | Ce paramètre définit la dimension des facteurs. Des valeurs plus élevées augmentent la complexité du modèle. | 8 | (>= 0) |
FIT_INTERCEPT | Ce paramètre indique si le modèle doit inclure un terme d’ordonnancement. | true | true , false |
FIT_LINEAR | Ce paramètre indique s’il faut inclure un terme linéaire (également appelé terme à sens unique) dans le modèle. | true | true , false |
INIT_STD | Ce paramètre définit l’écart-type des coefficients initiaux utilisés dans le modèle. | 0,01 | (>= 0) |
MAX_ITER | Ce paramètre spécifie le nombre maximal d’itérations que l’algorithme doit exécuter. | 100 | (>= 0) |
MINI_BATCH_FRACTION | Ce paramètre définit la fraction du mini-lot, qui détermine la partie des données utilisée dans chaque lot. Elle doit se trouver dans la plage (0, 1] . | 1.0 | (0, 1] |
REG_PARAM | Ce paramètre définit le paramètre de régularisation afin d’empêcher le surajustement. | 0,0 | (>= 0) |
SEED | Ce paramètre spécifie la valeur de départ aléatoire utilisée pour l’initialisation du modèle. | Aucune | Tout nombre 64 bits |
SOLVER | Ce paramètre spécifie l’algorithme de solveur utilisé pour l’optimisation. | "adamW" | gd (descente en dégradé), adamW |
STEP_SIZE | Ce paramètre spécifie la taille d’étape initiale (ou taux d’apprentissage) pour la première étape d’optimisation. | 1.0 | Toute valeur positive |
PREDICTION_COL | Ce paramètre spécifie le nom de la colonne dans laquelle les prédictions sont stockées. | "prédiction" | Toute chaîne |
Exemple
CREATE MODEL modelname OPTIONS(
type = 'factorization_machines_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
régression Generalized Linear
Contrairement à la régression linéaire, qui suppose que le résultat suit une distribution normale (gaussienne), les modèles Generalized Linear (GLM) permettent au résultat de suivre différents types de distributions, comme Poisson ou binomial, selon la nature des données.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de la régression Generalized Linear.
MAX_ITER
irls
).REG_PARAM
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
.FAMILY
gaussian
, binomial
, poisson
, gamma
et tweedie
.gaussian
, binomial
, poisson
, gamma
, tweedie
FIT_INTERCEPT
true
true
, false
LINK
identity
, log
, inverse
, logit
, probit
, cloglog
et sqrt
.identity
, log
, inverse
, logit
, probit
, cloglog
, sqrt
LINK_POWER
1 - variancePower
, qui s’aligne sur le package R statmod
. Les puissances de lien spécifiques de 0, 1, -1 et 0.5 correspondent respectivement aux liens Journal, Identité, Inverse et Trier.SOLVER
irls
(moindres carrés itérativement pondérés).irls
VARIANCE_POWER
[1, inf)
. Les puissances de variation de 0, 1 et 2 correspondent respectivement aux familles gaussiennes, Poisson et Gamma.[1, inf)
LINK_PREDICTION_COL
OFFSET_COL
WEIGHT_COL
1.0
. Dans la famille Binomial, les poids correspondent au nombre d’essais, et les poids non entiers sont arrondis dans le calcul AIC.Exemple
CREATE MODEL modelname OPTIONS(
type = 'generalized_linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
régression Gradient Boosted Tree
Les arbres à amplification progressive (GBT) sont une méthode efficace de classification et de régression qui combine les prédictions de plusieurs arbres de décision afin d’améliorer la précision prédictive et les performances des modèles.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de la régression Gradient Boosted Tree.
MAX_BINS
CACHE_NODE_IDS
false
, l’algorithme transmet les arborescences aux exécuteurs pour faire correspondre les instances aux noeuds. Si true
, l’algorithme met en cache les identifiants de noeud pour chaque instance. La mise en cache peut accélérer l’entraînement des arbres plus profonds.false
true
, false
CHECKPOINT_INTERVAL
10
signifie que le cache est coché toutes les 10 itérations.MAX_DEPTH
0
signifie 1 noeud feuille et profondeur 1
signifie 1 noeud interne avec 2 noeuds feuille.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
pour la formation et true
pour la validation.LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
, all
, onethird
, sqrt
, log2
ou une fraction comprise entre 0 et 1.0SEED
WEIGHT_COL
1.0
.LOSS_TYPE
squared
(L2) et absolute
(L1). Remarque : Les valeurs ne sont pas sensibles à la casse.STEP_SIZE
(0, 1]
, utilisée pour réduire la contribution de chaque estimateur.(0, 1]
MAX_ITER
SUBSAMPLING_RATE
(0, 1]
.(0, 1]
Exemple
CREATE MODEL modelname OPTIONS(
type = 'gradient_boosted_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
régression Isotonic
Isotonic Regression est un algorithme utilisé pour ajuster les distances de manière itérative tout en préservant l’ordre relatif des dissimilarités dans les données.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de Isotonic Regression.
ISOTONIC
true
ou antitonique (décroissant) lorsque false
.true
true
, false
WEIGHT_COL
1.0
.PREDICTION_COL
FEATURE_INDEX
featuresCol
est une colonne vectorielle. Si elle n’est pas définie, la valeur par défaut est 0
. Sinon, cela n'aura aucun effet.Exemple
CREATE MODEL modelname OPTIONS(
type = 'isotonic_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
régression Linear
Linear Regression est un algorithme d’apprentissage automatique supervisé qui correspond à une équation linéaire aux données afin de modéliser la relation entre une variable dépendante et des fonctionnalités indépendantes.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de Linear Regression.
MAX_ITER
REGPARAM
ELASTICNETPARAM
Exemple
CREATE MODEL modelname OPTIONS(
type = 'linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Random Forest Regression
Random Forest Regression est un algorithme d’ensemble qui crée plusieurs arbres de décision pendant la formation et renvoie la prédiction moyenne de ces arbres pour les tâches de régression, ce qui permet d’éviter le surajustement.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de Random Forest Regression.
MAX_BINS
CACHE_NODE_IDS
false
, l’algorithme transmet les arborescences aux exécuteurs pour faire correspondre les instances aux noeuds. Si true
, l’algorithme met en cache les identifiants de noeud pour chaque instance, accélérant l’entraînement des arborescences plus profondes.false
true
, false
CHECKPOINT_INTERVAL
10
signifie que le cache est coché toutes les 10 itérations.IMPURITY
entropy
, gini
MAX_DEPTH
0
signifie 1 noeud feuille et profondeur 1
signifie 1 noeud interne et 2 noeuds feuille.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
BOOTSTRAP
true
, false
NUM_TREES
1
, aucun amorçage n’est utilisé. Si la valeur est supérieure à 1
, l’amorçage est appliqué.SUBSAMPLING_RATE
(0, 1]
.LEAF_COL
PREDICTION_COL
SEED
WEIGHT_COL
1.0
.Exemple
CREATE MODEL modelname OPTIONS(
type = 'random_forest_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Survival Regression
Survival Regression est utilisé pour correspondre à un modèle de régression de survie paramétrique, connu sous le nom de modèle Accelerated Failure Time (AFT), basé sur Weibull distribution. Il peut empiler des instances en blocs pour améliorer les performances.
Paramètres
Le tableau ci-dessous décrit les paramètres clés de configuration et d’optimisation des performances de Survival Regression.
MAX_ITER
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
. Si les dimensions des fonctionnalités ou le nombre de partitions sont importants, ce paramètre peut être défini sur une valeur plus grande.FIT_INTERCEPT
true
, false
PREDICTION_COL
CENSOR_COL
1
indique que l’événement s’est produit (non censuré), tandis que 0
signifie que l’événement est censuré.MAX_BLOCK_SIZE_IN_MB
0
permet un ajustement automatique.Exemple
CREATE MODEL modelname OPTIONS(
type = 'survival_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Étapes suivantes
Après avoir lu ce document, vous savez maintenant configurer et utiliser divers algorithmes de régression. Reportez-vous ensuite aux documents sur classification et clustering pour en savoir plus sur d’autres types de modèles statistiques avancés.