我正在按照以下方式使用隔离林来检测数据集中的异常数据点。
#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中执行此操作的方法。但是,我仍然找不到方法。请让我知道合适的方法。
很高兴在需要时提供更多详细信息。
答案 0 :(得分:1)
使用predict
代替使用decision_function
。
来自docs:
方法 Decision_function(self,X)基本分类器X的平均异常分数。
然后,您可以根据其异常分数对它们进行排名。该值越低,观察到的异常越多。