Clustering semi-supervisionato di documenti di testo tramite SVM

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Clustering semi-supervisionato di documenti di testo tramite SVM"

Transcript

1 Università degli Studi di Siena Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Clustering semi-supervisionato di documenti di testo tramite SVM Relatore: Prof. Marco Maggini Correlatore: Ing. Leonardo Rigutini Tesi di Laurea di: Gianni Poli Anno Accademico 2004 / 2005

2 Indice 1 Introduzione Rappresentazione del documento Costruzione del Dizionario Filtraggio dei Documenti Dalle Parole ai Vocaboli Radice Dai Vocaboli Radice ai Synset Dai Synset agli Extended Synset Scelta delle Feature Significative Riduzione dello Spazio delle Feature Il problema del Clustering Formalizzazione del problema Algoritmi EM ed il K-Means K-Means semi-supervisionato Le Support Vector Machine K-Means con SVM come centroidi Clustering semi-supervisionato Descrizione dell algoritmo Libreria SVMLight Matrice Dati (Bag-of-Synset) Schema EM di base Modelli SVM Schema EM con IG e SVD Scelta del tipo di classificazione Dataset usato per la sperimentazione Stima dei Parametri Indice 1

3 4.3.1 Metodologie per la sperimentazione Esperimenti su BOS e EBOS Esperimenti sull IG Esperimenti sulla SVD Esperimenti sulle SVMLight Esperimenti sul Soft Clustering Esperimenti sul numero di documenti noti a priori Parametri globali stimati per l algoritmo EM Risultati Metodologie per la valutazione Valutazione dell Entropia Clustering Dataset con Categorie Correlate Clustering Dataset con Categorie non correlate Risultati finali Conclusioni Sviluppi Futuri Bibliografia Indice 2

4 1 Introduzione Nel campo dell Analisi di Documenti, il Clustering di testi è un problema tuttora aperto che presenta molte difficoltà: dividere dei documenti in gruppi, senza avere informazioni sul criterio da utilizzare, è un arduo problema non supervisionato. In effetti anche un operatore umano, a cui viene assegnato un insieme di documenti da suddividere in gruppi omogenei senza predefinire un criterio a priori, può avere difficoltà in questa operazione, e operatori diversi possono produrre risultati molto diversi fra loro. Alcuni dei fattori che contribuiscono alla difficoltà del problema del Clustering dei documenti di testo, sono: Per valutare efficacemente il contenuto dei testi è necessario analizzare dal punto di vista semantico le parole in essi presenti, e spesso non basta contare le occorrenze dei vocaboli per stabilire l argomento del testo; La grandezza del dizionario, che deve tener conto di tutti i vocaboli che compaiono nei testi di interesse, comporta una enorme dimensionalità del problema, rendendo difficili e costose tutte le operazioni necessarie per il Clustering; Pur riuscendo alcuni strumenti, come ad es. le Support Vector Machine (SVM), dopo un adeguato addestramento, a classificare i documenti con ottime prestazioni, non si riescono a dividere con efficacia i documenti in gruppi se il criterio di suddivisione non è noto a priori, cioè se il problema è completamente nonsupervisionato. Introduzione 3

