如何在Sklearn的Isolationforest中使用文档向量

时间:2019-06-03 05:05:14

标签: python scikit-learn gensim outliers doc2vec

在了解isolation forest的实际功能后,我使用以下8个功能进行了示例项目。

from sklearn.ensemble import IsolationForest    
#features
df_selected = df[["feature1", "feature2", "feature3", "feature4", "feature5", "feature6", "feature7", "feature8"]]
X = np.array(df_selected)

#isolation forest
clf = IsolationForest(max_samples='auto', random_state=42, behaviour="new", contamination=.01)
clf.fit(X)
y_pred_train = clf.predict(X)

print(np.where(y_pred_train == -1)[0])

现在,我要使用isolation forest来识别什么是异常文档。为此,我使用doc2vec训练了gensim模型。现在,对于数据集中的每个文档,我都有一个300-dimensional vector

我的问题是,我可以立即使用以上代码中的isolation forest中的文档向量作为X来检测异常值吗?还是在将向量应用于isolation forest之前需要减小向量的维数?

很高兴在需要时提供更多详细信息。

1 个答案:

答案 0 :(得分:1)

除非计划删除训练模型中不会考虑的某些变量,否则可以立即使用predict()检测异常值。

通常,我会说要进行相关性分析,并删除彼此高度相关的变量(逻辑基础是,如果它们之间高度相关,则它们是相同的,不应鼓励变量的偏差。通过加倍考虑)。

请随时提出异议或陈述您的考虑,因为我认为以上内容实际上是我对如何解决问题的看法。