brTrain
Description
L'action brTrain est le cerveau de l'ensemble boolRuleAction de filtrage ou de classification basée sur une expression logique (ET, OU, NON). Elle permet de valider des conditions spécifiques pour segmenter des données ou déclencher des événements. . Elle permet d'extraire des règles logiques (booléennes) à partir de données textuelles préalablement segmentées. Contrairement aux modèles de type 'boîte noire', cette action génère des règles lisibles par l'humain (ex: si 'promotion' et 'gratuit' sont présents, alors classer en 'Spam'). C'est l'outil idéal pour les data scientistsExperts extrayant des connaissances via des méthodes statistiques, algorithmes et IA. Ils transforment les données brutes en insights stratégiques pour résoudre des problèmes métier complexes. qui aiment comprendre pourquoi leur modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). prend une décision, ou pour ceux qui veulent automatiser des décisions métier complexes sans perdre le contrôle. Un peu comme un détective qui traduirait des indices vagues en preuves irréfutables.
Paramètres Clés
Préparation des données
Préparation des données pour l'extraction de règles
Pour entraîner un modèle de règles booléennes, nous avons besoin d'une table de documents étiquetés et d'une table de termes (indexation).
| 1 | DATA casuser.docs; LENGTH text $100 label 8; INPUT text$ label docId; DATALINES; 'bonjour cadeau gratuit' 1 1 |
| 2 | 'offre exceptionnelle cadeau' 1 2 |
| 3 | 'rapport reunion projet' 0 3 |
| 4 | 'compte rendu travail' 0 4 |
| 5 | 'gratuit pour vous' 1 5 |
| 6 | ; RUN; |
| 7 | PROC CAS; |
| 8 | textMining.tpParse / TABLE={name='docs'} docId='docId' text='text' |
| 9 | casOut={name='parent', replace=true} |
| 10 | offset={name='offset', replace=true}; |
| 11 | textMining.tpAccumulate / TABLE={name='parent'} |
| 12 | child={name='child', replace=true} |
| 13 | parent={name='parent_out', replace=true} |
| 14 | terms={name='terms', replace=true}; |
| 15 | RUN; |
Exemples d'utilisation
Extraction de règles de base
Un exemple minimaliste pour extraire des règles binaires à partir des tables générées précédemment.
| 1 | PROC CAS; boolRule.brTrain / TABLE={name='child'}, docId='_document_', termId='_termnum_', docInfo={TABLE={name='docs'}, id='docId', targets={'label'}}, termInfo={TABLE={name='terms'}, id='_termnum_', label='_term_'}, casOuts={rules={name='rules_out', replace=true}, ruleTerms={name='rule_terms_out', replace=true}}; RUN; |
Résultat Attendu :
Entraînement avec réglages de précision et multiclasse
Ici, on ajuste les paramètres de score G et on demande explicitement un traitement binaire sur une cible spécifique pour être plus sélectif.
| 1 | PROC CAS; boolRule.brTrain / TABLE={name='child'}, docId='_document_', termId='_termnum_', gPositive=10, gNegative=10, mPositive=2, docInfo={TABLE={name='docs'}, id='docId', targets={'label'}, targetType='BINARY', events={'1'}}, termInfo={TABLE={name='terms'}, id='_termnum_', label='_term_'}, casOuts={rules={name='rules_hard', replace=true}, ruleTerms={name='rule_terms_hard', replace=true}, candidateTerms={name='candidates', replace=true}}; RUN; |