一、关于数据格式

首先,你的数据不管是库自带的如:

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')

参考:

官方文档《sklearn.metrics.roc_auc_score》

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