5 Separare in modo automatico un insieme di documenti in gruppi omogenei è uno dei rami oggigiorno più esplorati dell area dell Information Retrieval, e trova applicazioni in vari settori; in particolar modo nell ambito della organizzazione di ampie basi di dati documentali, specie con riferimento al World Wide Web la cui mole di documenti è enorme, tanto che risulta necessario trovare delle soluzioni per automatizzare tale processo. Portali e Directory, basati su categorie di documenti, sono strumenti fondamentali nel moderno Web per trovare informazioni in maniera più efficace rispetto alla più classica ricerca per parole chiave dei motori di ricerca. CiteSeer ( e Google Scholar ( sono, tra i servizi di questo tipo, quelli più noti, volti alla catalogazione e ricerca di documenti e articoli scientifici in base alle loro citazioni. La mia tesi si inserisce all interno del progetto CiteSeer Europe, il cui scopo è di riprodurre e migliorare il motore CiteSeer attuale, con particolare interesse verso l automazione della categorizzazione dei documenti. In coppia con un altro studente, è stato effettuato un lavoro in cui sono state cercate soluzioni alle problematiche legate al Clustering precedentemente elencate. Tale lavoro risulta diviso in due parti: 1. Ricerca di una valida Rappresentazione dei Documenti in grado da un lato di usare un informazione di livello semanticosintattico, basata non solo sui vocaboli ma sulle loro relazioni e sui loro significati, e dall altro di ridurre la dimensionalità del problema, usando tecniche per scegliere le feature più significative e per proiettarle in uno spazio di ordine inferiore; 2. Sperimentazione di un algoritmo di Clustering semisupervisionato che usa Support Vector Machine come centroidi dei Cluster, in cui si fa un primo addestramento delle SVM basato Introduzione 4

6 su pochi esempi, e poi un ciclo iterativo di tipo Expectation Maximization (EM) che ad ogni passo aggiorna i vari modelli SVM allo scopo di raffinare il raggruppamento. Nell ambito della mia Tesi mi sono occupato del punto 2, analizzando le tecniche di Clustering esistenti e cercando di creare un metodo in grado unire le enormi potenzialità delle SVM ai classici approcci di tipo EM. La sperimentazione ha anche incluso la valutazione delle varie tecniche elencate al punto 1, al fine di scegliere quali siano le più adatte per essere usate dall algoritmo di Clustering. Nel capitolo 2 si farà un breve cenno sulle tecniche usate per la Rappresentazione dei Dati [12]. Nel capitolo 3 si affronterà il tema del Clustering, analizzandone le problematiche generali e proponendo gli approcci di tipo EM che saranno valutati in questa Tesi, e si introdurranno inoltre gli strumenti fondamentali che verranno usati: le SVM. Nel capitolo 4 si descriveranno quindi nel dettaglio l algoritmo di Clustering implementato (4.1), il Dataset usato per la sperimentazione (4.2) e le varie tipologie di esperimenti effettuati con le relative analisi sui parametri valutati (4.3); nel capitolo 5 si riporteranno quindi i risultati ottenuti durante la sperimentazione dell algoritmo di Clustering su più Dataset. Nel capitolo 6 si riporteranno le conclusioni finali e nel capitolo 7 si parlerà infine dei possibili sviluppi futuri. Introduzione 5

7 2 Rappresentazione del documento 2.1 Costruzione del Dizionario Tutte le operazioni che verranno effettuate sui documenti, saranno di tipo linguistico; è dunque necessario, prima ancora di analizzare i vocaboli, avere un dizionario su cui lavorare. Le parole del dizionario costituiranno le feature utilizzate per rappresentare i singoli documenti. Risulta chiaro quindi che la scelta del dizionario è un passo importante nella costruzione di un sistema per l analisi automatica del testo. Un dizionario specifico per la base documentale di interesse può essere ottenuto estraendo tutte le parole dai documenti presenti in essa e selezionando poi i termini ritenuti effettivamente significativi. Ad esempio, per costruire il dizionario utilizzato negli esperimenti, è stato formato un elenco di tutte le parole prese da un Dataset in lingua inglese di ampie dimensioni, che sono state analizzate tramite la libreria WordNet per la lingua inglese, per stabilire se esse sono sostantivi, verbi, aggettivi o avverbi; le parole non appartenenti a queste categorie, come ad es. le preposizioni, sono state così immediatamente scartate. Nel calcolare la frequenza delle parole e costruire le feature, è stato successivamente deciso di usare soltanto i sostantivi ed i verbi (usando la comune tecnica Stop Words ), ritenendo aggettivi ed avverbi vocaboli troppo generici che non sono in grado di caratterizzare in modo preciso il contenuto semantico di un testo. 2.2 Filtraggio dei Documenti La prima fase nell'analisi dei documenti è ovviamente quella di estrarne il testo. Con questa operazione si perde l informazione relativa all aspetto del layout del documento originario e la funzione logica delle parti del testo (titolo, autori, abstract, sezioni, bibliografia). Di fatto Rappresentazione del Documento 6

8 possono essere estratte anche rappresentazioni strutturate del documento, ovvero che mantengono distinti i contesti dei termini, ma questo comporta un incremento della complessità della rappresentazione che non introduce benefici significativi. Infatti i sistemi di elaborazione automatica del testo riescono ad ottenere prestazioni soddisfacenti semplicemente considerando i termini come feature, trascurando quindi sia la struttura che la sequenzialità del testo. Nel caso degli esperimenti effettuati, partendo da documenti strutturati come file in formato XML, un primo filtro prevede di rimuovere i tag per poter lavorare con il solo testo. Durante questa operazione si perdono le informazioni relative all autore del documento, al titolo, alle citazioni, etc., presenti nei file XML usati, essendo lo scopo della sperimentazione quello di valutare il Clustering soltanto in base al testo contenuto, ed indipendentemente da informazioni aggiuntive. Un secondo filtro si occupa di rimuovere la punteggiatura e tutti i caratteri particolari, come?, $, etc.; lo scopo è infatti di avere soltanto le parole che effettivamente possono essere presenti nel dizionario. Un terzo filtro si occupa poi di convertire tutti i caratteri in minuscolo, visto che non si analizzano informazioni relative ad es. ai nomi con le iniziali maiuscole. A questo punto è disponibile una matrice Words X Documents, le cui colonne rappresentano i vari documenti, e le cui righe identificano le parole del dizionario considerato. In altre parole ogni documento è rappresentato come un vettore nello spazio del dizionario. La componente d ij del vettore che rappresenta il documento j è il peso del termine i del dizionario nel documento. Il valore di tale componente può essere calcolato in molti modi diversi. In particolare, negli esperimenti è stata estratta la frequenza del termine nel documento. Rappresentazione del Documento 7

9 2.3 Dalle Parole ai Vocaboli Radice Un tipo particolare di filtraggio, il primo di livello linguistico che viene fatto, è quello del morphing. Si vuole cioè ricondurci alla forma base delle parole, per evitare che lo stesso verbo coniugato in due modi, o la stessa parola al singolare e al plurale, vengano visti come due vocaboli diversi. A tale scopo viene usata una funzione della libreria WordNet [30] per la lingua inglese, il morph appunto, che per ogni parola ne restituisce la forma base; questa operazione è fondamentale per facilitare le fasi successive ed il Clustering stesso. Ovviamente, se una parola non si trova nel dizionario e non è neppure possibile risalire ad una forma radice valida, questa viene scartata. Arrivati a questo punto la normalizzazione del testo è terminata, e contando le occorrenze delle varie parole nel documenti abbiamo pronto il cosiddetto Bag-of-Word, ovvero un vettore con le frequenze con cui le varie parole (ovviamente quelle filtrate, quindi quelle presenti nel dizionario e nella forma radice) compaiono all interno del documento. Il termine Bag-of-Word mette in evidenza la semplicità della rappresentazione scelta che vede ogni documento come un insieme di parole e non come una sequenza strutturata di testo. 2.4 Dai Vocaboli Radice ai Synset Uno degli scopi dello studio effettuato è stato quello di definire una rappresentazione che tenga conto del livello semantico-sintattico dei termini presenti nel testo, ovvero che non consideri ogni termine come un simbolo indipendente da tutti gli altri. In effetti la semantica dei termini definisce delle relazioni fra di essi ed ad esempio le coordinate relative ai termini pera e mela sono semanticamente correlate attraverso la categoria semantica frutta mentre i termini pera e nave sono effettivamente componenti scorrelate anche dal punto di vista semantico. E dunque necessario avvalersi ancora della libreria WordNet, per passare Rappresentazione del Documento 8

10 dalle parole ai loro significati. In WordNet esistono infatti i Synset (insiemi di sinonimi), delle entità particolari, indipendenti dalle parole stesse, ma ad esse legate, e che ne rappresentano il significato. L'esempio tipico in italiano è la parola pesca, che può rappresentare il FRUTTO PESCA così come l'attività PESCARE; dunque in questo caso la stessa parola appartiene a due Synset diversi. Il caso opposto è quello in cui due parole diverse sono rappresentate dallo stesso Synset; ad es. in italiano anguria e cocomero identificano lo stesso FRUTTO ANGURIA. L obiettivo evidente è quello di migliorare la qualità delle feature che saranno successivamente usate per il Clustering; l uso dei Synset permette infatti di trasferire alla macchina quelle conoscenze linguistiche, come ad es. la sinonimia, che altrimenti non sarebbero considerate. Bisogna inoltre considerare il fatto che, come accennato, una parola presente nel testo può essere associata a più Synset; in questo caso, dovrebbe essere incrementata la frequenza di tutti i Synset possibili. Tuttavia con lo scopo di ridurre l ambiguità (una parola con moti significati non è molto informativa per identificare la semantica del testo a meno di non disambiguarne il significato vero in base al contesto), nell elaborazione, utilizzata per calcolare la rappresentazione dei documenti utilizzata negli esperimenti, è stato deciso di pesare la frequenza attribuita da una parola ai Synset di appartenenza proprio in base al loro numero. Ad esempio, se nel testo c è la parola pesca, vengono aumentati di 0,5 sia il Synset relativo al FRUTTO PESCA che quello relativo al PESCARE. Se c è la parola cocomero, viene aumentato di 1 soltanto il Synset del FRUTTO ANGURIA, così come se ci fosse stata la parola anguria. Alla fine di queste trasformazioni, si passa ad una matrice in cui le righe non sono più le parole, ma i Synset; un elemento della matrice non rappresenta più la frequenza della parola, ma quella del Synset, all interno del documento. La matrice SYNSETS X DOCUMENTS sarà quella usata nelle fasi successive; in generale, passando da WORDS a Rappresentazione del Documento 9

11 SYNSET, si aumenta la dimensionalità della matrice, essendo i significati più numerosi delle parole, ed il numero di elementi diversi da zero, poiché come descritto sopra una parola può aumentare il peso di più Synset. 2.5 Dai Synset agli Extended Synset Usando i Synset, come detto, si aggiungono informazioni legate ad alcune relazioni tra vocaboli, quali ad esempio la sinonimia; in realtà WordNet fornisce anche molte altre relazioni semantico-sintattiche. Per migliorare ulteriormente la rappresentazione, è possibile costruire un grafo del dizionario, in cui i nodi sono i vari Synset e gli archi le relazioni tra i Synset. Le relazioni più utili fra quelle definite per i Synset in Wordnet sono la meronimia, che lega due sostantivi quando uno risulta incluso in un altro, ovvero ne è una parte, come ad esempio per le parole ramo ed albero, e la iponimia, che lega due vocaboli in cui uno sia un discendente dell altro, ovvero appartiene alla categoria dell altro, come ad esempio per le parole tulipano e fiore. Applicando un algoritmo di propagazione di score su questo grafo, una specie di Page Rank per i grafi del Web [7], è possibile aggiornare i pesi dei vari Synset non più soltanto in base alla loro presenza, ma anche e soprattutto in base alle relazioni tra i vari Synset stessi. Il motivo per cui conviene fare questo passaggio, è che in questo modo due documenti, uno contenente ad esempio la parola fragola, e quindi il Synset FRUTTA FRAGOLA, e l altro contenente la parola ciliegia, e quindi il Synset FRUTTA CILIEGIA, risultano più simili in quanto per entrambi viene dato un certo peso anche al Synset FRUTTA, che non compariva in nessuno dei documenti ma che in pratica, a livello di significato del testo, dovrebbe essere presente in entrambi. Dato un grafo delle relazioni fra i Synset, per ogni nodo i si calcola la quantità Ext i, come somma dei pesi derivanti dai vari padri, del nodo Rappresentazione del Documento 10

12 stesso; il peso derivante da ognuno dei padri j, appartenenti all insieme pa[i] con cardinalità pa[i], si ottiene dividendo il peso del padre Syn j stesso per il numero totale ch[j] dei suoi figli. Ecco le formule per calcolare il Ranking di ogni nodo: Ext k i = Syn k j j pa[ i] ch[ j] Syn k i = d Ext k i + (1 d) Syn k 1 i dove k è l indice delle iterazioni, che va da 1 a n, e d il peso da dare alla parte Estesa del Ranking, a quella cioè che codifica il grafo delle relazioni. L iterazione è inizializzata utilizzando un vettore le cui 0 componenti Syn i corrispondono alle frequenze dei synset nel documento dato calcolate come descritto in precedenza. Ovviamente d e n sono parametri da stimare per via sperimentale; si nota che per d=0 si ha la configurazione dei Synset Standard, mentre per d=1 si pesa soltanto la parte Estesa. Inoltre è evidente che maggiore è il numero di iterazioni n, più si espande la parte di grafo che contribuisce allo score di un synset, coinvolgendo nodi legati a quello del Synset originale in maniera sempre più indiretta. Alla fine si ha sempre una matrice SYNSETS X DOCUMENTS, in cui però ci sono molti più valori non nulli, poiché il Ranking tende a diffondere i pesi dei Synset presenti anche su quelli non presenti ma semanticamente correlati. In questo modo la rappresentazione del documento esprime sia la distribuzione dei significati dei termini presenti nel documento che la semantica delle relazioni fra i termini stessi. Utilizzando relazioni diverse (meronimia, ipernomia, iponimia, ecc.) o combinandole fra loro utilizzando anche pesi diversi, si possono ottenere rappresentazioni diverse dello stesso documento. Rappresentazione del Documento 11

13 2.6 Scelta delle Feature Significative Un problema comune nel Clustering di documenti è la dimensionalità dello spazio; come già detto, si può effettuare una scrematura iniziale del dizionario, scartando parole non significative come ad esempio gli avverbi, le preposizioni e tutte le altre parole in generale poco significative per identificare l'argomento del testo. Anche usando solo sostantivi e verbi, la dimensionalità resta comunque alta; passando poi al dominio dei Synset prima, e a quello degli Extended Synset poi, tende ad aumentare ancora, e rimane in genere dell'ordine di 10 5, il che rende computazionalmente costoso il lavoro che successivamente dovrà essere svolto durante il Clustering. C è inoltre da dire che dimensioni così elevate, non soltanto rendono la complessità di calcolo molto elevata, ma peggiorano anche la capacità di raggruppare i documenti, essendo le feature sparse su uno spazio talmente vasto che riuscire a separare i vari documenti diventa un operazione molto complicata. Fra le tecniche che permettono di selezionare le feature più significative, è stata scelta quella basata sull Information Gain (IG) per valutare quali feature siano utili per il Clustering e quali possano essere trascurate. Con l IG, partendo da documenti già etichettati, si va a calcolare quanto una determinata feature è caratterizzante per un certo sottoinsieme di documenti [24, 25]. In particolare si considera la distribuzione di ogni synset nel sottoinsieme di interesse rispetto al suo complementare, in modo da stimare quanto tale Synset risulta essere caratterizzante solo di tale classe e non delle altre, per cui risulta tipico di quel tipo di documenti, e pertanto importante per discriminare quella classe dalle altre; se invece il Synset è distribuito più o meno uniformemente in tutte le classi, evidentemente non è determinante per stabilire a quale classe appartiene un Rappresentazione del Documento 12

14 documento che lo contiene, e si può dunque fare a meno di considerarlo durante il Clustering. Sia P(S i ) la probabilità totale di trovare un certo Synset e P(C j ) la probabilità a priori della classe; se P(S i,c j ) è la probabilità di trovare il Synset S i in un documento della classe C j, analizzando anche le altre tre probabilità in cui uno o entrambi i termini sono negati, l IG del synset S i si può calcolare come segue: IG( S, C ) i j = c { C C j } j P( s, c) P( s, c) log { S S } P( s) P( c i, s, ) i Una volta calcolato l IG per tutti i Synset, si selezionano soltanto quelli con i valori maggiori, riducendo la dimensione delle feature da 10 5 a valori compresi tra 10 3 e Sebbene si perda parte dell informazione originaria, se le feature selezionate con l IG sono effettivamente le più significative, il Clustering risulterà comunque fattibile, ed avremo ridotto di molto la dimensionalità dello spazio e la complessità computazionale dei calcoli. Il numero di feature da selezionare è un parametro da stimare durante la sperimentazione. 2.7 Riduzione dello Spazio delle Feature Un ulteriore riduzione dello Spazio delle Feature può essere ottenuta applicando la Singular Value Decomposizion (SVD) alla matrice di SYNSETS X DOCUMENTS che abbiamo finora costruito. La SVD [19] permette di scomporre una matrice M nel prodotto di tre matrici, una delle quali, quella centrale, contiene i valori singolari della matrice originale. Si ha dunque: M = U W V Rappresentazione del Documento 13

15 Se si considera la matrice W, ottenuta mantenendo solo i k valori singolari in W più grandi in modulo, la matrice M calcolata come M = U W V rappresenta la matrice a rango k che meglio approssima la matrice M in norma di Frobenius. Se si considerano le prime k colonne dalla matrice U, corrispondenti ai k vettori singolari sinistri di M relativi ai k valori singolari maggiori, si ottiene un sottospazio nello spazio dei termini su cui possono essere proiettati i documenti. Le coordinate della proiezione di ogni documento in tale sottospazio corrispondono a una rappresentazione vettoriale a k dimensioni che di fatto possono essere considerati come termini derivati. La nuova rappresentazione dei documenti è quindi un vettore a k componenti che si può ottenere proiettando il vettore dei termini originario nel nuovo sottospazio. Il problema della SVD è che è a sua volta computazionalmente complessa, e bisogna dunque valutare se usarla o meno, in base a quanto si riesce a ridurre le dimensioni senza che nella nuova rappresentazione risulti presa troppa informazione. Rappresentazione del Documento 14

16 3 Il problema del Clustering 3.1 Formalizzazione del problema Il Clustering è un problema di apprendimento non-supervisionato tra i più interessanti, ma anche tra i più difficili, il cui scopo è quello di trovare una certa struttura all interno di un insieme di dati non etichettati, organizzandoli in gruppi omogenei in base a certi criteri di similarità; ogni Cluster è dunque un insieme di oggetti simili tra loro, ma diversi rispetto a quelli contenuti in altri Cluster. Una formalizzazione del generico problema di Clustering di documenti di testo può essere la seguente: Sia D={d 1,d 2,..,d N } un insieme di N documenti, appartenenti ognuno ad una delle categorie C 1,C 2,..,C L, il cui numero L non è detto sia noto a priori, e sia H la distribuzione dei documenti, tale che d 1,d 2,..,d a C 1, d a+1,d a+2,..,d b C 2,.., d k+1,d k+2,..,d N C L ; data per ogni d i una certa rappresentazione r i, con 1 i N, si chiede di determinare, esclusivamente in base alle rappresentazioni r i dei documenti, l esatta distribuzione H, ovvero il modo in cui i documenti sono ripartiti tra le varie categorie. Tra i vari tipi di Clustering, si può fare una distinzione rilevante tra due tipologie: Hard e Soft. Con il termine Hard, si intende il problema di Clustering in senso stretto, ovvero si vuole partizionare un insieme di oggetti in vari gruppi, associando dunque ad ogni oggetto esclusivamente un unico gruppo. Con il termine Soft, si indica invece un Clustering meno stringente, ammettendo che un oggetto possa in realtà appartenere a più gruppi; questa situazione è particolarmente utile e tipicamente usata proprio in ambito di Clustering di documenti, poiché non è assolutamente detto che un testo appartenga ad una sola categoria ben precisa, ma capita spesso che possa appartenere a più categorie. Si pensi ad esempio ad un articolo che Il problema del Clustering 15

17 parla di Bioinformatica: è difficile stabilire se debba appartenere soltanto alla categoria Bioinformatica oppure se debba anche appartenere alle categorie Biologia ed Informatica. Con il Soft Clustering si va dunque ad infrangere quella relazione univoca che lega documenti e categorie nel caso dell Hard Clustering; ovviamente tale problema è più facile da risolvere, poiché si ammettono per buone più soluzioni possibili. 3.2 Algoritmi EM ed il K-Means L algoritmo usato tipicamente per effettuare Clustering di tipo Esclusivo, dove cioè ogni oggetto può appartenere ad un solo Cluster, è il K-Means, proposto da MacQueen nel Con questo metodo, si suppone di dividere gli oggetti del Dataset in K gruppi, ognuno dei quali è rappresentato da un centroide. Inizialmente, i centroidi vengono piazzati a caso nello spazio; si procede quindi ad etichettare ogni elemento come appartenente al gruppo rappresentato dal centroide più vicino. A questo punto, per ogni gruppo, si calcola il baricentro degli elementi che esso contiene, e tale valore sarà il nuovo centroide. Queste due operazioni, ovvero l etichettatura dei dati ed il calcolo dei nuovi centroidi, vengono ripetute finché non ci sono più modifiche tra un passo ed il successivo; a quel punto è stato ottenuto il Clustering finale del Dataset. Va precisato che è necessaria una conoscenza a priori, ovvero il numero K di gruppi nei quali suddividere i dati; si può comunque supporre che in generale, se si vogliono separare dei documenti in gruppi, si abbia già in mente, se non quali siano questi gruppi, per lo meno quanti siano. Il K-Means fa parte della categoria di algoritmi Expectation-Maximization (EM); in generale in questi algoritmi, dopo una inizializzazione generalmente casuale, si procede ad una ciclo che prevede prima il passo di Expectation, ovvero l etichettatura degli oggetti in base ai modelli attuali, e poi il passo di Maximization, ovvero il calcolo dei nuovi modelli in base alle nuove Il problema del Clustering 16

18 etichettature. L algoritmo termina quando non ci sono modifiche tra due iterazioni successive del ciclo, quando si è giunti cioè ad una soluzione stabile. Un grosso problema del K-Means è la sua forte dipendenza dal piazzamento iniziale dei centroidi che, in assenza di informazioni a priori sul Dataset, è praticamente casuale. Le prestazioni del K-Means possono dunque variare di molto in base all inizializzazione, e non si hanno garanzie sul risultato finale, visto che il Clustering può essere più o meno soddisfacente in corrispondenza di condizioni iniziali più o meno fortunate. Inoltre, il criterio per stabilire a quale Cluster appartiene un elemento è nel caso del testo è la semplice distanza coseno, che spesso risulta inefficace per catturare in modo preciso le somiglianze semantiche fra i testi. Infine, l algoritmo riscontra difficoltà all aumentare della dimensionalità dello spazio: diventa difficile infatti individuare dei gruppi di elementi simili quando i dati risultano molto dispersi nello spazio. Infatti, in problemi come quelli del Clustering di documenti di testo, in cui si ha una dimensionalità elevata ed in cui oltretutto oggetti di categorie diverse possono risultare simili, i punti relativi ai vari documenti sono disposti nello spazio in maniera sparsa, senza formare dei gruppi ben distinti dagli altri. Il risultato è che il Clustering tende a dare come soluzione un gruppo che contiene molti elementi, generalmente quello che fin dall inizializzazione casuale ingloba più elementi, e che ad ogni passo ne ingloba sempre di più, e tanti gruppi che contengono invece pochi elementi; la disposizione iniziale dei Cluster favorisce insomma un gruppo, che tende ad inglobare la maggior parte degli oggetti, penalizzando di conseguenza tutti gli altri. Il problema del Clustering 17

19 3.3 K-Means semi-supervisionato Per evitare questo problema bisognerebbe innanzitutto cercare di ridurre la dimensionalità dello spazio dei dati, in modo da eliminare le componenti poco significative per definire la similarità semantica fra i documenti e da rendere più facile separare, nello spazio dei dati, gli oggetti tra loro simili; in secondo luogo si dovrebbe cercare una configurazione iniziale non del tutto casuale, ma basata su una qualche informazione a priori [18], in modo da evitare il formarsi di un Cluster che tenda a fagocitare tutti gli oggetti. Per ridurre la dimensionalità, si possono usare le tecniche descritte nel capitolo precedente: usando Synset o Extended Synset anziché le semplici Parole presenti nel testo, si ottengono feature più significative; dopodiché, applicando a queste la selezione basata su IG e la SVD si riducono notevolmente le dimensioni dello spazio, conservando peraltro le informazioni più rilevanti. Come inserire queste tecniche all interno di un algoritmo EM, sarà descritto nel capitolo 6. Per dare invece un inizializzazione non casuale, è necessario calcolare i centroidi iniziali in funzione di alcuni elementi la cui etichettatura è nota a priori; in pratica si suppone che i Cluster all inizio non siano vuoti, ma contengano già alcuni documenti etichettati correttamente, in base ai quali, ad esempio calcolandone il baricentro, si ottengono i centroidi iniziali. E evidente che a questo punto non si può più parlare di apprendimento strettamente nonsupervisionato, poiché vengono date delle importanti informazioni iniziali, ovvero dei documenti di esempio di cui è noto il Cluster di appartenenza; si passa dunque ad un problema di Clustering semi-supervisionato, dove ci si limita a dare un inizializzazione supervisionata per poi continuare il Clustering in modo non-supervisionato. Questo tipo di approccio è realisticamente applicabile al Clustering di documenti di testo, a patto di usare un numero di elementi inizialmente Il problema del Clustering 18

20 etichettati molto basso rispetto alla dimensione del Dataset; questo perché l inizializzazione implica un lavoro di un operatore umano, che deve essere ridotto al minimo. Bisogna inoltre precisare che con l etichettatura iniziale, non si richiede all operatore umano di stabilire con esattezza l argomento di un testo, ma solo di distinguere alcuni documenti con contenuti di tipo diverso, separandoli in gruppi distinti. Approcci di questo tipo hanno già dimostrato di portare a Clustering finali tanto migliori quanto maggiore è il numero di documenti inizialmente forniti come esempi. Tale numero rimane comunque nell ordine delle unità o al massimo della decina, in base a quanti documenti si hanno in totale e in quanti gruppi devono essere divisi, e risulta comunque basso rispetto alla dimensione del Dataset, che per questo tipo di problema è in genere dell ordine di 10 3 o superiore. 3.4 Le Support Vector Machine Come si spiegherà meglio nel paragrafo successivo, al problema di Clustering affrontato nell ambito di questa tesi, sono stati applicati degli strumenti molto potenti, usati spesso con ottimi risultati per il problema della Classificazione: le Support Vector Machine (SVM). Senza dubbio risulta utile fare una breve introduzione teorica a riguardo. Le SVM, proposte nel 1992 da Vapnik [6], sono tra le tecniche più efficaci ed usate in ambito di Machine Learning ; si tratta di classificatori binari che apprendono a separare elementi appartenenti a due classi diverse [9]. Proiettando gli elementi in uno spazio multidimensionale, l idea è di trovare un iperpiano che massimizzi la distanza tra gli esempi delle due classi su cui si fa apprendimento. La caratteristica fondamentale delle SVM è di riuscire a dividere sia insiemi di dati linearmente separabili (Figura 1a), che insiemi inizialmente non facilmente separabili (Figura 1b), proiettando i punti dallo spazio originale, in cui non si riesce ad individuare un iperpiano separatore, in uno Il problema del Clustering 19

21 dove sono posizionati in maniera tale che si può facilmente trovare un iperpiano di separazione. Figura 1 a) Punti linearmente separabili ; b) Punti non linearmente separabili Nel caso di classi non linearmente separabili, l idea è quindi quella di mappare lo spazio originario in un spazio a molte dimensioni in cui le classi divengono linearmente separabili. Se x è la rappresentazione di un elemento nello spazio originario, si considera il suo trasformato nel nuovo spazio Φ(x) e in tale spazio si determina l iperpiano che separa le due classi con margine massimo. Una volta scelta la funzione Φ e assegnati gli esempi x i con associata la relativa classe, la soluzione al problema è un iperpiano separatore che è definito dai punti dell insieme di esempi più vicini ad esso, i Support Vector. Il problema è definire la funzione di mappatura Φ. In realtà, poiché la soluzione, ovvero il calcolo del sottospazio di appartenenza di un punto rispetto all iperpiano separatore, richiede solo il calcolo del prodotto scalare fra i trasformati dei support vector e il vettore in ingresso, ovvero di quantità del tipo Φ(x s ) T Φ(x), non occorre conoscere la funzione Φ, ma è sufficiente definire una funzione kernel K(x s,x) che calcola il prodotto scalare. Si tratta quandi di scegliere funzioni kernel che rispettino la proprietà di definire un prodotto scalare Il problema del Clustering 20

