Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


tesina algoritmi e programma cart - informatica, Tesine universitarie di Elementi di Informatica

tesina algoritmi e programma cart per informatica

Tipologia: Tesine universitarie

2016/2017

Caricato il 30/01/2017

sarabyun93
sarabyun93 🇮🇹

4.6

(20)

15 documenti

1 / 9

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Sara Montingelli
30 – 10 - 1993 1531103
Tesina
d'Informatica sugli Algoritmi
Scienze della comunicazione, tecnologie e culture digitali 2015/2016
La definizione di informatica proposta dall’ACM (Association for Computing Machinery),
una delle principali organizzazioni scientifiche di informatici di tutto il mondo, è la
seguente: ”L’informatica è la scienza degli algoritmi che descrivono e
trasformano l’informazione: la loro teoria, analisi, progetto, efficienza,
realizzazione e applicazione.”
Pertanto l’algoritmo è un concetto fondamentale e centrale dell’informatica, perché è
alla base della nozione teorica di calcolabilità: un problema è calcolabile quando è
risolvibile mediante un algoritmo.
Il termine deriva dalla trascrizione latina del nome del matematico persiano al-
Khwarizmi, che è considerato uno dei primi autori ad aver fatto riferimento a questo
concetto.
In informatica, un algoritmo non è altro che un procedimento che permette la
risoluzione di specifici problemi mediante l'applicazione di una sequenza finita di
precise istruzioni, che a loro volta devono essere interpretate ed eseguite, fino alla loro
conclusione, seguendo un certo ordine.
Le proprietà fondamentali che deve avere un qualunque algoritmo sono:
Correttezza: perviene alla soluzione del problema dato.
Efficienza: perviene alla soluzione nel modo migliore possibile. La velocità è
solo uno dei criteri. Si parla in generale di qualità.
Finitezza: Il numero di istruzioni che fanno parte di un algoritmo è finito. Le
operazioni definite in esso vengono eseguite un numero finito di volte.
Il determinismo: Le istruzioni presenti in un algoritmo devono essere definite
senza ambiguità. Un algoritmo eseguito più volte e da diversi esecutori, a parità
di premesse, deve giungere a medesimi risultati
Terminazione: L’esecutore deve terminare in tempo finito per ogni insieme di
valori in ingresso.
Realizzabilità pratica: L’esecutore deve essere in grado di eseguire
l’algoritmo con le risorse a sua disposizione (informazioni + tecnologia).
pf3
pf4
pf5
pf8
pf9

Anteprima parziale del testo

Scarica tesina algoritmi e programma cart - informatica e più Tesine universitarie in PDF di Elementi di Informatica solo su Docsity!

Sara Montingelli

Tesina

d'Informatica sugli Algoritmi

Scienze della comunicazione, tecnologie e culture digitali 2015/ La definizione di informatica proposta dall’ACM (Association for Computing Machinery), una delle principali organizzazioni scientifiche di informatici di tutto il mondo, è la seguente: ”L’informatica è la scienza degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione.” Pertanto l’algoritmo è un concetto fondamentale e centrale dell’informatica, perché è alla base della nozione teorica di calcolabilità: un problema è calcolabile quando è risolvibile mediante un algoritmo. Il termine deriva dalla trascrizione latina del nome del matematico persiano al- Khwarizmi, che è considerato uno dei primi autori ad aver fatto riferimento a questo concetto. In informatica, un algoritmo non è altro che un procedimento che permette la risoluzione di specifici problemi mediante l'applicazione di una sequenza finita di precise istruzioni, che a loro volta devono essere interpretate ed eseguite, fino alla loro conclusione, seguendo un certo ordine. Le proprietà fondamentali che deve avere un qualunque algoritmo sono:

  • Correttezza : perviene alla soluzione del problema dato.
  • Efficienza : perviene alla soluzione nel modo migliore possibile. La velocità è solo uno dei criteri. Si parla in generale di qualità.
  • Finitezza : Il numero di istruzioni che fanno parte di un algoritmo è finito. Le operazioni definite in esso vengono eseguite un numero finito di volte.
  • Il determinismo : Le istruzioni presenti in un algoritmo devono essere definite senza ambiguità. Un algoritmo eseguito più volte e da diversi esecutori, a parità di premesse, deve giungere a medesimi risultati
  • Terminazione : L’esecutore deve terminare in tempo finito per ogni insieme di valori in ingresso.
  • Realizzabilità pratica : L’esecutore deve essere in grado di eseguire l’algoritmo con le risorse a sua disposizione (informazioni + tecnologia).
  • Generalità : Un algoritmo, compatibilmente con i vincoli espressi dal problema, si occupa della risoluzione di famiglie di problemi I linguaggi per la descrizione degli algoritmi si possono riassumere in:
  • Linguaggi informali : Linguaggio Naturale
  • Linguaggi semi-formali : Pseudo-codice, Flow chart (diagrammi di flusso)
  • Formali : Linguaggio di programmazione (es. C++, Java, ecc..) Nel caso in cui l’algoritmo possa essere eseguito dal computer è necessario riscriverlo come sequenza di azioni elementari chiamate istruzioni, che nel loro insieme costituiscono linguaggi di programmazione. Le strutture fondamentali sono: **1. Sequenza
  1. Selezione
  2. Ciclo Rappresentazione grafica degli Algoritmi Diagramma di flusso** L’algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma di flusso , ciascun componente del quale ha un significato ben determinato. Nella Tabella sotto sono riportati i vari elementi che possono costituire un diagramma di flusso e il relativo significato. È importante sottolineare la differenza tra i diversi elementi. Per esempio l’elemento a forma di rombo costituisce sempre una “diramazione”: in base alla valutazione della condizione racchiusa, viene seguito un certo percorso invece di un altro.

