我有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。