22 fra due elementi e riescano a definire una mappa che rende il problema linearmente separabile; le funzioni kernel principali sono: Lineare: x y Polinomiale: ( a x y + c) d Radial Basis Function: e g x y 2 Figura 2 a) Kernel Lineare ; b) Kernel Radial Basis Function In Figura 2 si vede come kernel diversi separino in maniera diversa gli stessi punti nello spazio originario. Il kernel Lineare (Figura 2a) divide in due zone aperte lo spazio, e finirebbe per classificare un dato che si trova vicino all origine come elemento della classe scura ; il kernel RBF (Figura 2b) separa con più precisione le classi, racchiudendo tutti gli elementi, ma rischia di tagliare dei punti se questi, pur vicini, risultano esterni alla superficie individuata. Ricapitolando, una SVM apprende, in base a degli esempi etichettati, a dividere gli elementi tra due classi (tipicamente quella a cui gli elementi appartengono e quella a cui non appartengono); l apprendimento consiste nel proiettare i punti originali in uno spazio in cui sia poi possibile separare i dati tramite una funzione kernel individuando l iperpiano di separazione. Il problema del Clustering 21

23 3.5 K-Means con SVM come centroidi Nell ambito di questa Tesi, ci si è proposti di integrare il tipo di approccio di Clustering tramite K-Means semi-supervisionato descritto precedentemente con la Classificazione supervisionata. La classificazione è un problema molto più semplice, che prevede un addestramento su un Dataset di Training per creare dei modelli per le varie classi, o gruppi, di documenti; una volta che i modelli sono stati fatti, si tratta di stabilire a quale classe appartiene un nuovo documento. Per la classificazione di documenti di testo vengono usati generalmente i classificatori probabilistici Naive Bayes e le Support Vector Machine (SVM), con le quali si ottengono ottimi risultati in vari campi. Le SVM sono in particolare strutture molto potenti e solide, tra i pregi delle quali bisogna ricordare che si tratta di classificatori universali e che richiedono pochi esempi nel training set per creare dei buoni modelli. Se si vogliono classificare dei documenti tra C classi, basterà creare C modelli SVM, uno per classe, facendo per ogni modello un addestramento su un Training Set in cui si forniscono vari esempi di documenti etichettati come appartenenti a quella classe e di documenti etichettati come non appartenenti a quella classe, appartenenti cioè alle altre classi, senza specificare quale. I vari modelli vengono quindi creati indipendentemente, ed una volta effettuato l apprendimento, quando si chiederà a quale classe appartiene un nuovo documento, si sceglierà quella il cui modello, confrontato con il documento, ha dato il maggior grado di appartenenza. Nel Clustering non-supervisionato l addestramento è impossibile, non avendo per definizione informazioni a priori, e la macchina deve costruirsi da sola i vari modelli, nel caso del K-Means i vari centroidi. Passando al Clustering semi-supervisionato, si suppone di avere un informazione iniziale, con la quale si effettua una specie di Il problema del Clustering 22