Altro caso è quello dell’applicazione di uno specifico algoritmo di un sofisticato software su alcuni veicoli Volkswagen che rileva quando la macchina è in fase di test ufficiali di emissioni, e trasforma completamente i comandi delle emissioni solo durante questa fase. L’efficacia dei dispositivi di controllo delle emissioni di inquinamento di questi veicoli è notevolmente ridotta in tutte le situazioni di guida normali. Ciò si traduce in automobili che soddisfano gli standard di emissioni in laboratorio o nelle testing station, ma durante il normale funzionamento, emette ossidi di azoto o NOx, fino a 40 volte sopra la norma. Nel 2015 invece, si è molto parlato dell'algoritmo utilizzato dal ministero dell'istruzione (MIUR), università e ricerca per assegnare le cattedre ai docenti. Il sistema utilizzando dati ed informazione dei docenti, inviati via email (oltre 55.000), ha assegnato le cattedre incrociando punti e province. Un meccanismo che costringerà molti precari, inseriti da anni nella graduatoria ad esaurimento di una determinata provincia ovvero nella graduatoria di merito dei concorsi regionali, ad accettare sedi di servizio non ricomprese nella regione o provincia di attuale inclusione, pena l’esclusione da ogni possibilità di assunzione, pur in presenza di posti disponibili in sede locale.

Introduzione dei data mining,

gli alberi di classificazione e

decisione, l'algoritmo del

programma Cart

I processi aziendali sono ormai caratterizzati da una grande mole di dati e risulta quindi sempre più difficile estrarreda essi le caratteristiche rilevanti per poter prendere decisioni; pertanto risulta di fondamentale importanza un processo atto a scoprire correlazioni, relazioni e tendenze, setacciando grandi quantità di dati immagazzinati in archivi, usando tecniche di riconoscimento delle relazioni e tecniche e statistiche e matematiche. Il data mining non consiste in un processo atto a prendere decisioni, ma è di supporto ad esso. Le tecniche del data mining vengono utilizzate in molteplici e differenti ambiti:

  • Predire l'affidabilità dei clienti nella concessione di prestiti;
  • Riconoscere, nella grande mole di transazioni effettuate, l'uso fraudolento di carte di credito rubate;
  • Effettuare campagne di marketing mirate o inviare cataloghi ad hoc per particolari gruppi di clienti; Sono state date differenti definizioni di Data Mining, in alcune è legato a tecniche specifiche come le reti neurali o gli algoritmi genetici, in altre è presentato come

