我想使用隔离林来识别我的数据集中的异常值。
训练集包含4000条记录,其中40个要素列的值为1或0。
我知道如何使用scikit learn中给出的示例示例来使用隔离林2个功能。
如何使用所有40个功能并查看异常值?
答案 0 :(得分: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)