Scénario de test & Cas d'usage
Génération synthétique de 10 000 lignes de logs avec injection de patterns d'erreur.
| 1 | |
| 2 | DATA mycas.server_logs; |
| 3 | LENGTH text $300 target $300; |
| 4 | DO i=1 to 10000; |
| 5 | IF mod(i, 100) = 0 THEN DO; |
| 6 | text='GET /admin/login.php?user=admin OR 1=1'; |
| 7 | target='O O O B-ATTACK I-ATTACK I-ATTACK'; |
| 8 | END; |
| 9 | ELSE DO; |
| 10 | text='GET /home/index.html HTTP/1.1 200 OK'; |
| 11 | target='O O O O O O'; |
| 12 | END; |
| 13 | OUTPUT; |
| 14 | END; |
| 15 | |
| 16 | RUN; |
| 17 |
| 1 | /* Exécution du data step de génération */ |
| 1 | |
| 2 | PROC CAS; |
| 3 | conditionalRandomFields.crfTrain / TABLE={name='server_logs', caslib='mycas'}, target='target', template='U:w[0]', model={name='cyber_model', caslib='mycas', replace=true}, nloOpts={algorithm='SGD', optmlOpt={regL2=0.1, maxIters=50}, printOpt={printFreq=10}}; |
| 4 | |
| 5 | RUN; |
| 6 | |
| 7 | QUIT; |
| 8 |
Le modèle doit s'entraîner en utilisant l'optimiseur SGD (visible dans les logs). La régularisation L2 doit être appliquée. Le temps d'exécution doit rester cohérent malgré le volume (10k lignes). Les tables de modèle 'cyber_model_*' sont créées.