soluzione a tutti i problemi aziendali. Tutte queste definizioni però non tengono conto del fatto che il data mining non è legato ad alcuna tecnica specifica e non rappresenta una soluzione universale. Vi sono molteplici tecniche di Data Mining e l'obiettivo dell'analisi è la guida per scegliere correttamente quali di esse utilizzare. Gli strumenti del Data Mining si dividono in due gruppi, entrambi necessari:

  • Indagine
  • Verifica La maggior parte degli strumenti di indagine fu sviluppata nell'ambito della ricerca sull'intelligenza artificiale. Questi strumenti identificano relazioni e tendenze nei dati, aiutando a scoprire correlazioni fra variabili differenti. I principali strumenti di indagine sono:
  • Indagine esplorativa visuale
  • Alberi decisionali
  • Reti neurali
  • Analisi di segmentazione ( Cluster Analysis )
  • Analisi fattoriale
  • Regole di assocazione ( Association Analysis )
  • Induzione di regole ( Rule induction ) I principali strumenti di verifica sono:
  • Correlazioni
  • ANOVA
  • Regressione lineare
  • Analisi discriminante Spesso la fase di preparazione del modello avviene su un sottoinsieme dei dati da analizzare ed il rimanente sottoinsieme non utilizzato per la costruzione del modello è destinato alla fase di validazione per testare la qualità del modello trovato. Le applicazioni del Data mining hanno già dato importanti risultati in molteplici settori ad esempio:
  • Banche
  • Gestioni clienti
  • Marketing mirato
  • Telecomunicazioni
  • Medicina
  • Astronomia
  • Progettazione web e promozioni Un aspetto molto importante da considerare, anche alla luce delle numerose norme giuridiche in merito, è la privacy. Infatti i dati collezionati su cui condurre l'indagine possono essere personali e “ sensibili “, pertanto gli esecutori dell'indagine devono avere i requisiti di legge per aver accesso e trattare i dati personali presenti. Gli alberi di decisione e di regressione Gli alberi decisionali sono gli strumenti di indagine più diffusi e permettono di identificare velocemente ed efficacemente segmenti e gruppi significativi. I principali algoritmi per la generazione degli alberi decisionali sono CHAID, CHAID esaustivo, QUEST e CART. Nella teoria delle decisioni, un albero di decisioni è un grafo di decisioni e delle loro possibili conseguenze, utilizzato per creare un piano di azioni mirato ad uno scopo. Un

