gpt4 book ai didi

python - 如何使用 Isolation Forest 和结果分数正确识别异常?

转载 作者:行者123 更新时间:2023-12-02 19:50:35 26 4
gpt4 key购买 nike

我正在尝试使用 sklearn 中的隔离森林算法检测数据框中的异常值。

这是我用来设置算法的代码:

iForest = IsolationForest(n_estimators=100, max_samples=256, contamination='auto', random_state=1, behaviour='new')
iForest.fit(dataset)
scores = iForest.decision_function(dataset)

现在,由于我不知道污染的良好值(value)是多少,我想检查我的分数并根据分数的分布决定在哪里画线。这是图表和图表本身的代码:

plt.figure(figsize=(12, 8))
plt.hist(scores, bins=50);

enter image description here

假设负分表示数据框中的异常值是否正确?我找不到关于 IF 分数的范围以及这些分数如何工作的很好的解释(为什么我得到负分?)。

此外,有没有办法将这些分数附加到原始数据集,并手动检查具有负分数的行以查看它们是否有意义?

谢谢!

最佳答案

解决此问题的一种方法是使用 score_samples sklearn 的 isolationforest 模块中可用的方法。将模型拟合到数据后,使用 score_samples 方法找出每个样本的异常分数(值越低越异常)。由于您没有关于数据中真正异常的信息,您可以根据您获得的分数对样本进行排序,并手动查看记录以查看分数最低的样本是否实际上是异常,在此在这个过程中,您可以想出一个阈值来将数据点分类为异常,稍后您可以将其用于任何新数据以检查它们是否异常。

关于python - 如何使用 Isolation Forest 和结果分数正确识别异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58215284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com