24 addestramento allo scopo di individuare i centroidi iniziali; questi poi vengono aggiornati ad ogni iterazione del K-Means fino all ottenimento dei Cluster finali. L algoritmo K-Means, come già accennato, ha però come punto debole proprio la struttura dei centroidi, in quanto questi separano i vari Cluster solo in base ad un semplice criterio di distanza, e risultano poco efficaci in problemi di ampie dimensioni con dati non nettamente distinti. Si può allora pensare di potenziare il Clustering sostituendo ai semplici centroidi delle strutture più complesse, in particolare dei modelli di SVM; un documento apparterrà ad un certo Cluster non più se questo ha il centroide ad esso più vicino, ma se ha il modello SVM più adatto a contenere il documento. Basterà confrontare il documento con tutti i modelli e, se più di uno sembra poterlo contenere, scegliere quello che, tra tutti, risponde con un grado di affidabilità maggiore. L algoritmo EM lavora come prima, solo che al posto dei K centroidi del K-Means ci sono K modelli SVM. Il primo passo resta l inizializzazione, che non deve essere casuale, ma supervisionata, per avere dei modelli SVM affidabili fin all inizio; verrà dunque effettuato, sulla base di pochi esempi etichettati, un addestramento iniziale che, visto l alto grado di apprendimento delle SVM, dovrebbe generare dei buoni modelli anche con un training set piccolo. A questo punto, ad ogni iterazione, per prima cosa c è il passo di Expectation, ovvero si etichettano i documenti piazzandoli nel Cluster il cui centroide è il più vicino; ora però i centroidi sono dei modelli SVM, per cui come detto sopra il criterio di vicinanza va ridefinito e, dato un documento, lo si etichetterà scegliendo la classe il cui modello si adatta di più al documento stesso, ovvero la classe il cui modello sembra contenere il documento con il grado di affidabilità più alto (ogni modello risponderà se il documento appartiene o meno alla classe, fornendo anche l affidabilità con cui dà la risposta). Con il Il problema del Clustering 23

