📄 biblio.c
字号:
/*----------------------------------------------------------------------*//* Version : 1.0 *//* Creation : 12/07/96 *//* Derniere modif.: 28/01/08 *//* Sujet : Mise en oeuvre d'un classifieur *//* Intitule : Affichage des performances *//* Auteur : Yann Guermeur *//*----------------------------------------------------------------------*/#include <stdio.h>#include <math.h>#include "algebre.h"long z, t, disp_size;double **C_matt, denominateur = 0.0, **p, **o, **n, **u, nbrec=0.0;void display_stats(char base[], int nb_ex, int nb_ex_tot, int classes, double **matrice, double cout) /* Affiche les statistiques obtenues en test */ { nbrec = 0.0;for(z=1; z<=classes; z++) nbrec += matrice[z][z]; /*if(nb_ex < nb_ex_tot) printf("\nRecognition rate: %6.3f (>= %6.3f)\n", (nbrec*100.0)/nb_ex, (nbrec*100.0)/nb_ex_tot);else*/ printf("\nRecognition rate: %6.3f\n", (nbrec*100.0)/nb_ex); }void display_full_stats(char base[], int nb_ex, int classes, double **matrice, double cout)/* Affiche les statistiques obtenues en test */{double **nb, **pred;p = matrix(classes, 1);o = matrix(classes, 1);n = matrix(classes, 1);u = matrix(classes, 1);nb = matrix(classes, 1);pred = matrix(classes, 1);C_matt = matrix(classes, 1);disp_size = (long) ceil(log10((double) nb_ex));printf("\nConfusion matrix:\n");display_mat(matrice, classes, classes, disp_size, 0);for(z=1; z<=classes; z++) nb[z][1] = 0.0;for(z=1; z<=classes; z++) for(t=1; t<=classes; t++) pred[t][1] = 0.0;for(z=1; z<=classes; z++) for(t=1; t<=classes; t++) { nb[z][1] += matrice[z][t]; pred[t][1] += matrice[z][t]; }nbrec = 0.0;for(z=1; z<=classes; z++) { p[z][1] = matrice[z][z]; nbrec += p[z][1]; }for(z=1; z<=classes; z++) { u[z][1] = nb[z][1] - p[z][1]; o[z][1] = pred[z][1] - p[z][1]; }for(z=1; z<=classes; z++) n[z][1] = nb_ex - (pred[z][1] + u[z][1]);for(z=1; z<=classes; z++) { denominateur = sqrt(n[z][1]+u[z][1]) * sqrt(n[z][1]+o[z][1]) * sqrt(p[z][1]+u[z][1]) * sqrt(p[z][1]+o[z][1]); if(denominateur != 0.0) C_matt[z][1] = (p[z][1] * n[z][1] - u[z][1] * o[z][1]) / denominateur; else C_matt[z][1] = 0.0; }printf("Matthews coefficients:\n\n");for(z=1; z<=classes; z++) printf("C%d: %6.3f\n", z, C_matt[z][1]);printf("\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -