Tous les produits
Search
Centre de documentation

Platform For AI:Régression logistique pour la classification binaire

Dernière mise à jour :Aug 09, 2026

La régression logistique pour la classification binaire entraîne un classifieur binaire à l'aide de l'algorithme de régression logistique. Ce composant prend en charge les données d'entrée denses et clairsemées, et utilise l'optimiseur L-BFGS (Limited-memory Broyden–Fletcher–Goldfarb–Shanno).

Fonctionnement

L'entraînement se déroule en trois étapes :

  1. Traitement des caractéristiques — L'algorithme lit les colonnes de caractéristiques spécifiées (types DOUBLE ou BIGINT) ainsi que la colonne d'étiquette depuis la table d'entrée. Si les données d'entrée sont au format clairsemé, le composant analyse les paires clé-valeur avant le traitement.

  2. Entraînement — L'algorithme L-BFGS minimise itérativement la fonction de perte. À chaque itération, il met à jour les poids du modèle. L'entraînement s'arrête lorsque l'amélioration de la vraisemblance logarithmique entre deux itérations consécutives est inférieure à epsilon, ou lorsque le nombre maximal d'itérations est atteint.

  3. Prédiction — Le modèle entraîné attribue à chaque ligne une étiquette de classe prédite (prediction_result), un score de confiance (prediction_score) et une distribution de probabilité sur toutes les classes (prediction_detail).

Configurer le composant

Choisissez l'une des méthodes suivantes.

Méthode 1 : Configuration dans Machine Learning Designer

Ouvrez l'onglet de configuration du pipeline dans Machine Learning Designer, puis définissez les paramètres dans le panneau du composant.

Fields setting

Paramètre Description
Training feature columns Colonnes de caractéristiques de la table d'entrée utilisées pour l'entraînement. Prend en charge les types DOUBLE et BIGINT. Maximum de 20 millions de caractéristiques.
Target columns Colonne d'étiquette dans la table d'entrée.
Positive class value Valeur d'étiquette représentant la classe positive dans la classification binaire.
Use sparse format Activez cette option si les données d'entrée sont au format clairsemé.

Parameters setting

Paramètre Description Par défaut
Regularization type Type de régularisation à appliquer pendant l'entraînement. Valeurs valides : None, L1, L2. Consultez Choisir un type de régularisation. —
Maximum iterations Nombre maximal d'itérations L-BFGS. 100
Regularization coefficient Intensité de la régularisation. Sans effet si le paramètre Regularization type est défini sur None. —
Minimum convergence deviance Seuil de convergence (epsilon). L'entraînement s'arrête lorsque l'amélioration de la vraisemblance logarithmique entre deux itérations est inférieure à cette valeur. 0,000001

Optimisation

Paramètre Description
Cores Défini automatiquement par le système.
Memory size per core Défini automatiquement par le système.

Méthode 2 : Configuration via les commandes PAI

Exécutez la commande PAI suivante via le composant SQL Script.

PAI -name logisticregression_binary
    -project algo_public
    -DmodelName="xlab_m_logistic_regression_6096"
    -DregularizedLevel="1"
    -DmaxIter="100"
    -DregularizedType="l1"
    -Depsilon="0.000001"
    -DlabelColName="y"
    -DfeatureColNames="pdays,emp_var_rate"
    -DgoodValue="1"
    -DinputTableName="bank_data"

Paramètres obligatoires

Paramètre Description
inputTableName Nom de la table d'entrée.
labelColName Colonne d'étiquette dans la table d'entrée.
modelName Nom du modèle hors ligne en sortie.

Paramètres facultatifs

Paramètre Description Par défaut
featureColNames Colonnes de caractéristiques utilisées pour l'entraînement. Maximum de 20 millions de caractéristiques. Toutes les colonnes numériques
inputTablePartitions Partitions à utiliser depuis la table d'entrée. Formats : partition_name=value ou name1=value1/name2=value2. Séparez plusieurs partitions par des virgules. Table complète
regularizedType Type de régularisation. Valeurs valides : l1, l2, None. l1
regularizedLevel Coefficient de régularisation. Sans effet si regularizedType est défini sur None. 1.0
maxIter Nombre maximal d'itérations L-BFGS. 100
epsilon Seuil de convergence. L'entraînement s'arrête lorsque l'amélioration de la vraisemblance logarithmique entre deux itérations est inférieure à cette valeur. 1.0e-06
goodValue Valeur d'étiquette correspondant à la classe positive. Assignée aléatoirement si non spécifiée. —
enableSparse Indique si les données d'entrée sont au format clairsemé. Valeurs valides : true, false. false
itemDelimiter Délimiteur entre les paires clé-valeur dans les entrées clairsemées. , (virgule)
kvDelimiter Délimiteur entre les clés et les valeurs dans les entrées clairsemées. : (deux-points)
coreNum Nombre de cœurs. Alloué automatiquement
memSizePerCore Taille de la mémoire par cœur, en Mo. Alloué automatiquement

Choisir un type de régularisation

Type de régularisation Cas d'utilisation Effet
L1 (par défaut) Données de haute dimension avec de nombreuses caractéristiques non pertinentes Force les coefficients des caractéristiques non pertinentes à zéro, produisant un modèle clairsemé
L2 La plupart des caractéristiques sont pertinentes ; vous souhaitez éviter les coefficients élevés Réduit tous les coefficients vers zéro sans les éliminer
None Petits ensembles de données ou pour comprendre la ligne de base sans régularisation Aucune régularisation appliquée ; regularizedLevel est ignoré

Format des données clairsemées

Lorsque enableSparse est défini sur true, le composant lit chaque cellule comme une chaîne clé-valeur. Les clés sont des index basés sur zéro ; les valeurs doivent être numériques. Des valeurs de clé non numériques provoquent une erreur.

  • itemDelimiter sépare les paires clé-valeur au sein d'une cellule.

  • kvDelimiter sépare une clé de sa valeur.

Exemple d'entrée avec les délimiteurs par défaut (, et :) :

key_value
1:100,4:200,5:300
1:10,2:20,3:30

Exemple

Cet exemple détaille un flux de travail complet, de l'entraînement à la prédiction, en utilisant un ensemble de données dense.

Étape 1 : Créer la table d'entraînement

DROP TABLE IF EXISTS lr_test_input;
CREATE TABLE lr_test_input AS
SELECT *
FROM (
    SELECT CAST(1 AS DOUBLE) AS f0, CAST(0 AS DOUBLE) AS f1, CAST(0 AS DOUBLE) AS f2, CAST(0 AS DOUBLE) AS f3, CAST(0 AS BIGINT) AS label
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS BIGINT)
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(1 AS BIGINT)
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(1 AS BIGINT)
    UNION ALL
    SELECT CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS BIGINT)
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS BIGINT)
) a;

La table résultante lr_test_input :

f0 f1 f2 f3 label
1.0 0.0 0.0 0.0 0
0.0 0.0 1.0 0.0 1
0.0 0.0 0.0 1.0 1
0.0 1.0 0.0 0.0 0
1.0 0.0 0.0 0.0 0
0.0 1.0 0.0 0.0 0

Étape 2 : Entraîner le modèle

DROP OFFLINEMODEL IF EXISTS lr_test_model;
PAI -name logisticregression_binary
    -project algo_public
    -DmodelName="lr_test_model"
    -DitemDelimiter=","
    -DregularizedLevel="1"
    -DmaxIter="100"
    -DregularizedType="None"
    -Depsilon="0.000001"
    -DkvDelimiter=":"
    -DlabelColName="label"
    -DfeatureColNames="f0,f1,f2,f3"
    -DenableSparse="false"
    -DgoodValue="1"
    -DinputTableName="lr_test_input";

Étape 3 : Exécuter la prédiction

Pour plus de détails sur les paramètres du composant Prediction, consultez Prediction.

DROP TABLE IF EXISTS lr_test_prediction_result;
PAI -name prediction
    -project algo_public
    -DdetailColName="prediction_detail"
    -DmodelName="lr_test_model"
    -DitemDelimiter=","
    -DresultColName="prediction_result"
    -Dlifecycle="28"
    -DoutputTableName="lr_test_prediction_result"
    -DscoreColName="prediction_score"
    -DkvDelimiter=":"
    -DinputTableName="lr_test_input"
    -DenableSparse="false"
    -DappendColNames="label";

Étape 4 : Examiner les résultats

La table de sortie lr_test_prediction_result contient :

label prediction_result prediction_score prediction_detail
0 0 0.9999998793434426 {"0": 0.9999998793434426, "1": 1.206565574533681e-07}
1 1 0.999999799574135 {"0": 2.004258650156743e-07, "1": 0.999999799574135}
1 1 0.999999799574135 {"0": 2.004258650156743e-07, "1": 0.999999799574135}
0 0 0.9999998793434426 {"0": 0.9999998793434426, "1": 1.206565574533681e-07}
0 0 0.9999998793434426 {"0": 0.9999998793434426, "1": 1.206565574533681e-07}
0 0 0.9999998793434426 {"0": 0.9999998793434426, "1": 1.206565574533681e-07}

Colonnes de sortie :

  • prediction_result — l'étiquette de classe prédite (0 ou 1)

  • prediction_score — la probabilité de la classe prédite

  • prediction_detail — distribution de probabilité sur toutes les classes sous forme d'objet JSON

Toutes les prédictions correspondent aux étiquettes réelles, avec des scores de confiance supérieurs à 0,9999.