如何在sklearn中获得关于隔离林的顶级预测

时间:2019-11-01 14:22:28

标签: python machine-learning scikit-learn outliers

我正在按照以下方式使用隔离林来检测数据集中的异常数据点。

#isolation forest
clf = IsolationForest(max_samples='auto', random_state=42, behaviour="new", contamination=.01)
clf.fit(X)
y_pred_train = clf.predict(X)

outliers = []
for item in np.where(y_pred_train == -1)[0]:
    outliers.append(df_nodes[item])   

我希望将预测的异常值作为排名列表。也就是说,我想知道什么是最有可能的离群值,以及下一个离群值,依此类推(可以使用某种预测概率进行排序)。我正在尝试找到一种在sklearn中执行此操作的方法。但是,我仍然找不到方法。请让我知道合适的方法。

很高兴在需要时提供更多详细信息。

1 个答案:

答案 0 :(得分:1)

使用predict代替使用decision_function

来自docs

  

方法   Decision_function(self,X)基本分类器X的平均异常分数。

然后,您可以根据其异常分数对它们进行排名。该值越低,观察到的异常越多。