Classificatore K-NN 1
|
|
|
- Camilla Marini
- 6 anni fa
- Просмотров:
Транскрипт
1 Classificatore K-NN 1
2 Esercizio: Implementare il classificatore K-NN: [labelassegnate_test error_test] = mio_knn( ds_train, ds_test, k) Traccia: La funzione DIST(A,B') del toolbox reti neurali calcola la distanza euclidea fra ciascuna riga di A e ciascuna riga di B Analogamente la funzione prtools DISTM calcola la distanza euclidea (al quadrato) fra ciascuna riga di A e ciascuna riga di B La funzione sort permette di ordinare una matrice e di ricavare gli indici di ordinamento 2
3 function [labelassegnate_test error_test] =... mio_knn( ds_train, ds_test, k) nclassi= length(ds_train.lablist); npatterns_trn= ds_train.objsize; npatterns_tst= ds_test.objsize; %train_features = ds_train.data %train_labels = ds_train.nlab %calcolo distanze %distanze_eucl(its,itr) = distanza fra il pattern 'its' di test e quello 'itr' di train distanze_eucl = dist (ds_test.data, ds_train.data'); %Ordino le distanze per righe e memorizzo gli indici di ordinamento [distanze_sort idx_sort]=sort(distanze_eucl,2); %NB: % La riga 'idx_sort(its,:)' contiene l'indice dei vicini del pattern 'its' %prendo gli indici dei k più vicini 3
4 idx_primivicini=idx_sort(:,1:k); % Estraggo le labels dei k pattern piu' vicini % labels_primivicini = ds_train.nlab(idx_primivicini); labelassegnate_test = zeros(npatterns_tst,1); for its=1:npatterns_tst, %classifico il pattern di test i-esimo %conto il numero di occorrenze di ciascuna label for c=1:nclassi, occorrenze(c) = sum(labels_primivicini(its) == c); end %prendo il massimo [tmp, classe_max] = max(occorrenze+rand(1,nclassi)); labelassegnate_test(its) = classe_max; end error_test =mean(labelassegnate_test ~= ds_test.nlab) 4
5 %il ciclo for interno equivale a % occorrenze = sum([ones(nclassi,1)*labels_primivicini(its)' ==... arrayindiciclassi],2);% %dove % arrayindiciclassi=[1:nclassi]'*ones(1,k); 5
6 Il K-NN nei PR-Tools help knnc KNNC K-Nearest Neighbor Classifier [W,K,E] = KNNC(A,K) [W,K,E] = KNNC(A) INPUT A Dataset K Number of the nearest neighbors (optional; default: K is optimized with respect to the leave-one-out error on A) OUTPUT W k-nn classifier K Number of the nearest neighbors used E The leave-one-out error of the KNNC 6
7 Esempio ds = gendatb(100); W = knnc(ds, 5); 7
8 8
9 Per il classificatore KNN esiste una funzione specifica di stima dell'errore help testk TESTK Error estimation of the K-NN rule E = TESTK(A,K,T) INPUT A Training dataset K Number of nearest neighbors ( T Test dataset (default leave-one-out) OUTPUT E Estimated error of the K-NN rule DESCRIPTION Tests a dataset T on the training dataset A using the K-NN rule and returns the classification error E. In case no set T is provided, the leave-one-out error estimate on A is returned. The advantage of using TESTK over TESTC is that it enables leave-one-out error estimation. 9
10 Stima dei paramatri del K-NN La stima dei parametri del K-NN può essere eseguita mediante l'uso di un validation set (come per gli altri classificatori); oppure mediante il metodo del leave-one-out. Il leave-one-out può essere visto come una sorta di numpattern-crossvalidation, in cui ciascun pattern del training set viene classificato utilizzando tutti gli altri pattern dello stesso data set. Nota: Il leave-one-out (per la stima di k) è implementato nella funzione KNNC dei PRTools 10
11 Esercizio: Stima del valore ottimale di K tramite validation set Scelto un dataset, dividetelo in un set di design e un set di test. Dal set di design estraete un training set ed un validation set. Costruite un set di classificatori k-nn con vari valori di k. Valutate l'errore sul train, test, validation. - quale sarebbe stato l'errore sul test se avessimo scelto il k migliore basandoci sui risultati di errore sul training set? - quale sarebbe stato l'errore sul test se avessimo scelto il k migliore basandoci sui risultati sul VALIDATION set? - tabellate i dati e fate un grafico dell errore al variare di k - Visualizzare la superficie di decisione ottenuta con il valore di K ottimale e col K peggiore %Calcolo andamento delle prestazioni del classificatore KNN al variare del parametro K (TRACCIA) k_max = 20 ds_full = gendatb(200); [ds_trn_full, ds_tst] = gendat(ds_full,0.5); 11
12 [ds_trn, ds_val]= gendat(ds_trn_full,0.60); for k=1:k_max, train_err(k) = testk(ds_trn, k); val_err(k) = testk(ds_trn, k, ds_val); tst_err(k) = testk(ds_trn, k, ds_tst); end %Calcolo valore ottimale di K [tmp k_best] = min(val_err) %Visulizzo andamento errore figure(1); plot(val_err, 'k'); hold on; plot(tst_err, 'r'); plot(train_err, 'b'); legend('validation', 'test', train ) hold off; 12
13 %Creo il classificatore e visualizzo la sup. di decisione W = knnc(ds_trn, k_best); figure(2); scatterd(ds_tst); hold on; plotc(w); hold off; figure(3); scatterd(ds_trn); hold on; plotc(w); hold off; 13
14 Esercizio: Classificate un dataset (spazio delle features a 2 dimensioni) utilizzando un classificatore k-nn ed un classificatore lineare. Calcolate l errore e visualizzate le superfici di decisione TRACCIA o Scegliere il dataset o Dividere dataset in train e test o Visualizzare o Creare classificatore Lineare e KNN (quali parametri?) o Classificare training e test ( label e prob a posteriori) o Calcolo errore o Visualizzazione superficie decisione di entrambi i classificatori, sovrapponendola al training e al test set 14
15 Esempio di svolgimento A=gendatl([500,200],1.5); [ds_train, ds_test]=gendat(a,0.2); figure(1) scatterd(ds_train) title('training SET') figure(2) scatterd(ds_test) title('test SET') wlin=ldc(ds_train,0.2); [wknn,k, errtrain_knn]=knnc(ds_train); %errore train classificatore lineare errtrain_lin=testc(ds_train*wlin) %classifico il test ris_lin= ds_test*wlin; probpost_lin=+classc(ris_lin) labelassegnate_lin= labeld(ris_lin) 15
16 ris_knn= ds_test*wknn; probpost_knn=+classc(ris_knn) labelassegnate_knn= labeld(ris_knn) %calcolo errore sul test errtest_lin=testc(ris_lin) % errtest_knn= testc(ris_knn); errtest_knn=testk(ds_train,k,ds_test) errore=[errtrain_lin,errtest_lin ;... errtrain_knn, errtest_knn]*100; % visualizzo superficie decisione figure(1) hold on plotc(wlin); plotc(wknn); figure(2) hold on plotc(wlin); plotc(wknn); 16
Corso di Riconoscimento di Forme. Sommario: Matrice di confusione Cross validation Prestazioni nel KNN
Corso di Riconoscimento di Forme Sommario: Matrice di confusione Cross validation Prestazioni nel KNN Matrice di confusione Il semplice calcolo dell'errore di classificazione non permette di capire il
Laboratorio di Apprendimento Automatico. Fabio Aiolli Università di Padova
Laboratorio di Apprendimento Automatico Fabio Aiolli Università di Padova Underfitting e Overfitting Complessità spazio ipotesi SVM: aumenta con kernel non lineari, RBF con maggiore pendenza, aumenta con
Sistemi per la gestione delle basi di dati
Sistemi per la gestione delle basi di dati Esercitazione #5 Data mining Obiettivo Applicare algoritmi di data mining per la classificazione al fine di analizzare dati reali mediante l utilizzo dell applicazione
6. Partial Least Squares (PLS)
& C. Di Natale: (PLS) Partial Least Squares PLS toolbox di MATLAB 1 Da PCR a PLS approccio geometrico Nella PCR la soluzione del problema della regressione passa attraverso la decomposizione della matrice
MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)
MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è
Classificazione Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007
Classificazione Introduzione I modelli di classificazione si collocano tra i metodi di apprendimento supervisionato e si rivolgono alla predizione di un attributo target categorico. A partire da un insieme
Naïve Bayesian Classification
Naïve Bayesian Classification Di Alessandro rezzani Sommario Naïve Bayesian Classification (o classificazione Bayesiana)... 1 L algoritmo... 2 Naive Bayes in R... 5 Esempio 1... 5 Esempio 2... 5 L algoritmo
Algoritmi di classificazione supervisionati
Corso di Bioinformatica Algoritmi di classificazione supervisionati Giorgio Valentini DI Università degli Studi di Milano 1 Metodi di apprendimento supervisionato per problemi di biologia computazionale
Business Intelligence per i Big Data
Business Intelligence per i Big Data Esercitazione di laboratorio n. 6 L obiettivo dell esercitazione è il seguente: - Applicare algoritmi di data mining per la classificazione al fine di analizzare dati
Valutazione e Selezione del Modello
Valutazione e Selezione del Modello Fondamenti Matematici della Teoria dell Apprendimento Statistico Laura Lo Gerfo Dipartimento di Informatica e Scienze dell Informazione 18 maggio 2007 Laura Lo Gerfo
Stima della qualità dei classificatori per l analisi dei dati biomolecolari
Stima della qualità dei classificatori per l analisi dei dati biomolecolari Giorgio Valentini e-mail: [email protected] Rischio atteso e rischio empirico L` apprendimento di una funzione non nota
Validazione dei modelli Strumenti quantitativi per la gestione
Validazione dei modelli Strumenti quantitativi per la gestione Emanuele Taufer Validazione dei modelli Il data set Auto I dati Il problema analizzato Validation set approach Diagramma a dispersione Test
Riconoscimento immagini con Keras e Tensorflow Gabriele Baldi
Riconoscimento immagini con Keras e Tensorflow Gabriele Baldi https://github.com/bnznamco/keras_model_and_slides_notabugconf Riconoscimento immagini Attività tipica del cervello umano Task molto difficile
Analisi Discriminante Strumenti quantitativi per la gestione
Analisi Discriminante Strumenti quantitativi per la gestione Emanuele Taufer Un esempio introduttivo Approccio con Bayes Perchè un altro metodo di classificazione? Classificazione con Bayes Analisi discriminante
Backpropagation in MATLAB
Modello di neurone BACKPROPAGATION Backpropagation in MATLAB Prof. Beatrice Lazzerini Dipartimento di Ingegneria dell Informazione Via Diotisalvi 2, 56122 Pisa La funzione di trasferimento, che deve essere
Programmare con MATLAB c Parte 5 Cicli: for e while
Programmare con MATLAB c Parte 5 Cicli: for e while Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 La notazione due punti 2 Ciclo: for 3 Ciclo con controllo: while
Riconoscimento automatico di oggetti (Pattern Recognition)
Riconoscimento automatico di oggetti (Pattern Recognition) Scopo: definire un sistema per riconoscere automaticamente un oggetto data la descrizione di un oggetto che può appartenere ad una tra N classi
5.1 Strutture, predittori e identificazione con le rappresentazioni di stato in Matlab
5.1 Strutture, predittori e identificazione con le rappresentazioni di stato in Matlab 1. Usare una rappresentazione di stato che corrisponda alla struttura definita nella serie 4. Definire poi il modello
Multi classificatori. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna
Multi classificatori Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Combinazione di classificatori Idea: costruire più classificatori di base e predire la classe di appartenza di
Valutazione delle Prestazioni di un Classificatore. Performance Evaluation
Valutazione delle Prestazioni di un Classificatore Performance Evaluation Valutazione delle Prestazioni Una volta appreso un classificatore è di fondamentale importanza valutarne le prestazioni La valutazione
Lab. di Sistemi Operativi - Esercitazione - Comandi Shell
Lab. di Sistemi Operativi - Esercitazione - Comandi Shell 1 - Esercizi Comandi Unix - 2 Esercizio n 0 0a) creare una cartella EsercitazioneLSO-1 nella directory di lavoro 0b) creare un file testo chiamato
1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso
Domanda 1 1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso x n+1 = x n f(x n), n = 0, 1, 2,... K dove x 0 è il punto iniziale, f(x) = x 3 cos(x) e K è una costante assegnata.
FemCode: libreria Matlab per FEM
FemCode: libreria Matlab per FEM F. Zama Caratteristiche generali Codici matlab per gli esempi trattati in: Understanding and Implementing the Finite Element Method by Mark S. Gockenbach (SIAM, 2006) Nel
RETI NEURALI MATLAB & OCTAVE. Benzi Francesco
RETI NEURALI MATLAB & OCTAVE Benzi Francesco Neural Network Toolbox di Matlab Funzionalità offerte: - Approssimazione di funzioni (non lineari) - Pattern Recognition & Classificazione - Clustering - Serie
Laboratorio di Python
Algoritmo, sulle liste Università di Bologna 3 e 5 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione Correzione esercizi scrivere e documentare un programma con un menu dove:
Esempi di applicazioni di reti neurali
Esempi di applicazioni di reti neurali Ogni problema di rete neurale segue la stessa procedura di base: (1) caricare il set di dati, (2) inizializzare la rete, (3) addestrare la rete (training), e (4)
Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003
Appello di febbraio 2003 Progetto: Dama Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale 1 - Descrizione Il progetto consiste nell implementare un rudimentale programma di
Esempio di prova di laboratorio
Esempio di prova di laboratorio Messa a punto di un modello mediante: Utilizzo dell interprete Matlab Utilizzo del toolbox Fuzzy Logic Utilizzo del toolbox Neuro Network Creazione di funzioni Analisi critica
UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A
Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono
Classificazione. Classificatore di Bayes Approccio parametrico (distribuzione Multinormale) Approccio non parametrico (Parzen Window)
Classificatore di Bayes Approccio parametrico (distribuzione Multinormale) Approccio non parametrico (Parzen Window) Nearest Neighbor k-nn Metriche SVM Lineari: pattern linearmente separabili e non Non
- comando sort: con chiavi di ordinamento -
- comando sort: con chiavi di ordinamento - 1 - sort: chiavi di ordinamento - Tramite l'opzione -k è possibile definire una chiave di ordinamento su una porzione della linea contenuta nel file Specificando
Introduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
Analisi discriminante in R. Strumenti quantitativi per la gestione
Analisi discriminante in R Strumenti quantitativi per la gestione Emanuele Taufer file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l4-lda.html#(1) 1/25 Default data Carichiamo il
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
