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