I try to use an isolation Forest用于异常值检测(欺诈检测)。如果我运行下面的代码(带训练集和测试集):
from sklearn.ensemble import IsolationForest
iso = IsolationForest(random_state=0).fit(X_train)
isopred = iso.predict(X_test)
我得到一个数组:array([1, 1, -1, ..., 1, 1, 1])
包含1或-1。如何使用predict_proba
,我可以用它来DecisionTrees。文档中是否有可用于IsolationTree的功能?没有提到?你知道吗
运行时:iso.predict_proba(X_test)
出现以下错误:
AttributeError: 'IsolationForest' object has no attribute 'predict_proba'
我正在搜索一个数组,它给出了预测属于哪个类(异常值与否)的概率。你知道吗
我的X_test
看起来像:
A B C
11 1 0
11 3 0
11 0 1
和y_test.values.ravel()
:
array([0,0,1])
在这个模块中没有一个预测概率,因为它不使用概率来评估每个样本作为一个异常值,而是一个分数。你知道吗
查看您提供的文档,每个示例都使用具有以下公式的决策函数进行分类:
所以你可能想要的是给样本打分。使用样本数据:
结果:
减去每个样本的偏移量(默认值为-0.5)后,如果返回的结果为正,则为inlier,否则为outlier。你知道吗
希望有帮助。你知道吗
相关问题 更多 >
编程相关推荐