gpt4 book ai didi

python - 如何在 Dataframe 的每一列中搜索异常?

转载 作者:行者123 更新时间:2023-12-04 03:56:17 25 4
gpt4 key购买 nike

我有一个 Dataframe,我的目标是为每个不同的列 找出异常。所以我正在寻找单变量异常。

假设这是我的数据框:

df=pd.DataFrame(np.random.rand(100, 6) * 1, columns=['A','B','C','D','E','F'])

我面临两个问题:

  1. 哪些算法适合这个目标?例如。隔离林?
  2. 如何在所有列上运行算法(例如隔离森林),而不是逐列运行?我可以使用 for 循环吗?

感谢您的帮助!

最佳答案

Q2:例如。

df = pd.DataFrame({"bytes":[1,2,3,4,5], "flow":[1,2,3,4,5], "userid":[1,2,3,4,5]}).set_index("userid")

def get_anomaly(arr):
# your algorithm
if arr.bytes < 3 and arr.flow < 3:
return -1
elif arr.bytes > 3 and arr.flow > 3:
return 1
else:
return 0

df['is_anomaly'] = df.apply(get_anomaly, axis=1)

>>> df
bytes flow userid is_anomaly
0 1 1 1 -1
1 2 2 2 -1
2 3 3 3 0
3 4 4 4 1
4 5 5 5 1

我们可以谈谈 Q1。

0级:线性关系或其他经验

Box-plot: min outlier < Q1-1.5ΔQ <= normal data <= Q3+1.5ΔQ < max outlier

Scott rule: Δb=3.5σn1/3 .Split the data and do distribution statistics

Other data status: avg. mean std and so on.

一级:统计算法

Great algo: 
CMP
https://www.sciencedirect.com/science/article/abs/pii/S1389128616301633

Beehive
https://nds2.ccs.neu.edu/papers/Beehive.pdf

CBLOF
https://www.goldiges.de/publications/Anomaly_Detection_Algorithms_for_RapidMiner.pdf

And some AR MA ARMA algo, I don't know much.

第 2 级:无监督学习

Kmeans等等……(这个其实挺多的)

第 3 级:监督学习

from elasticsearch (doc)

EWMA
s2=α*x2+(1-α)*s1

Holt-Linear
s2=α*x2+(1-α)*(s1+t1)
t2=ß*(s2-s1)+(1-ß)*t1

Holt-Winters
si=α(xi-pi-k)+(1-α)(si-1+ti-1)
ti=ß(si-si-1)+(1-ß)ti-1
pi=γ(xi-si)+(1-γ)pi-k

from ML
CNN RNN LSTM Prefixspan AutoML Bayes and so on.(There are a few scenarios you can use.)

还有太多没有列出来,太多算法要使用,太多合适,太多细节要写下来。分析异常时UEBA的思路很重要。

关于python - 如何在 Dataframe 的每一列中搜索异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63847903/

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