Sei sulla pagina 1di 22

Macchina a Stati Finiti

e
Alberi di Decisione

Renato Mainetti
FSM

FSM e Alberi di Decisione - Lezione 3 2


Matlab cosa ci regala ?
StateFlow: http://it.mathworks.com/products/stateflow/

Stateflow® consente di modellare il modo in cui il sistema reagisce a eventi,


condizioni temporali e segnali di stimolo esterni.

FSM e Alberi di Decisione - Lezione 3 3


StateFlow - Simulink

Simulink è un tool di Matlab utilizzato per eseguire


simulazioni di sistemi dinamici.
Noi lo useremo con StateFlow, componente che ci
permette di costruire una macchina a stati finiti.
Per creare un nuovo progetto:
Click su «New» e poi nella sezione Simulink premere su
«Stateflow Chart».
Se il tasto «Stateflow Chart» non è presente, è possibile
premere il tasto «Simulink Model» e aggiungere al
modello creato successivamente il componente «Chart»
attraverso il dizionario dei componenti (vedi slide successive).

FSM e Alberi di Decisione - Lezione 3 4


StateFlow - Simulink

FSM e Alberi di Decisione - Lezione 3 5


Come si usa ?

Questo tasto apre la libreria di tutti i componenti di Simulink installati sul pc.
Ogni componente ha un suo specifico scopo.

FSM e Alberi di Decisione - Lezione 3 6


FSM Matlab On-Off
Aggiunge un nuovo stato

Stato iniziale

Componenti evidenziati in rosso da sinistra verso destra:


• «Constant» Valori costanti -> utilizzati come valore di input della macchina
• «switch» Interruttore -> seleziona quale valore inviare alla macchina
• «Chart» Rappresenta la nostra FSM, contiene stati e transizioni (doppio click per entrare
nella vista interna alla FSM)
Internamente a «Chart» troviamo:
• Stato -> rappresenta uno stato della fsm, può essere aggiunto con il bottone a forma
quadrata sulla barra di sinistra.
• Transizioni -> dato lo stato attuale della fsm, se la condizione di verità si verifica modifica
lo stato della FSM e passa ad un nuovo stato (indicato dalla freccia)
• Stato iniziale del sistema -> si può selezionare con il tasto freccia nel menù a sinistra

FSM e Alberi di Decisione - Lezione 3 7


FSM
File progetto: tamaFSM.m (lezione 2)

Vogliamo realizzare una FSM di un semplice Tamagotchi.


Il Tamagotchi può assumere 3 stati:
• Triste
• Neutro
• Felice

E’ possibile fornire al tamagotchi 3 differenti input:


• Scherzetto
• Non fare nulla
• Carezza

In funzione dello stato corrente e dell’input vogliamo che il Tamagotchi


cambi stato. Proviamo ad analizzare il codice e vediamo come abbiamo
definito le regole di transizione tra stati.

FSM e Alberi di Decisione - Lezione 3 8


FSM Tamagotchi
• Cambiamo gli stati d’animo del tamagotchi

Grafo delle
transizioni di stato

FSM e Alberi di Decisione - Lezione 3 9


STT – Tabella Transizioni Stato

Se invece di «Chart» usiamo la TTS, inseriamo le stesse informazioni utilizzate


per costruire lo STG ma in forma differente. Nella tabella a sinistra «States»
possiamo aggiungere nuovi stati, e sulla destra in «transition» possiamo
aggiungere condizioni di verità e il nuovo stato in cui andare al verificarsi di
quella condizione. Matlab è in grado di ricostruire
FSM e Alberi di Decisione - Lezione 3 10
Riflessioni:
• Una decisione è una scelta tra alternative. La decisione
viene presa stimando l’esito delle altre alternative
• Supportare in una decisione significa aiutare le persone
ad accumulare intelligenza su quel problema, trovare
alternative e prendere una decisione.

FSM e Alberi di Decisione - Lezione 3 11


Elementi di una decisione razionale:

• Identificare il goal che vogliamo raggiungere con quella


