【问题标题】:Isolation Forest Implementation隔离林实施
【发布时间】:2017-10-16 17:17:48
【问题描述】:

我想使用隔离森林来识别我的数据集中的异常值。

训练集包含 4000 条记录,其中 40 个特征列的值为 1 或 0。

通过 scikit learn 中给出的示例,我知道如何将隔离森林用于 2 个功能。

如何使用所有 40 个功能并查看异常值?

【问题讨论】:

    标签: python machine-learning


    【解决方案1】:

    我稍微简化了 scikit 示例。 X 是具有 40 个特征和 4000 行的数据集。在此示例中,它是 3 个特征和 100 行。您将带有 clf.fit(X) 的分类器拟合到您的数值数据 X,以了解分类器数据的“边界”。在下一步中,您根据学习模型对相同的数据 X 进行分类,并获得一个包含 100 个条目的数组 y,每个条目对应数据集中的每一行。 y 中的每个条目都是 -1(离群值)或 1(内联)。

    import numpy as np
    from sklearn.ensemble import IsolationForest
    
    rng = np.random.RandomState(42)
    
    # Generate train data
    s = rng.randn(100, 5)
    X = np.r_[s + 2, s - 2, s - 5]
    
    # fit the model
    clf = IsolationForest(max_samples=100, random_state=rng)
    clf.fit(X)
    y = clf.predict(X)
    

    【讨论】:

    • 请问我为什么使用df = pd.DataFrame(X)df.shape 我得到(300, 5),意思是300 行5 列,包括索引,而你描述的是3 个特性和100 行!
    猜你喜欢
    • 1970-01-01
    • 2018-09-10
    • 2019-07-11
    • 2020-05-24
    • 2019-06-29
    • 1970-01-01
    • 2020-05-25
    • 2019-08-02
    • 2019-07-20
    相关资源
    最近更新 更多