dissabte, 6 d’abril de 2013

Em sento afortunat - Arbres de decisió

484mil controls d'assistència fins a l'abril
Amb data abril de 2013 es porten realitzats més de 484mil controls d'assistència a l'Institut mitjançant el programa GHAP. Un control d'assistència és determinar si un alumne assisteix a una hora de classe. És a dir, a un mateix alumne se li realitzen uns 6 controls d'assistència diari.

 Per facilitar la tasca del professor a l'hora de passar llista l'aplicatiu disposa de l'opció 'copiar assistència de l'hora anterior'. Aquesta opció funciona molt bé però depen de que el professor anterior hagi passat llista.

Amb l'esperit de facilitar la tasca del professorat, i d'entretenir-me jo mateix, he afegit la opció 'Em sento afortunat'. Triant aquesta opció l'aplicatiu fa una proposta de passar llista (a partir de la seva predicció).
Nova opció per passar llista: 'Em sento afortunat'

Però, quina lògica hi ha d'arrera d'aquesta opció?


Per a formular una predicció de control d'assistència l'aplicatiu utilitza una tècnica de mineria de dades, bé realment d' 'Aprenentatge Automàtic'. En concret, la tècnica que fa servir és la de predicció mitjançant  'arbre de decisió'. 

Per construir l'arbre de decisions he fet servir el programari Knime. I una exportació de dades dissociades de la base de dades del programari GHAP.

Les dades que he triat i que serveixen per a construir el model són les següents:


I en aquesta captura de pantalla es veu el procés de construcció del model:


El sistema de predicció utilitza tècnica de mineria de dades.
Un cop processat tenim un model informàtic en un format estandaritzat anomenat PMML (Predictive Model Markup Language). És un fitxer en XML d'un pes de mig mega. No he trobat cap utilitat python que a partir dels valors i el model em calculi la predicció, per això he escrit el meu propi algorisme, que he anomenat lightPMMLpredictor, i l'he integrat al GHAP. Si teniu interès podeu trobar una mostra de les dades utilitzades dins el propi projecte.

La representació gràfica d'aquest model és aquesta:


El factor principal determinat pel sistema és l'assistència a l'hora anterior.
La lectura d'aquest model seria: un 85.4% dels controls els marquem a 'Present', per tant, si haguès de fer una previsió diria 'Present'. Però, si tenim en compte l'assistència a l'hora anterior ens trobem que, si l'alumne era absent l'hora anterior el % de presencia a la següent hora es redueix fins un 14%. L'arbre no finalitza en aquest nivell sino que segueix afegint paràmetres a la decisió:


Tot i estar present l'hora anterior, el sistema prediu que faltarà un alumne de GS Admin. si ha faltat a la mateixa hora les tres setmana anteriors i és l'hora següent al pati.
Aquest esquema ens diu que un alumne que l'hora anterior hagi estat present, però, hagi faltat a la mateixa hora les tres setmana anterior, l'hora sigui les 18:05 (després del pati) i l'alumne sigui del grau superior d'administratiu, llavors el model aposta per que aquest alumne sigui absent ( 9 casos sobre 19).


Els models cal contrastar-los per saber si estan funcionant correctament. Normalment es reserva un 20% de les mostres per, en comptes de donar de menjar al programa que apren, s'utilitzin per contrastar el model. Jo aquest pas no l'he fet, però procuraré, d'aquí tres setmanes, comprovar la bondat del model amb els nous controls que es realitzin. Mentrestant animo als companys a sentir-se afortunats.