decisione
• Identificare tutte le opzioni disponibili
• Valutare il possibile risultato di ogni opzione
• Scegliere quale opzione è la migliore
• …Eseguire la scelta

FSM e Alberi di Decisione - Lezione 3 12


Alberi di Decisione (Wikipedia)
Nella teoria delle decisioni (per esempio nella gestione dei rischi), un albero di
decisione è un grado di decisioni e delle loro possibili conseguenze, (incluso i
relativi costi, risorse e rischi) utilizzato per creare un 'piano di azioni' (plan) mirato
ad uno scopo (goal). Un albero di decisione è costruito al fine di supportare
l'azione decisionale (decision making).

Nel machine learning un albero di decisione è un modello predittivo, dove ogni


nodo interno rappresenta una variabile, un arco verso un nodo figlio rappresenta
un possibile valore per quella proprietà e una foglia il valore predetto per la
variabile obiettivo a partire da i valori delle altre proprietà, che nell'albero è
rappresentato dal cammino (path) dal nodo radice (root) al nodo foglia.
Normalmente un albero di decisione viene costruito utilizzando tecniche di
apprendimento a partire dall'insieme dei dati iniziali (data set), il quale può essere
diviso in due sottoinsiemi: il training set sulla base del quale si crea la struttura
dell'albero e il test set che viene utilizzato per testare l'accuratezza del modello
predittivo così creato.

FSM e Alberi di Decisione - Lezione 3 13


Albero di decisione
(Teoria delle decisioni)

Decisione da prendere…

Aprire un ristorante???

FSM e Alberi di Decisione - Lezione 3 14


Albero di decisione
(Teoria delle decisioni)

Possibili opzioni:

FSM e Alberi di Decisione - Lezione 3 15


Albero di decisione
(Teoria delle decisioni)
L’esparto ci dice che:
50% Successo 100 Euro

50% Fallimento -30 Euro

50% Successo 90 Euro

50% Fallimento -10 Euro

FSM e Alberi di Decisione - Lezione 3 16


Albero di decisione
(Teoria delle decisioni)

50% Successo 100 Euro

50%(100) + 50%(-30) = 35 Euro

50% Fallimento -30 Euro

50% Successo 90 Euro

50%(90) + 50%(-10) = 40 Euro

50% Fallimento -10 Euro

FSM e Alberi di Decisione - Lezione 3 17


Decision-Making
Fasi e Passi
• Intelligenza
• Raccolta informazioni e dati
• Riconoscimento del problema
• Design
• Formulazione del modello
• Analisi del modello
• Scelte
• Generazione e Valutazione
• Selezione

FSM e Alberi di Decisione - Lezione 3 18


Albero di decisione
(Machine Learning)

FSM e Alberi di Decisione - Lezione 3 19


Albero di decisione
(Data mining - possibili applicazioni)

Data mining is well suited to provide decision support in the healthcare


setting. Healthcare organizations face increasing pressures to improve the
quality of care while reducing costs. Because of the large volume of data
generated in healthcare settings, it is not surprising that healthcare
organizations have been interested in data mining to enhance physician
practices, disease management, and resource utilization.

http://www.cs.uky.edu/~goldsmit/cdm/DMCDSS.pdf

FSM e Alberi di Decisione - Lezione 3 20


Albero di decisione
(Machine learning)

Apprendimento supervisionato

Il Dataset contiene i parametri e le etichette (ricavato da mesi e mesi di osservazioni)

Proviamo ad eseguire l’addestramento di un albero di decisione:


Problema predire se il giocatore di golf andrà a giocare oggi, conoscendo umidità e
temperatura:

Inseriamo:
>>Meteo = [80 30; 70 15; 70 20; 50 20]
>>Gioca = [0 1 0 1]
>> playTree = fitctree(Meteo,Gioca,'PredictorNames', {'umidità' 'temperatura'},
'ResponseName', 'y', 'ClassNames', [0 1], 'minparent',1);
>>view(playTree,'mode','graph')

FSM e Alberi di Decisione - Lezione 3 21


Albero di decisione
(Machine learning)

FSM e Alberi di Decisione - Lezione 3 22

Potrebbero piacerti anche