⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roc.c

📁 C-package of "Long Short-Term Memory" for Protein classification
💻 C
字号:
/* * $Id: roc.c 1269 2007-05-09 07:49:08Z mhe $ */#include <stdio.h>#include <stdlib.h>#include "lstm.h"#include "roc.h"/* compares two seqperfs */int seqperfcmp(const void *sp0, const void *sp1) {        if ((*(struct seqperf*)sp0).out == ((*(struct seqperf*)sp1)).out) {        return 0;    }    else if ((*(struct seqperf*)sp0).out > (*(struct seqperf*)sp1).out) {        return -1;    }    else return 1;    }static double *xarrtest, *yarrtest, *xarrtrain, *yarrtrain;void allocarrs(int train_size, int test_size) {        xarrtest = (double*)malloc(sizeof(double) * test_size);    yarrtest = (double*)malloc(sizeof(double) * test_size);    xarrtrain = (double*)malloc(sizeof(double) * train_size);    yarrtrain = (double*)malloc(sizeof(double) * train_size);    }double roctest(int num_prot) {        int i, fp, tp;    double auc, prevx;        qsort(sptest, num_prot, sizeof(struct seqperf), *seqperfcmp);        tp = 0;    fp = 0;        for (i = 0; i < num_prot; i++) {                if (sptest[i].target == 1.0) {            tp++;        }        else {            fp++;        }        xarrtest[i] = (double) fp / (negativetest * 1.0);        yarrtest[i] = (double) tp / (positivetest * 1.0);        }        auc   = 0;    prevx = 0;    for (i = 0; i < num_prot; i++) {        if (xarrtest[i] != prevx) {            auc += (xarrtest[i] - prevx) * yarrtest[i];            prevx = xarrtest[i];        }    }      return auc;}double roctrain(int num_prot) {        int i, fp, tp;    double auc, prevx;        qsort(sptrain, num_prot, sizeof(struct seqperf), *seqperfcmp);        tp = 0;    fp = 0;        for (i = 0; i < num_prot; i++) {                if (sptrain[i].target == 1.0) {            tp++;        }        else {            fp++;        }        xarrtrain[i] = (double) fp / (negativetrain * 1.0);        yarrtrain[i] = (double) tp / (positivetrain * 1.0);        }        auc   = 0;    prevx = 0;    for (i = 0; i < num_prot; i++) {        if (xarrtrain[i] != prevx) {            auc += (xarrtrain[i] - prevx) * yarrtrain[i];            prevx = xarrtrain[i];        }    }      return auc;}double rocROCNtest(int num_prot) {        int i, j, fp, tp;    double auc, prevx;        qsort(sptest, num_prot, sizeof(struct seqperf), *seqperfcmp);        tp = 0;    fp = 0;        for (i = 0; i < num_prot; i++) {                if (sptest[i].target == 1.0) {            tp++;        }        else {            fp++;        }        xarrtest[i] = (double) fp / (double)ROCN;        yarrtest[i] = (double) tp / (positivetest * 1.0);                if (fp == ROCN) {            break;        }        }        auc   = 0;    prevx = 0;    for (j = 0; j <= i; j++) {        if (xarrtest[j] != prevx) {            auc += (xarrtest[j] - prevx) * yarrtest[j];            prevx = xarrtest[j];        }    }      return auc;}double rocROCNtrain(int num_prot) {        int i, j, fp, tp;    double auc, prevx;        qsort(sptrain, num_prot, sizeof(struct seqperf), *seqperfcmp);        tp = 0;    fp = 0;        for (i = 0; i < num_prot; i++) {                if (sptrain[i].target == 1.0) {            tp++;        }        else {            fp++;        }        xarrtrain[i] = (double) fp / (double)ROCN;        yarrtrain[i] = (double) tp / (positivetrain * 1.0);                if (fp == ROCN) {            break;        }        }        auc   = 0;    prevx = 0;    for (j = 0; j <= i; j++) {        if (xarrtrain[j] != prevx) {            auc += (xarrtrain[j] - prevx) * yarrtrain[j];            prevx = xarrtrain[j];        }    }      return auc;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -