我使用的是pROC (在R中)和函数multiclass.roc,如线程中所指出的
但是,当我应用于我的数据时,有一个错误:
谓词必须是数字或有序的。
显然,我的数据标签是无序的,在这种情况下,我如何计算AUC?
P/S:我的思想是,我有一个混淆矩阵作为多类分类器的结果。如何计算R中这个混淆矩阵的AUC?
Update1:
假设我有4类A,B,C,D没有顺序(即,并不意味着A>B或B> A)
正确的值:
A A A B B C D A B C D A B C ...
预测值:
A B A B B B C D ...
如何计算这些数据的AUC?
更新2
生成示例数据的代码:
假设我已经将模型的分类结果格式化如下:
actual.class score.actual.class
A 1
A 1
A 0.6
A 0.1
B 0.5
B 0.3
. .
. .
1-如果我理解得很好,中华民国的曲线画出了正误之间的权衡。这意味着我只需要改变一个类(真正的类)的得分阈值,而不是两者都改变,对吗?我的意思是,如果我选择A作为真正的类,那么我只会用subset(results,actual.class=&
scikit的roc_curve 函数只返回某个数据集的3分。为什么会这样,我们如何控制多少分回来呢?
我试着画一条中华民国的曲线,但始终有一个“中华民国三角”。
lr = LogisticRegression(multi_class = 'multinomial', solver = 'newton-cg')
y = data['target'].values
X = data[['feature']].values
model = lr.fit(X,y)
# get probabilities for clf
probas
" java.text.SimpleDateFormat“不支持中华民国年,所以我写了一个扩展java.text.SimpleDateFormat的类。
我定义'e‘代表中华民国的年份,就像'y’代表年份一样。
TwyDateFormat format = new TwyDateFormat("eee-MM-dd- HH:mm:ss");
System.out.println(new java.util.Date()); // if now is Wed Jul 10 13:53:58 CST 2013
它将在JDK 1.7中显示"102-07-
我正试图找到一种干净的方法来提取文本字符串中的所有urls。
经过广泛的搜索,我发现许多帖子建议使用正则表达式来完成任务,并且给出了应该这样做的正则表达式。每个RegExs都有一些优点和缺点。此外,编辑他们以改变他们的行为是不直接的。无论如何,在这一点上,我对任何能够正确检测到本文中urls的RegEx都感到满意:
输入:
Lorem ipsum dolor与、nusquam tincidunt ex per、ius modus integre no、quando utroque placerat qui no.结论:中华人民共和国,中华人民共和国,中华人民共和国。白头翁没有爱,不理解我的美
我用auc(roc(predictions, labels))来计算AUC,其中labels是1 (x15)和0 (x500)的数字向量,predictions是一个具有从glm二项式导出的概率的数字向量。这应该很简单,但是auc(roc(predictions, labels))错误地说“没有足够的不同的预测来计算中华民国曲线下的面积”。我一定是在做傻事,但我不知道是什么。你能?
代码是
library(AUC)
#read the data, that come from a previous process of a species distribution modelling
prob