Modelli probabilistici Davide Cittaro e Marco Stefani Master bioinformatica 2003 Introduzione L’obiettivo di presente lavoro è la classificazione di un insieme di proteine, definite da 27 valori numerici, detti attributi. Il significato degli attributi è sconosciuto, quindi nessuna analisi preventiva è stata possibile, come risulta impossibile verificare la qualità dei dati stessi. Un meta-attributo specifica a quale classe appartiene la proteina; ciò permette una classificazione di tipo supervisionato, che offre il vantaggio di poter misurare l’errore commesso dal modello durante la fase di verifica. Gli strumenti software La nostra ricerca cerca di individuare il miglior classificatore per questo specifico insieme di dati, utilizzando due applicazioni, Weka e BN PowerSoft, che permettono di costruire dei classificatori di vario tipo. Weka offre un’ampia collezione di classificatori sia supervisionati che non supervisionati. Il comportamento di ogni classificatore può essere modificato e controllato da un insieme specifico di parametri. Individuati i modelli più interessanti, Weka dà la possibilità di definire un ciclo di esperimenti in cui un numero arbitrario di classificatori può essere provato su un insieme di dati; anche il numero di esperimenti è definito dall’utente. Diventa facile così confrontare i risultati dei vari classificatori sugli stessi dati, e verificare la stabilità del modello durante le reiterazioni. BN PowerSoft utilizza solo dei modelli bayesiani. In questo caso, la scelta obbligata del classificatore è compensata dal miglior controllo sulla creazione e l’addestramento della rete. Gli esperimenti Di seguito riportiamo una breve descrizione del lavoro svolto con i due programmi descritti e i risultati dei relativi esperimenti. Le descrizioni dettagliate dei risultati sono memorizzate in file esterni, i cui riferimenti sono riportati di fianco ai risultati sintetici. WEKA Per trovare i migliori classificatori abbiamo usato Weka Explorer. Abbiamo condotto una serie di test con classificatori che usano metodi di analisi diversi. In tutti i casi, il primo esperimento si è sempre svolto con i parametri di default. Abbiamo verificato le differenze date da un insieme discretizzato rispetto ai dati non modificati. In qualche circostanza abbiamo provato variazioni diverse, come la normalizzazione o la standardizzazione dei dati. La mancanza di miglioramenti ci ha però fatto desistere dall’utilizzarli con maggior frequenza. Anche la discretizzazione, quando non peggiora i risultati, non influisce significativamente sulla capacità di classificazione. Nella fase di validazione abbiamo privilegiato la cross-validation rispetto all’hold out perché la consideriamo più affidabile nella verifica del modello: ogni istanza viene usata, in momenti diversi, sia nell’addestramento che nel test, riducendo la possibilità di classificare male eventuali casi anomali. La valutazione complessiva del classificatore si basa sulla percentuale dei risultati corretti; come risulta dalla Tabella 1, i risultati ottenuti variano sensibilmente, dal 74,59% di ZeroR all’87,48% di IBk. Per semplificare la lettura dei risultati degli esperimenti, mostriamo una tabella riassuntiva con i parametri più significativi. Cliccando sul nome del classificatore, si può accedere alla sezione corrispondente nell’Appendice A, che mostra i dati più significativi. I nomi dei file che contengono tutti i dettagli dell’esperimento sono elencati nella colonna ‘File’. Nome ZeroR NaiveBayes NaiveBayes J48 J48 JRip JRip JRip JRip K* K* SMO Neural Networks NaiveBayesSimple NaiveBayesUpdateable IB1 IBk IB1 IB1 IB1 IB1 K* K* K* IBk Validazione XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold HO 66% HO 75% Xv 10 fold XV 10 fold XV 10 fold HO 75% XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold XV 10 fold HO 66% XV 10 fold HO 66% Opzioni D D D D D D Ds D N S D D A % Corretti 74,59 80,83 80,01 82,95 83,09 84,15 82,49 84,91 84,95 87,43 84,57 83,40 84,83 79,81 80,01 87,31 87,48 82,52 83,83 87,31 83.31 84,43 84,82 87,43 86,67 Tabella 1 – Classificatori analizzati con Weka Legenda Validazione: XV: Cross validation HO: Hold out Opzioni: D: discretizzazione Ds: discretizzazione supervisionata N: normalizzazione S: standardizzazione A: autoblend (un’opzione specifica di K*) File R001/M001 R002/M002 R003/M003 R004/M004 R005/M005 R006/M006 R007/M007 R008/M008 R009/M009 R010/M010 R011/M011 R012/M012 R013/M013 R014/M014 R015/M015 R016/M016 R017/M017 R018/M018 R019/M019 R020/M020 R021/M021 R022/M022 R023/M023 R024/M024 R025/M025 Dalla tabella risulta immediatamente che, globalmente, il miglior classificatore è IBk, e che in generale tutti i classificatori basati sulla distanza (IB1, IBk, K*), hanno una buona prestazione. Per i migliori classificatori riportiamo anche i risultati ripartiti per le singole classi. JRip TP Rate 0.929 0.576 FP Rate 0.424 0.071 Precision 0.883 0.704 Recall F-Measure 0.929 0.905 0.576 0.633 Class P1 P2 TP Rate 0.915 0.756 FP Rate 0.244 0.085 Precision 0.917 0.752 Recall F-Measure 0.915 0.916 0.756 0.754 Class P1 P2 TP Rate 0.934 0.529 FP Rate 0.471 0.066 Precision 0.853 0.731 Recall F-Measure 0.934 0.892 0.529 0.614 Class P1 P2 IBk J48 La capacità di classificare correttamente la classe P1 in generale è più elevata rispetto a P2. IBk è il più bilanciato sulle due classi, ottenendo una buona classificazione per entrambe. Nel caso degli altri due, la capacità di discriminare la classe P2 è scarsa: con una percentuale prossima al 50% di veri positivi, essi hanno una capacità di riconoscere P2 paragonabile al lancio di una moneta. Con i migliori classificatori trovati delle categorie lazy, rules e tree, abbiamo svolto con Weka Experimenter dei cicli di test che confrontano direttamente i risultati tra loro e permettono di valutare la stabilità del modello. Non abbiamo preso in considerazione i classificatori bayesiani, perché hanno risultati inferiori rispetto a quelli usati. I classificatori usati sono IBk, JRip e J48. Abbiamo eseguito tre cicli di esperimenti in cui è stato cambiato il metodo di validazione: • Ciclo 1: cross-validation con 10 fold o File: expRis001/expDef001 • Ciclo 2: hold-out al 66% con selezione casuale ad ogni iterazione o File: expRis002/expDef002 • Ciclo 3: hold-out al 66% conservando la divisione dei due sottoinsiemi o File: expRis003/expDef003 Per ogni ciclo abbiamo eseguito 10 ripetizioni. Sotto sono riportati i risultati espressi come percentuale di classificati correttamente. Ciclo 1 Dataset protein (1) rules.JRip '-F | (2) trees.j48.J4 (3) lazy.IBk '-K --------------------------------------------------------(100) 83.86( 1.64) | 82.46( 1.9 ) 87.49( 1.62) v --------------------------------------------------------(v/ /*) | (0/1/0) (1/0/0) Ciclo 2 Dataset protein (1) rules.JRip '-F | (2) trees.j48.J4 (3) lazy.IBk '-K --------------------------------------------------------(10) 82.71( 1.29) | 81.45( 0.67) 86.94( 0.63) v --------------------------------------------------------- (v/ /*) | (0/1/0) (1/0/0) Ciclo 3 Dataset (1) rules.JRip '-F | (2) trees.j48.J4 (3) lazy.IBk '-K --------------------------------------------------------(1) 81.46(Inf ) | 81.29(Inf ) 87 (Inf ) --------------------------------------------------------(v/ /*) | (0/1/0) (0/1/0) protein Tra parentesi viene riportata la deviazione standard. I metodi di validazione non influiscono significativamente sulla capacità di classificazione, e IBk si conferma globalmente come il migliore classificatore e il più stabile: sia in termini assoluti che relativi la sua deviazione standard è minore rispetto agli altri. In Tabella 2 riportiamo la sensitività e la specificità per i classificatori usati durante i cicli di esperimenti: essi sono due indicatori importanti per valutare l’effettiva capacità del modello di discriminare le proteine. Le formule usate per calcolare i due parametri sono Sensitività: TP / (TP + FN) Specificità: TP / (TP + FP) Esperimento JRip J48 IBk Ciclo 1 Specificità Sensibilità 0,94 0,86 0,90 0,87 0,92 0,92 Ciclo 2 Specificità Sensibilità 0,94 0,85 0,89 0,86 0,91 0,91 Ciclo 3 Specificità Sensibilità 0,93 0,84 0,87 0,88 0,92 0,91 Tabella 2 – Specificità e sensibilità JRip mostra contemporaneamente la migliore sensitività e la peggiore specificità, cioè tende a generare un numero di falsi positivi superiore agli altri due modelli. IBk è il più equilibrato, e complessivamente il suo è il comportamento migliore, perché riesce a filtrare meglio i falsi positivi e bilanciare così la minor capacità di classificazione corretta. J48 è il classificatore che si comporta complessivamente peggio. Occorre comunque tenere presente che le differenze sono dell’ordine dei centesimi di punto, rendendo le differenze minime. CHENG I dati sono stati subito divisi in due sottoinsiemi per i dati di training e quelli di test, con percentuale di hold-out del 33%. I dati di training sono stati discretizzati con il modulo di pre-processing secondo il metodo supervisionato in base all’entropia della classe, che da test preliminari è risultato il più efficiente. Con il modulo Constructor abbiamo poi costruito la rete delle relazioni causa-effetto tra gli attributi dell’intero insieme di dati, sperimentando i due valori di soglia 1,0 e 5,0. La soglia influisce direttamente sulla quantità di relazioni trovate: una soglia bassa permette di identificare le relazioni più deboli, e viceversa. In Figura 1 e Figura 2 vengono mostrate le reti prodotte. Figura 1 – Relazioni causa-effetto con soglia 1,0 Figura 2 - Relazioni causa-effetto con soglia 5,0 Con il modulo Predictor abbiamo infine costruito una serie di reti bayesiane che variano per alcuni parametri fondamentali dell’architettura. Nella costruzione delle reti abbiamo ridefinito le relazioni causa-effetto utilizzando i risultati del Constructor, ma non avendo notato alcuna variazione, anche dal punto di vista numerico, abbiamo deciso di ignorare questi risultati, e di proseguire gli esperimenti utilizzando solo le relazioni causa-effetto di default. Non abbiamo cambiato gli altri parametri, come l’ordinamento totale o parziale, perché non abbiamo informazioni sufficienti sul significato degli attributi. Per ogni configurazione abbiamo generato una rete singola e una multipla. I risultati sono riassunti in Tabella 3. Anche in questo caso, è possibile cliccare sul nome dell’esperimento per andare alla relativa sezione dell’Appendice B che riporta i risultati riassuntivi del classificatore; agli esperimenti abbiamo anche affiancato il riferimento al file che definisce la rete prodotta. Gli altri file prodotti hanno lo stesso nome e una diversa estensione che li identifica: • • • • • jpg per le immagini delle reti costruite da Predictor o nel caso delle multinet, al nome viene aggiunto ‘p1’ o ‘p2’ per identificare le due classi bnc per i classificatori log per i file di log txt per i file analitici dei risultati dne per le relazioni causa-effetto in forma analitica, mostrate in Figura 1 e Figura 2. In questo caso i file si chiamano ce1.dne e ce5.dne rispettivamente Esperimento 001 002 003 004 005 006 007 008 009 010 011 012 Archittettura S M S M S M S M S M S M Soglia Automatica Automatica 1,0 1,0 0,5 0,5 0,3 0,3 2,0 2,0 5,0 5,0 Risultato 81,70±2,29% 82,62±2,25% 81,52±2,30% 81,43±2,31% 82,34±2,26% 83,07±2,22% 81,70±2,29% 82,98±2,23% 80,60±2,34% 80,42±2,35% 79,96±2,37% 75,02±2,57% File bn001.bnc bn002.bnc bn003.bnc bn004.bnc bn005.bnc bn006.bnc bn007.bnc bn008.bnc bn009.bnc bn010.bnc bn011.bnc bn012.bnc Tabella 3 – Parametri degli esperimenti e risultati Legenda Architettura: S: Rete singola M: rete multipla In Figura 3 vengono mostrate le percentuali di classificazioni corrette rispetto alla soglia usata, per le due tipologie di reti: per entrambe, il comportamento con soglia bassa è migliore, con il massimo intorno a 0,5. Allontanandosi da questo intorno, i risultati degradano vistosamente, e continuando a sinistra si incorre nell’over-fitting, dovuto ad un eccessivo numero di relazioni rispetto al numero di istanze. Aumentando la soglia, il peggioramento è per tutte e due monotono decrescente. Nell’intervallo [1, 2] il comportamento delle reti è sostanzialmente identico, ma oltre quest’intervallo la rete semplice offre la prestazione migliore senza degradare tanto quanto la multi-net. La single-net mostra complessivamente una stabilità superiore. 84 83 82 % classificati corretti 81 80 Single net Multi net 79 78 77 76 75 74 0 1 2 3 4 5 6 soglia Figura 3 – Capacità di classificazione al variare della soglia CONCLUSIONI La migliore delle reti semplici costruite da Cheng, con una percentuale di classificazioni corrette dell’82,34%, ha prestazioni leggermente superiori rispetto alle reti bayesiane di Weka, che raggiungono al massimo una percentuale dell’80,82%. Rispetto alle altre tipologie di classificatori, però, si può notare come in nessun caso le reti bayesiane ottengano risultati superiori; a maggior ragione, esse non sono in grado di ottenere percentuali di classificazione paragonabili al migliore classificatore generato da Weka, IBk, che classifica correttamente l’87,48% delle proteine. Appendice A: Risultati Weka ZeroR discretizzato Definisce l’estremo inferiore del risultato della classificazione: classificando gli elementi nella classe più numerosa, predice la media per le classi numeriche o la moda per le classi nominali === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2616 891 0 0.3791 0.4353 100.0021 % 100 % 3507 74.5937 % 25.4063 % === Detailed Accuracy By Class === TP Rate 1 0 FP Rate 1 0 Precision 0.746 0 Recall 1 0 F-Measure 0.854 0 Class P1 P2 === Confusion Matrix === a 2616 891 b <-- classified as 0 | a = P1 0 | b = P2 NaiveBayes discretizzato Classificatore probabilistico che si basa sugli stimatori di classe. === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2835 672 0.4554 0.2194 0.3883 57.8644 % 89.1918 % 3507 80.8383 % 19.1617 % === Detailed Accuracy By Class === TP Rate 0.909 0.514 FP Rate 0.486 0.091 Precision 0.846 0.657 === Confusion Matrix === a b <-- classified as Recall 0.909 0.514 F-Measure 0.876 0.577 Class P1 P2 2377 433 239 | 458 | a = P1 b = P2 NaiveBayes === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2806 701 0.4432 0.2225 0.4011 58.6972 % 92.1404 % 3507 80.0114 % 19.9886 % === Detailed Accuracy By Class === TP Rate 0.893 0.526 FP Rate 0.474 0.107 Precision 0.847 0.627 Recall 0.893 0.526 F-Measure 0.87 0.572 Class P1 P2 === Confusion Matrix === a 2337 422 b <-- classified as 279 | a = P1 469 | b = P2 J48 === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2909 598 0.5278 0.1888 0.3888 49.8077 % 89.3044 % 3507 82.9484 % 17.0516 % === Detailed Accuracy By Class === TP Rate 0.91 0.593 FP Rate 0.407 0.09 Precision 0.868 0.692 Recall 0.91 0.593 F-Measure 0.888 0.638 Class P1 P2 === Confusion Matrix === a 2381 363 b <-- classified as 235 | a = P1 528 | b = P2 J48 discretizzato === Stratified cross-validation === === Summary === Correctly Classified Instances 2914 83.091 % Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 593 0.509 0.2307 0.3718 60.851 % 85.4014 % 3507 16.909 % === Detailed Accuracy By Class === TP Rate 0.934 0.529 FP Rate 0.471 0.066 Precision 0.853 0.731 Recall 0.934 0.529 F-Measure 0.892 0.614 Class P1 P2 === Confusion Matrix === a 2443 420 b <-- classified as 173 | a = P1 471 | b = P2 JRip === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2951 556 0.5353 0.2386 0.3635 62.9331 % 83.4959 % 3507 84.146 15.854 % % === Detailed Accuracy By Class === TP Rate 0.945 0.536 FP Rate 0.464 0.055 Precision 0.857 0.77 Recall 0.945 0.536 F-Measure 0.899 0.632 Class P1 P2 === Confusion Matrix === a 2473 413 b <-- classified as 143 | a = P1 478 | b = P2 JRip discretizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances === Detailed Accuracy By Class === 2893 614 0.4955 0.2565 0.3742 67.6533 % 85.947 % 3507 82.4922 % 17.5078 % TP Rate 0.926 0.527 FP Rate 0.473 0.074 Precision 0.852 0.709 Recall 0.926 0.527 F-Measure 0.888 0.605 Class P1 P2 === Confusion Matrix === a 2423 421 b <-- classified as 193 | a = P1 470 | b = P2 JRip 66% === Evaluation on test split === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 1013 180 0.5698 0.2293 0.3507 60.8878 % 81.6947 % 1193 84.912 15.088 % % === Detailed Accuracy By Class === TP Rate 0.922 0.621 FP Rate 0.379 0.078 Precision 0.883 0.72 Recall 0.922 0.621 F-Measure 0.902 0.667 Class P1 P2 === Confusion Matrix === a b <-- classified as 833 70 | a = P1 110 180 | b = P2 JRip 75% === Evaluation on test split === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 745 132 0.5398 0.2256 0.3512 60.9029 % 83.6537 % 877 84.9487 % 15.0513 % === Detailed Accuracy By Class === TP Rate 0.929 0.576 FP Rate 0.424 0.071 Precision 0.883 0.704 === Confusion Matrix === a 631 b <-- classified as 48 | a = P1 Recall 0.929 0.576 F-Measure 0.905 0.633 Class P1 P2 84 114 | b = P2 K* Classificatore basato sulle istanze: istanze simili appartengono a classi simili === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 3066 441 0.6681 0.1282 0.3365 33.8237 % 77.2994 % 3507 87.4251 % 12.5749 % === Detailed Accuracy By Class === TP Rate 0.916 0.752 FP Rate 0.248 0.084 Precision 0.916 0.753 Recall 0.916 0.752 F-Measure 0.916 0.752 Class P1 P2 === Confusion Matrix === a 2396 221 b <-- classified as 220 | a = P1 670 | b = P2 K* discretizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2966 541 0.5495 0.1946 0.3363 51.341 % 77.2488 % 3507 84.5737 % 15.4263 % === Detailed Accuracy By Class === TP Rate 0.946 0.55 FP Rate 0.45 0.054 Precision 0.861 0.778 === Confusion Matrix === a 2476 401 b <-- classified as 140 | a = P1 490 | b = P2 SMO discretizzato Recall 0.946 0.55 F-Measure 0.902 0.644 Class P1 P2 Un algoritmo per l’addestramento dei SVM: trasforma il loro risultato in probabilità applicando una funzione sigmoide normale che non si adatta ai dati. Questa implementazione sostituisce globalmente tutti i valori mancanti e trasforma gli attributi nominali in attributi binari === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2925 582 0.47 0.166 0.4074 43.7758 % 93.5775 % 3507 83.4046 % 16.5954 % === Detailed Accuracy By Class === TP Rate 0.979 0.41 FP Rate 0.59 0.021 Precision 0.83 0.867 Recall 0.979 0.41 F-Measure 0.898 0.556 Class P1 P2 === Confusion Matrix === a 2560 526 b <-- classified as 56 | a = P1 365 | b = P2 Neural Networks 75% === Evaluation on test split === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 744 133 0.579 0.1587 0.3577 42.8362 % 85.1983 % 877 84.8347 % 15.1653 % === Detailed Accuracy By Class === TP Rate 0.89 0.707 FP Rate 0.293 0.11 Precision 0.912 0.651 Recall 0.89 0.707 F-Measure 0.901 0.678 Class P1 P2 === Confusion Matrix === a b <-- classified as 604 75 | a = P1 58 140 | b = P2 Naive Bayes Simple Un classificatore bayesiano semplice in cui gli attributi numerici sono modellati con una distribuzione normale === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2799 708 0.4383 0.2229 0.4017 58.8027 % 92.281 % 3507 79.8118 % 20.1882 % === Detailed Accuracy By Class === TP Rate 0.891 0.524 FP Rate 0.476 0.109 Precision 0.846 0.622 Recall 0.891 0.524 F-Measure 0.868 0.569 Class P1 P2 === Confusion Matrix === a 2332 424 b <-- classified as 284 | a = P1 467 | b = P2 NaiveBayes Updateable Variante del precedente. === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2806 701 0.4432 0.2225 0.4011 58.6972 % 92.1404 % 3507 80.0114 % 19.9886 % === Detailed Accuracy By Class === TP Rate 0.893 0.526 FP Rate 0.474 0.107 Precision 0.847 0.627 Recall 0.893 0.526 F-Measure 0.87 0.572 Class P1 P2 === Confusion Matrix === a 2337 422 b <-- classified as 279 | a = P1 469 | b = P2 IB1 Usa una semplice misura della distanza: per ogni istanza dell’insieme di test, cerca la minore distanza tra le istanze del training set, e la assegna a quella classe. === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 3062 445 0.6668 0.1269 0.3562 33.4712 % 81.8258 % 3507 87.3111 % 12.6889 % === Detailed Accuracy By Class === TP Rate 0.912 0.758 FP Rate 0.242 0.088 Precision 0.917 0.747 Recall 0.912 0.758 F-Measure 0.915 0.752 Class P1 P2 === Confusion Matrix === a 2387 216 b <-- classified as 229 | a = P1 675 | b = P2 IBk === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 3068 439 0.6704 0.1266 0.3539 33.3832 % 81.293 % 3507 87.4822 % 12.5178 % === Detailed Accuracy By Class === TP Rate 0.915 0.756 FP Rate 0.244 0.085 Precision 0.917 0.752 Recall 0.915 0.756 F-Measure 0.916 0.754 Class P1 P2 === Confusion Matrix === a 2394 217 b <-- classified as 222 | a = P1 674 | b = P2 IB1 discretizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2894 613 0.5165 0.1748 0.4181 46.1075 % 96.0374 % 3507 82.5207 % 17.4793 % === Detailed Accuracy By Class === TP Rate 0.907 0.586 FP Rate 0.414 0.093 Precision 0.865 0.681 Recall 0.907 0.586 F-Measure 0.886 0.63 Class P1 P2 === Confusion Matrix === a 2372 369 b <-- classified as 244 | a = P1 522 | b = P2 IB1 discretizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2940 567 0.5675 0.1617 0.4021 42.6476 % 92.3638 % 3507 83.8323 % 16.1677 % === Detailed Accuracy By Class === TP Rate 0.899 0.661 FP Rate 0.339 0.101 Precision 0.886 0.69 Recall 0.899 0.661 F-Measure 0.892 0.675 Class P1 P2 === Confusion Matrix === a 2351 302 b <-- classified as 265 | a = P1 589 | b = P2 IB1 normalizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 3062 445 0.6668 0.1269 0.3562 33.4712 % 81.8258 % 3507 87.3111 % 12.6889 % === Detailed Accuracy By Class === TP Rate 0.912 0.758 FP Rate 0.242 0.088 Precision 0.917 0.747 === Confusion Matrix === Recall 0.912 0.758 F-Measure 0.915 0.752 Class P1 P2 a 2387 216 b <-- classified as 229 | a = P1 675 | b = P2 IB1 standardizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 3062 445 0.6668 0.1269 0.3562 33.4712 % 81.8258 % 3507 87.3111 % 12.6889 % === Detailed Accuracy By Class === TP Rate 0.912 0.758 FP Rate 0.242 0.088 Precision 0.917 0.747 Recall 0.912 0.758 F-Measure 0.915 0.752 Class P1 P2 === Confusion Matrix === a 2387 216 b <-- classified as 229 | a = P1 675 | b = P2 K* discretizzato === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 2961 546 0.5774 0.1664 0.3488 43.8916 % 80.1147 % 3507 84.4311 % 15.5689 % === Detailed Accuracy By Class === TP Rate 0.91 0.651 FP Rate 0.349 0.09 Precision 0.884 0.712 === Confusion Matrix === a 2381 311 b <-- classified as 235 | a = P1 580 | b = P2 K* discretizzato 66% === Evaluation on test split === === Summary === Recall 0.91 0.651 F-Measure 0.897 0.68 Class P1 P2 Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 1012 181 0.5853 0.168 0.3496 44.596 % 81.4427 % 1193 84.8282 % 15.1718 % === Detailed Accuracy By Class === TP Rate 0.903 0.679 FP Rate 0.321 0.097 Precision 0.898 0.691 Recall 0.903 0.679 F-Measure 0.9 0.685 Class P1 P2 === Confusion Matrix === a b <-- classified as 815 88 | a = P1 93 197 | b = P2 K* autoblend === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 3066 441 0.6681 0.1282 0.3365 33.8237 % 77.2994 % 3507 87.4251 % 12.5749 % === Detailed Accuracy By Class === TP Rate 0.916 0.752 FP Rate 0.248 0.084 Precision 0.916 0.753 Recall 0.916 0.752 F-Measure 0.916 0.752 Class P1 P2 === Confusion Matrix === a 2396 221 b <-- classified as 220 | a = P1 670 | b = P2 IBk 66% === Evaluation on test split === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances 1034 159 0.6441 0.1344 0.3626 35.6918 % 84.4712 % 1193 86.6723 % 13.3277 % === Detailed Accuracy By Class === TP Rate 0.904 0.752 FP Rate 0.248 0.096 Precision 0.919 0.715 === Confusion Matrix === a b <-- classified as 816 87 | a = P1 72 218 | b = P2 Appendice B: Risultati Cheng Esperimento 001 Esperimento 002 Recall 0.904 0.752 F-Measure 0.911 0.733 Class P1 P2 Esperimento 003 Esperimento 004 Esperimento 005 Esperimento 006 Esperimento 007 Esperimento 008 Esperimento 009 Esperimento 010 Esperimento 011 Esperimento 012