25 successivo passo di Maximization devono poi essere aggiornati i centroidi; significa quindi che deve essere effettuato un nuovo addestramento dei modelli SVM, fornendo come Training Set l insieme dei documenti e la loro nuova etichettatura appena trovata. Si iterano questi due passi finché non ci sono più variazioni, ovvero finché, tra una iterazione e la successiva, le etichettature non cambiano; a quel punto significa che è stata trovata la soluzione finale al problema di Clustering. Lo schema dell algoritmo di Clustering semi-supervisionato è illustrato nella Figura 3. Figura 3 Schema dell algoritmo Expectation-Maximization: dopo l inizializzazione casuale, il Clustering viene effettuato iterando i passi E (etichettatura documenti in base ai modelli SVM presenti) e M (addestramento nuovi modelli SVM) Il problema del Clustering 24

26 4 Clustering semi-supervisionato L algoritmo di Clustering semi-supervisionato descritto nel paragrafo 3.5, ovvero una rivisitazione del K-Means con SVM come centroidi, è stato implementato in ambiente Windows, ma poiché è stato scritto usando strutture dello standard C / C++, risulta compilabile anche in ambiente Linux. Il programma generato integra anche i vari moduli che implementano le funzionalità descritte nel capitolo 2, e permette quindi una sperimentazione su tutti gli strumenti usati nell ambito dell intero progetto, come l uso di Synset, Extended Synset, IG e SVD, al fine di valutare quali tra questi siano le strutture più adatte, e con quali parametri, ad essere usate all interno dell algoritmo per ottenere i risultati di Clustering migliori. 4.1 Descrizione dell algoritmo Libreria SVMLight All interno del programma realizzato per questa Tesi, per lavorare con i modelli SVM, anziché creare un simulatore ex-novo, si è preferito incapsulare le funzioni di librerie già esistenti. La scelta era inizialmente caduta sulle LibSVM, i cui sorgenti sono molto commentati e risultavano facilmente incapsulabili nel codice del mio programma; nonostante le prove effettuate su piccoli Dataset avessero mostrato buone prestazioni, sono in seguito stati riscontrati alcuni problemi di funzionamento, e si è preferito pertanto concentrarsi sulle più note e consolidate SVMLight [14]. In particolare, si è reso necessario un attento lavoro di Reverse Engeneering per capire come utilizzare queste librerie all interno del programma; sebbene infatti la versione eseguibile delle SVMLight sia ben documentata e semplice da usare, i relativi sorgenti non sono molto commentati. Avendo deciso di usare le funzioni delle SVMLight Clustering semi-supervisionato 25

