Программирование на C: Нахождение матрицы путаницы с учетом вектора истинности и прогноза - PullRequest
0 голосов
/ 14 апреля 2019

Предположим, что мы дали два вектора меток, одна из которых является правдой, а другая - предсказанной. Мой вопрос заключается в том, как мы можем написать правильную матрицу путаницы для нее на C. Это функция, которая предполагает найти матрицу путаницы в большем C-коде. Я ценю некоторую помощь по этому поводу.

double ConfusionMatrix(int truth[], int prediction[]){  
/* The truth vector of labels, the predicted vector of labels, and the unique length of labels which should be given. */

    int i, j, c;
    int labels;  /* The length of unique labels */

    conf_mat = (float**)calloc(truth, sizeof(float*));  /* Allocating Memory to the Confusion Matrix. */

    for (i = 0; i < truth; i++)
        conf_mat[i] = (float*)calloc(truth, sizeof(float));

    for (i = 0; i < truth; i++)
        for (c = 0; c < truth; c++)
            conf_mat[c][i] = 0.0;
    for (j = 0; j < truth; j++){
        c = labels[j];
        for (i = 0; i < prediction; i++)
            conf_mat[c][i] += prediction[i][j];
    }


    /* As Confusion Matrix is sparse, then print only the entries above the threshold. */
    printf("Print the Confusion Matrix \n Print only the entries above 0.1\n");
    for (c = 0; c < truth; c++){
        printf("\n\nClass %d documents were classified in these classes\n", c);
        for (i = 0; i < truth; i++)
            if (conf_mat[c][i] >= 0.1)
                printf("class %d:%5.1f times  ", i, conf_mat[c][i]);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...