在python pyod中获取ROC曲线下的面积?

在python pyod中获取ROC曲线下的面积?,python,knn,roc,auc,Python,Knn,Roc,Auc,我有5000次观测的数据。我将数据集分成两部分:变量(X\u-train)和标记的目标(y\u-train)。我使用的是pyod,因为它似乎是最流行的异常检测Python库 我使用以下代码将模型与数据相匹配: 从pyod.models.knn导入knn 从pyod.utils导入计算打印 clf=KNN(n_近邻=10,方法='mean',度量='euclidean') clf.fit(X_系列) 分数=clf.decision\U分数_ 该模型现在已拟合,我有一个观察值是存储在分数中的异常值

我有5000次观测的数据。我将数据集分成两部分:变量(
X\u-train
)和标记的目标(
y\u-train
)。我使用的是
pyod
,因为它似乎是最流行的异常检测Python库

我使用以下代码将模型与数据相匹配:

从pyod.models.knn导入knn
从pyod.utils导入计算打印
clf=KNN(n_近邻=10,方法='mean',度量='euclidean')
clf.fit(X_系列)
分数=clf.decision\U分数_
该模型现在已拟合,我有一个观察值是存储在
分数中的异常值的概率。我手动计算ROC曲线下的面积,结果返回0.69

我注意到,使用时的结果是相同的:

evaluate_print('KNN,k=10',y=y_train,y_pred=scores)
它返回:
KNN,k=10roc:0.69,精度@rank n:0.1618


我想知道在
pyod
中是否有一个只返回0.69的特定函数。

我不知道pyod,但
sklearn
有roc\u auc\u分数或
auc
完成该工作。这是非常容易使用,我想这是一个或两行工作与您的项目

从sklearn导入度量
fpr、tpr、阈值=指标。roc_曲线(y_真=y_训练,y_分数=分数)
auc.append(metrics.auc(fpr,tpr))

我不知道pyod,但
sklearn
有roc\u auc\u得分或
auc
做这项工作。这是非常容易使用,我想这是一个或两行工作与您的项目

从sklearn导入度量
fpr、tpr、阈值=指标。roc_曲线(y_真=y_训练,y_分数=分数)
auc.append(metrics.auc(fpr,tpr))

pyod包本身根据sklearn.metrics.ROC_auc_分数计算ROC。您可以在pyod存储库笔记本文件夹中的Benchmark.ipynb中看到这一点。因此,要仅获取ROC,请使用以下命令:
从sklearn.metrics导入roc\u auc\u分数


roc=round(roc_auc_分数(y_测试,test_分数))
pyod包本身根据sklearn.metrics.roc_auc_分数计算roc。您可以在pyod存储库笔记本文件夹中的Benchmark.ipynb中看到这一点。因此,要仅获取ROC,请使用以下命令:
从sklearn.metrics导入roc\u auc\u分数


roc=round(roc\u auc\u分数(y\u test,test\u分数))

我不知道
pyod
,但是``sklearn`有
roc\u auc\u分数
auc
。这是非常容易使用,我想这是一个或两个线与您的工作project@CutePoison成功了!你想发表你的评论作为回答吗?我不知道
pyod
,但是``sklearn`有
roc\u auc\u得分
或者
auc
哪个做这个工作。这是非常容易使用,我想这是一个或两个线与您的工作project@CutePoison成功了!你想把你的评论作为回答吗?