27 direttamente all interno del programma, è stato necessario studiare i metodi e le strutture usate da queste librerie. Le funzioni principali che ho sfruttato, oltre a quelle per inizializzare i modelli e per impostare i parametri, sono due: la svm_learn_classification per la generare di un modello SVM, e la classify_example per classificare un documento. La prima è così definita: void svm_learn_classification ( DOC **docs, double *class, long totdoc, long totwords, LEARN_PARM *learn_parm, KERNEL_PARM *kernel_parm, KERNEL_CACHE *kernel_cache, MODEL *model, double *alpha ) Vengono forniti in ingresso i vettori per l addestramento docs (messi sotto forma di una particolare struttura, il DOC, che verrà descritta tra breve) con le rispettive etichette class. Le etichette valgono 1 se il documento appartiene alla classe, -1 se invece appartiene ad altre classi; le class sono dei double perché esiste anche la possibilità di indicare il grado di appartenenza, ad esempio 0.9 se siamo quasi certi che appartenga alla classe, oppure 0.7 se siamo abbastanza sicuri che non vi appartenga. Il numero degli esempi su cui fare l addestramento del modello è totdoc; totwords è invece la dimensione delle feature, in pratica l indice più alto delle feature stesse. I learn_parm sono i parametri per l apprendimento, i kernel_parm quelli relativi al kernel del modello mentre kernel_cache è la cache usata per la creazione dei modelli; tutti questi parametri possono essere impostati oppure assumere i valori di default. I modelli generati vengono memorizzati nella variabile model. Infine alpha contiene i valori iniziali della variabile α, che nel mio caso non sono stati usati. Clustering semi-supervisionato 26

