gpt4 book ai didi

python - 异常值去除 隔离森林

转载 作者:行者123 更新时间:2023-12-01 06:26:01 24 4
gpt4 key购买 nike

我一直在尝试使用隔离林从数据库中删除异常值,但我不知道如何操作。我已经看过信用卡欺诈和薪资的示例,但我不知道如何将它们应用到每一列,因为我的数据库由 3862900 行和 19 列组成。我已经上传了数据库头部的图像。我不知道如何在每列上应用隔离森林,然后永久删除这些异常值。 enter image description here

谢谢。

enter image description here

最佳答案

根据docs用于检测异常值而不是删除它们

df = pd.DataFrame({'temp': [1,2,3,345,6,7,5345, 8, 9, 10, 11]})
clf = IsolationForest().fit(df['temp'].values.reshape(-1, 1))
clf.predict([[4], [5], [3636]])

数组([ 1, 1, -1])

从输出中可以看出,45 不是异常值,但 3636 是。

如果您想从数据框中删除异常值,您应该使用 IQR

quant = df['temp'].quantile([0.25, 0.75])
df['temp'][~df['temp'].clip(*quant).isin(quant)]
4     6
5 7
7 8
8 9
9 10

如您所见,异常值已被删除

对于整个 df

def IQR(df, colname, bounds = [.25, .75]):
s = df[colname]
q = s.quantile(bounds)
return df[~s.clip(*q).isin(q)]

注意:隔离森林无法从数据集中删除异常值,它用于检测新的异常值

关于python - 异常值去除 隔离森林,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60140391/

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