防止隔离林异常检测的NaN值

2024-06-28 12:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在处理一个数据集,每次我使用隔离林进行异常检测时,绝大多数数据都被分类为NaN,而不是1(inlier)或-1(outlier)。这是我目前使用的代码的一个版本

def IsolatedForestAnomalyDetection(df):
    df1 = df.drop(['a','b','c', 'd'], axis = 1)
    data = df1
    X = np.array(df1)
    clf = IsolationForest(contamination = 0.01, n_estimators=10)
    clf.fit(X)  # fit 10 trees  
    df1["iforest"] = pd.Series(clf.predict(data))
    return(df1) 

基本上,我发送一个pandas数据帧并删除不必要的列,然后继续隔离林,将异常检测的结果添加到数据帧并返回。我设置隔离林的方式是否有问题,或者很可能与我发送的数据帧有关,或者两者都有


Tags: 数据代码版本dfdatadef分类nan