28 Sia i parametri che la cache che i modelli vengono memorizzati sotto forma di strutture definite all interno delle stesse librerie SVMLight, ed è stato pertanto necessario convertire le variabili dal formato usato nel programma a quello richiesto dalle SVMLight; lo stesso vale anche le etichette, convertite a double*, e soprattutto per le feature, convertite al formato dei DOC. Questa è una struttura nella quale, oltre ad essere memorizzate alcune informazioni secondarie come il numero del documento, sono presenti le feature vere e proprie, all interno della variabile fvec di tipo SVECTOR, a sua volta una struttura che contiene alcuni parametri usati per i modelli e la variabile words, un vettore di WORD, che contiene i dati usati per il training. La struttura WORD contiene un elemento wnum, cioè l indice della feature, ed uno weight, cioè il valore della feature. Dunque per convertire i dati disponibili in docs è bastato creare per ogni documento, ovvero per ogni elemento del vettore docs, la variabile fvec contenente il vettore words contenente a sua volta tutte le feature relative a quel documento che fossero non nulle (words per velocizzare i calcoli deve contenere infatti solo valori diversi da zero). La seconda funzione usata è invece così definita: double classify_example ( MODEL *model, DOC *ex ) Questa funzione si occupa, dato un modello SVM già addestrato ed un documento (sotto forma di struttura DOC contenente le varie feature come sopra descritto), di dire se il documento appartiene o meno alla classe rappresentata dal modello, restituendo valori positivi nel primo caso e negativi nel secondo. Come detto prima, ci viene fornito anche un certo grado di sicurezza; così ad esempio se il risultato è 0.5 significa che il documento sembra appartenere al modello, ma c è un discreto margine di dubbio, mentre se si ottiene 0.8 significa che il modello sembra non contenere il documento, ma non si è in grado di dirlo con certezza. Si Clustering semi-supervisionato 27

29 capisce che quando la risposta della funzione tende in valore assoluto a 1, siamo in grado con buona probabilità di stabilire correttamente se il modello contiene o meno il documento, mentre per valori tendenti a 0, si ha un indecisione molto elevata. I parametri di apprendimento dei modelli su cui si è agito sono: type permette di scegliere tra Classificazione (1) e Regressione (2); nel nostro caso si fa sempre Classificazione, ovvero il modello fornisce una etichetta secca in base alla classe predetta, e non un valore all interno di un certo range maxiter indica il numero massimo di iterazioni dopo le quali l ottimizzatore smette di operare; viene lasciato a epsilon_crit indica l errore massimo tollerato, cioè ci si ferma solo se si ottiene un errore più piccolo di questo; viene fatto variare tra e 0.01 (che sembra il valore più adatto) I parametri del kernel più importanti sono invece: kernel_type permette di scegliere il tipo del kernel tra Lineare (0), Polinomiale (1), Radial Basis Function (2), Sigmoidale (3); sono stati fatti esperimenti con kernel Lineari, Polinomiali e RBF poly_degree indica il grado del polinomo, se si usa il tipo polinomiale; in genere va bene 3 rbf_gamma indica il valore del γ se si usa il tipo di kernel RBF; buoni risultati si ottengono con 1 ma sono stati provati diversi valori Matrice Dati (Bag-of-Synset) Per effettuare il Clustering di un insieme di documenti, per prima cosa è necessario caricare un dizionario ed il Dataset dei documenti, al fine di ottenere una matrice WORDS X DOCUMENTS (come già descritto nel Clustering semi-supervisionato 28

30 capitolo 2). Tale matrice contiene il nostro Bag-of-Word, ovvero l insieme di parole da usare come feature per il Clustering, e memorizza per ogni documento i vocaboli significativi, ovvero quelli appartenenti al dizionario, che tale documento contiene. Come già detto, viene fatta una prima scrematura sulle parole al fine di eliminare quelle poco significative; in particolare è stato deciso di usare, tra le parole del dizionario, soltanto i sostantivi, ritenendo non solo avverbi e aggettivi, ma anche verbi, poco utili, anzi semmai deleteri, per essere usati come feature per il Clustering. In effetti, escludendo i verbi usati in tutti i domini (ad esempio per l italiano essere, avere, andare, etc.) sono davvero pochi i verbi che possono essere considerati caratteristici di un solo dominio, e quando le categorie dei documenti risultano essere molto simili tra loro, gli stessi verbi vengono usati indifferentemente nei vari documenti, anche di classi diverse. Una breve sperimentazione ha messo in evidenza che le prestazioni considerando anche i verbi risultavano peggiori o uguali a quelle usando solo i sostantivi. A questo punto, sarebbe già possibile effettuare il Clustering, con tecniche standard come il classico K-Means oppure con algoritmi più complessi come l EM semi-supervisionato descritto nel paragrafo precedente. In ogni caso, si riscontrano le problematiche sulla qualità e sulla dimensionalità delle feature, già descritte nel capitolo 2. Si rende dunque necessario affrontare il problema di come integrare l algoritmo semi-supervisionato con le tecniche di estrazione delle feature e di riduzione dello spazio; ovvero, bisogna capire quale rappresentazione dei documenti conviene usare nei passi dell algoritmo di Clustering. Per prima cosa, è stato abbandonato il Bag-of-Word, tipicamente usato nel Clustering di documenti di testo, a favore dei più significativi Bag-of-Synset (di seguito indicato come BOS) e Extendet Bag-of-Word (di seguito EBOS), passando dalla matrice WORDS X DOCUMENTS alla Clustering semi-supervisionato 29

31 corrispondente SYNSETS X DOCUMENTS (dove i Synset possono essere nella versione Standard oppure Extended descritte in precedenza); tale trasformazione viene effettuata all inizio della procedura di Clustering, al momento del caricamento del Dataset, facendo scegliere se usare Synsets o Extended Synsets, sui quali sono stati fatti diversi esperimenti proprio per stabilire eventuali vantaggi dell una o dell altra rappresentazione. La matrice dei dati (così come la maggior parte delle variabili usate nel programma) è stata rappresentata usando la tipica struttura vector del C++; si ha dunque la vector < vector < double > > matricedati, in cui il vettore esterno contiene tanti elementi quanti sono i Synset considerati, ovvero il numero delle righe della matrice, mentre il vettore interno, con dimensione pari al numero di colonne della matrice, ovvero al numero di documenti nel Dataset, contiene, per ogni riga della matrice, i valori che il relativo Synset assume nei vari documenti. Un singolo elemento della matrice è un double in quanto, passando da Parole a Synsets o Extended Synsets, non si lavora più con interi ma con numeri reali. Oltre alla matricedati, che contiene documenti e feature temporanee, e che viene quindi continuamente modificata e ridimensionata durante l esecuzione del Clustering, si mantiene in memoria l intero Dataset caricato, che verrà utilizzato più volte, nel formato vector < vector < double > > matricedocumenti. Per non sprecare durante l esecuzione del programma la memoria RAM, questa matrice non è completa, ma contiene soltanto i valori non nulli che i vari Synset assumono; pertanto serve un appoggio, un vector < vector < long > > matricedocumentinumsyn, che tenga traccia dell indice dei Synset (o Extended Synset) i cui valori sono nella matricedocumenti. Ogni volta che sarà necessario aggiornare la matricedati, selezionando solo alcuni documenti oppure solo alcune feature, basterà ricrearla selezionando solo gli elementi di matricedocumenti che ci interessano. Alla fine del processo di Clustering Clustering semi-supervisionato 30

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

