是否可以在python pyod中打印出ROC曲线下方的区域?

问题描述 投票:0回答:1

我有5,000个观测值的数据。我将数据集分为两部分:变量(X_train)和标记的目标(y_train)。我正在使用pyod,因为它似乎是最受欢迎的用于异常检测的Python库。

我使用以下代码将模型拟合到数据:

from pyod.models.knn import KNN
from pyod.utils import evaluate_print

clf = KNN(n_neighbors=10, method='mean', metric='euclidean')
clf.fit(X_train)
scores = clf.decision_scores_

现在已拟合模型,并且我有可能将观测值存储为scores中的异常值。我手动计算了ROC曲线下的面积,结果返回0.69。

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

evaluate_print('KNN with k=10', y=y_train, y_pred=scores)

返回:KNN with k=10 ROC:0.69, precision @ rank n:0.1618

我想知道pyod中是否有特定函数,该函数只会返回0.69。

python knn roc auc
1个回答
0
投票

我不知道pyod,但是sklearn具有roc_auc_score或auc来完成这项工作。它非常易于使用,我想与您的项目一起工作只有一两行

© www.soinside.com 2019 - 2024. All rights reserved.