matlab AUC代码
时间: 2023-08-25 08:06:54 浏览: 83
以下是一个MATLAB代码示例,用于计算AUC(Area Under the Curve)指标:
```matlab
% 真实标签
trueLabels = [1; 1; 0; 0; 1; 0; 1; 0; 0; 1];
% 预测得分(分类器输出的概率或信号强度)
scores = [0.9; 0.8; 0.7; 0.6; 0.5; 0.4; 0.3; 0.2; 0.1; 0.05];
% 计算排序的索引
[~, sortedIdx] = sort(scores, 'descend');
% 对排序后的标签进行重新排序
sortedLabels = trueLabels(sortedIdx);
% 统计正样本数量和负样本数量
nPositive = sum(trueLabels == 1);
nNegative = sum(trueLabels == 0);
% 计算累积正样本比例和累积负样本比例
cumPositive = cumsum(sortedLabels == 1) / nPositive;
cumNegative = cumsum(sortedLabels == 0) / nNegative;
% 计算AUC
auc = trapz(cumNegative, cumPositive);
disp(auc);
```
在这个示例中,我们首先定义了真实标签(trueLabels)和预测得分(scores),分别表示样本的真实类别和分类器的输出结果。然后,我们根据预测得分对标签进行排序,并计算累积正样本比例和累积负样本比例。最后,使用trapz函数计算AUC(曲线下面积)指标。
请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体情况进行适当的修改和调整。
阅读全文