sklearn中的roc_auc_score(多分类或二分类)
首先,你的数据不管是库自带的如:from sklearn.datasets import load_breast_cancerX = data.dataY = data.target还是自备的如:# 读取csv数据data = pd.read_csv("MyData.csv")# 分离自变量与标签X = data.drop("score", axis=1).valuesY = data["scor
·
一、关于数据格式
首先,你的数据不管是库自带的如:
from sklearn.datasets import load_breast_cancer
X = data.data
Y = data.target
还是自备的如:
# 读取csv数据
data = pd.read_csv("MyData.csv")
# 分离自变量与标签
X = data.drop("score", axis=1).values
Y = data["score"].values
都要注意保证你的数据都是numpy类型的
二、正式计算
1、对于二分类
直接用预测值与标签值计算
Y_pred = clf.predict(X_test)
# 随机森林的AUC值
forest_auc = roc_auc_score(Y_test, Y_pred)
2、对于多分类
与二分类Y_pred不同的是,概率分数Y_pred_prob,是一个shape为(测试集条数, 分类种数)的矩阵。
比如你测试集有200条数据,模型是5分类,那矩阵就是(200,5)。
矩阵的第(i,j)元素代表第i条数据是第j类的概率。
Y_pred_prob = clf.predict_proba(X_test)
# 随机森林的AUC值
forest_auc = roc_auc_score(Y_test, Y_pred_prob, multi_class='ovo')
参考:
更多推荐
已为社区贡献3条内容
所有评论(0)