为分类器绘制ROC曲线

时间:2018-07-11 17:23:28

标签: matlab classification matlab-figure roc

我正在尝试在matlab中为我的分类器绘制ROC曲线。 我有一个8,000 X 50二进制值(0,1)的预测矩阵和8,000 X 50二进制值的测试矩阵。 (针对50个目标或类别的8000次事件,每个类别有8000种不同的情况。) 即时通讯使用命令:

Console.WriteLine("Please input a number for the formula: i.e. (1,5,9,13...)");
int n = Convert.ToInt32(Console.ReadLine());
double total = 0;
for (int i = n; i >=1; i=i-4)
{
    if (i == 1)
        total++;
    else
        total += Math.Sqrt(n);
}

Console.Write(total);

我当然希望从0到1得到50条具有8,000点的曲线,但是我得到的只有50条只有3点的曲线。

这是10种情况的示例: enter image description here

我不知道是否用于命令使用方式错误,或者是否还有另一种获取ROC曲线的方式?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

使用# with Regular Expression import re fruit_list = open('test.txt') search_words = ['apple', 'banana', 'orange', 'lemon'] patten = re.compile("(.*(apple|banana|orange|lemon)(.*))") for i in [re.search(patten,line).groups() for line in fruit_list if re.search(patten,line) != None]: print(i)

perfcurve

标签是数据的真实标签,分数是分类器的输出分数(在阈值之前),而posclass是标签中的正类。

X默认为假阳性率,Y为真阳性率。您也可以更改它们。