conditionalRandomFields crfTrain

Classification d'Avis Clients avec Arrêt Anticipé (Early Stopping)

Scénario de test & Cas d'usage

Contexte Métier

Un site e-commerce analyse les commentaires produits pour taguer les aspects 'Positif' ou 'Négatif' sur des caractéristiques spécifiques (Prix, Qualité). Pour éviter de sur-entraîner le modèle sur des avis très spécifiques, on utilise un jeu de validation pendant l'entraînement.
Préparation des Données

Données d'avis clients hétérogènes. Partitionnement non explicite (géré par l'option de validation).

Copié !
1 
2DATA mycas.reviews;
3LENGTH text $200 target $200;
4INFILE DATALINES delimiter='|';
5INPUT text $ target $;
6DATALINES;
7Produit excellent mais trop cher|O B-POS O B-NEG I-NEG Livraison rapide et soignée|B-POS I-POS O B-POS Mauvaise qualité très déçu|B-NEG I-NEG O O ;
8 
9RUN;
10 

Étapes de réalisation

1
Chargement des avis clients.
Copié !
1/* Chargement via data step */
2
Entraînement avec activation de la validation interne. Arrêt si le taux d'erreur stagne ou passe sous 10%.
Copié !
1 
2PROC CAS;
3conditionalRandomFields.crfTrain / TABLE={name='reviews', caslib='mycas'}, target='target', template='U:w[0]', model={name='review_model', caslib='mycas', replace=true}, nloOpts={validate={frequency=1, threshold=0.10, stagnation=3}, optmlOpt={regL1=0.05}};
4 
5RUN;
6 
7QUIT;
8 

Résultat Attendu


L'entraînement doit afficher des métriques de validation dans le journal à chaque itération (frequency=1). L'entraînement doit s'arrêter potentiellement avant le nombre max d'itérations si le seuil d'erreur (threshold) est atteint ou si la stagnation est détectée.