1 Applicazioni Lineari tra Spazi Vettoriali

1 Applicazioni Lineari tra Spazi Vettoriali 1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Algoritmi di clustering

Algoritmi di clustering Algoritmi di clustering Dato un insieme di dati sperimentali, vogliamo dividerli in clusters in modo che: I dati all interno di ciascun cluster siano simili tra loro Ciascun dato appartenga a uno e un

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e Alberi di decisione Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e lanciarlo con i parametri di default.

Dettagli

Corso di. Dott.ssa Donatella Cocca

Corso di. Dott.ssa Donatella Cocca Corso di Statistica medica e applicata Dott.ssa Donatella Cocca 1 a Lezione Cos'è la statistica? Come in tutta la ricerca scientifica sperimentale, anche nelle scienze mediche e biologiche è indispensabile

Dettagli

Documentazione esterna al software matematico sviluppato con MatLab

Documentazione esterna al software matematico sviluppato con MatLab Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno

Dettagli

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a) Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B Eventi indipendenti: un evento non influenza l altro Eventi disgiunti: il verificarsi di un evento esclude l altro Evento prodotto:

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Determinare la grandezza della sottorete

Determinare la grandezza della sottorete Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano

Dettagli

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi. Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:

Dettagli

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Nell ambito di questa attività è in fase di realizzazione un applicativo che metterà a disposizione dei policy makers,

Dettagli

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it FIRESHOP.NET Gestione del taglia e colore www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione iniziale... 5 Gestione delle varianti... 6 Raggruppamento delle varianti... 8 Gestire le varianti

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

VALORE DELLE MERCI SEQUESTRATE

VALORE DELLE MERCI SEQUESTRATE La contraffazione in cifre: NUOVA METODOLOGIA PER LA STIMA DEL VALORE DELLE MERCI SEQUESTRATE Roma, Giugno 2013 Giugno 2013-1 Il valore economico dei sequestri In questo Focus si approfondiscono alcune

Dettagli

OCCUPATI SETTORE DI ATTIVITA' ECONOMICA

OCCUPATI SETTORE DI ATTIVITA' ECONOMICA ESERCIZIO 1 La tabella seguente contiene i dati relativi alla composizione degli occupati in Italia relativamente ai tre macrosettori di attività (agricoltura, industria e altre attività) negli anni 1971

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1) Transitori Analisi nel dominio del tempo Ricordiamo che si definisce transitorio il periodo di tempo che intercorre nel passaggio, di un sistema, da uno stato energetico ad un altro, non è comunque sempre

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO?

LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO? LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO? Versione preliminare: 25 Settembre 2008 Nicola Zanella E-Mail: n.zanella@yahoo.it ABSTRACT In questa ricerca ho

Dettagli

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere

Dettagli

SPC e distribuzione normale con Access

SPC e distribuzione normale con Access SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

Rapporto dal Questionari Insegnanti

Rapporto dal Questionari Insegnanti Rapporto dal Questionari Insegnanti SCUOLA CHIC81400N N. Docenti che hanno compilato il questionario: 60 Anno Scolastico 2014/15 Le Aree Indagate Il Questionario Insegnanti ha l obiettivo di rilevare la

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Pro e contro delle RNA

Pro e contro delle RNA Pro e contro delle RNA Pro: - flessibilità: le RNA sono approssimatori universali; - aggiornabilità sequenziale: la stima dei pesi della rete può essere aggiornata man mano che arriva nuova informazione;

Dettagli

Esercizi su lineare indipendenza e generatori

Esercizi su lineare indipendenza e generatori Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. MAPPE DI KARNAUGH 1. Generalità Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. E ovvio che più semplice è la funzione e più semplice

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero

Dettagli

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che: Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

Quando troncare uno sviluppo in serie di Taylor

Quando troncare uno sviluppo in serie di Taylor Quando troncare uno sviluppo in serie di Taylor Marco Robutti October 13, 2014 Lo sviluppo in serie di Taylor di una funzione è uno strumento matematico davvero molto utile, e viene spesso utilizzato in

Dettagli

Come masterizzare dischi con Nero 11

Come masterizzare dischi con Nero 11 Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento

Dettagli

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME 5 luglio 2006 RIGA COLONNA MATRICOLA Il presente plico pinzato, composto di quattro

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0 LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Amplificatori Audio di Potenza

Amplificatori Audio di Potenza Amplificatori Audio di Potenza Un amplificatore, semplificando al massimo, può essere visto come un oggetto in grado di aumentare il livello di un segnale. Ha quindi, generalmente, due porte: un ingresso

Dettagli

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare

Dettagli

Indice. 1 Il monitoraggio del progetto formativo --------------------------------------------------------------- 3. 2 di 6

Indice. 1 Il monitoraggio del progetto formativo --------------------------------------------------------------- 3. 2 di 6 LEZIONE MONITORARE UN PROGETTO FORMATIVO. UNA TABELLA PROF. NICOLA PAPARELLA Indice 1 Il monitoraggio del progetto formativo --------------------------------------------------------------- 3 2 di 6 1 Il

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 12-Il t-test per campioni appaiati vers. 1.2 (7 novembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1 Le funzioni continue A. Pisani Liceo Classico Dante Alighieri A.S. -3 A. Pisani, appunti di Matematica 1 Nota bene Questi appunti sono da intendere come guida allo studio e come riassunto di quanto illustrato

Dettagli

Applicazioni lineari

Applicazioni lineari Applicazioni lineari Esempi di applicazioni lineari Definizione. Se V e W sono spazi vettoriali, una applicazione lineare è una funzione f: V W tale che, per ogni v, w V e per ogni a, b R si abbia f(av

Dettagli

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE Matematica e statistica: dai dati ai modelli alle scelte www.dima.unige/pls_statistica Responsabili scientifici M.P. Rogantin e E. Sasso (Dipartimento di Matematica Università di Genova) PROBABILITÀ -

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

ANALISI DELLE FREQUENZE: IL TEST CHI 2

ANALISI DELLE FREQUENZE: IL TEST CHI 2 ANALISI DELLE FREQUENZE: IL TEST CHI 2 Quando si hanno scale nominali o ordinali, non è possibile calcolare il t, poiché non abbiamo medie, ma solo frequenze. In questi casi, per verificare se un evento

Dettagli

Indice di rischio globale

Indice di rischio globale Indice di rischio globale Di Pietro Bottani Dottore Commercialista in Prato Introduzione Con tale studio abbiamo cercato di creare un indice generale capace di valutare il rischio economico-finanziario

Dettagli