valori delle variabili predittive. Possono essere pertanto trattati direttamente senza analisi preventive ed eventuali trasformazioni anche variabili multimodali o con distribuzioni non normali oppure predittori a valori discreti finiti ordinali o non ordinali. Inoltre l'analisi CART ha il grande vantaggio di poter operare anche in caso di variabili predittive per la quali mancano i valori. L'analisi CART, dunque presenta un certo numero di vantaggi rispetto ad altri metodi di classificazione. In primo luogo, come è già stato detto: è intrinsecamente non parametrica. Cioè non viene formulato alcun presupposto sulla distribuzione di base dei valori delle variabili predittrici. Quindi CART può maneggiare sia dati numerici, sia dati non numerici a struttura ordinale e non ordinale. Ciò è una caratteristica importante poiché fa risparmiare all'analista il tempo necessario ad effettuare una serie di stranscodifiche per rendere le variabili con distribuzione normale. CART identifica le variabili di suddivisione effettuando una ricerca esauriente di tutte le possibilità attraverso efficienti algoritmi e quindi funziona anche nei problemi con molte centinaia di possibili predittori. CART inoltre usa metodi sofisticati per trattare variabili mancanti, quindi è possibile ottenere risultati utili anche qualora siano parzialmente mancanti. Un altro vantaggio consiste nel limitare le preparazioni sui dati da parte dell'analista fornendo un metodo relativamente automatico di apprendimento. Infine, gli alberi di CART sono relativamente semplici da interpretare per coloro che non sono statistici. L'analisi di CART consiste sinteticamente in quattro passi base:

  1. II primo passo consiste nella costruzione dell'albero usando lo splitting ricorsivo di nodi, ad ogni nodo risultante è assegnata una classe di predittori, in base alla distribuzione delle classi dell'insieme dei dati di apprendimento che si presenta in quel nodo ed alla matrice di costo della decisione. Tale assegnazione avviene anche se quel nodo verrà successivamente diviso in nodi figli.
  2. Il secondo passo consiste nell'arrestare il processo di costruzione dell'albero. Ad un certo punto della fase di suddivisione si perviene ad un albero “massimale”, che probabilmente contiene oltremisura le informazioni dell'insieme dei dati di apprendimento.
  3. Il terzo passo consiste nella potatura dell'albero, il cui risultato è la creazione di una sequenza di alberi più semplici, ottenuti tramite il riaccorpamento di nodi via via più importanti.
  4. Il quarto passo consiste nella selezione dell'albero ottimale, durante la quale fra gli alberi precedentemente potati viene scelto quello che meglio rappresenta le informazioni presenti nell'insieme dei dati di apprendimento. Il programma CART Il programma CART della Salford Systems è l'unico sistema di alberi di decisione basato sull'algoritmo originale, sviluppato dagli statistici Breiman, Friedman, Olshen e Stone. Grazie all'esperienza decennale della ricerca su statistica e apprendimento delle macchine, CART fornisce risultati accurati e stabili. E' caratterizzato da:
  • Una strategia di potatura affidabile: gli sviluppatori del programma hanno individuato che non è una regola per arrestare la costruzione dell'albero ottimo ed hanno pertanto introdotto la nozione di alberi che crescono anche oltre l'ottimo per poi potare a ritroso, questa idea, fondamentale in CART, assicura che importanti relazioni e schemi nei dati non siano persi per un arresto precoce.
  • Un potente approccio di ricerca degli schemi nascosti basato su suddivisioni binarie: gli alberi di decisione di CART sono binari e quindi più parsimoniosi con i dati e rilevano l'esistenza di strutture e schemi prima che rimangano pochi dati.
  • Procedure di “autovalidazione” automatiche: nella ricerca di schemi nei dati è essenziale evitare di cadere nell'errore di considerare validi schemi “forzatamente” estratti dall'insieme dei dati di apprendimento; le discipline incluse in CART assicurano che gli schemi trovati rimangano validi anche quando verranno applicati ai nuovi dati. Inoltre CART, permette di trovare il modello di numerosi problemi reali tramite una distintiva combinazione di soluzioni automatizzate:
  • “Suddivisori surrogati” gestiscono intelligentemente i valori mancanti : CART gestisce i valori mancanti nei dati sostituendo ad essi dei “suddivisori surrogati”, ovvero delle regole di scorta che emulano strettamente l'azione delle regole di suddivisione primarie. Ovvero, invece di trattare i record che contengono valori mancanti come se tutti contenessero il valore medesimo, vengono gestiti ciascuno con i dati suoi specifici permettendo ai record con differenti schemi nei dati di essere trattati differentemente.
  • Penalità di erronea classificazione regolabile : CART permette di trattare differenti errori di attribuzione alle classi con pesi differenti, alcuni possono quindi essere più rilevanti di altri. L'utente di CART, può dunque scegliere che l'errore di classificazione di una determinata variabile sia più importante di quello di un'altra.
  • Ampia scelta di criteri di suddivisione alternativi : CART utilizza sette criteri di suddivisione variabili per gli alberi di decisione (Gini, Symgini, Twoing, Ordered Twoing, Entropia e Probabilità di Classe) e due criteri per gli alberi di regressione, oltre ad un criterio per variabili multiple. Il metodo base Gini si comporta normalmente meglio degli altri, ma in particolari specifiche circostanze gli altri possono risultare migliori. La struttura del programma CART La versione per Windows è composta da 4 sezioni principali:
  1. La barra del titolo
  2. I menu
  3. La barra degli strumenti
  4. L'area di lavoro dove verranno visualizzate le finestre per i comandi ed i risultati. All'avvio del programma viene mostrata nell'area di lavoro la sola finestra CART aperta suddivisa in due sezioni: sulla sinistra si trova “Report Contents” dove verranno visualizzati dei collegamenti per accedere alle sezioni principali dei risultati; sulla destra vi è la zona di immissione dei comandi testuali e di risposta testuale. Dopo l'elaborazione viene mostrata la finestra “Navigator” con i risultati in forma grafica. I dati devono essere organizzati semplicemente in forma di matrice dove sulle righe vi sono le singole occorrenze e sulle colonne i valori che le variabili assumono per ciascuna occorrenza. I nomi delle variabili devono iniziare con una lettera, contenere solo lettere, cifre e sottolineature, essere lunghi al più di 32 caratteri e terminare con il simbolo dollaro se trattasi di variabile con valori non numerici. Il programma ha la possibilità di leggere i dati memorizzati in vari formati: