Как использовать векторы документов в изоляторе - PullRequest
1 голос
/ 03 июня 2019

Чтобы понять, что на самом деле делает 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 Ответ

1 голос
/ 03 июня 2019

Вы можете сразу использовать predict() для обнаружения выбросов, если только вы не планируете удалять некоторые переменные, которые не будут учитываться в модели обучения.

В целом, я бы сказал, чтобы сделать корреляционный анализ и удалить переменные, которые сильно коррелированы друг с другом (логическая основа в том, что если они сильно коррелированы, то они одинаковы и не должны поощрять смещениепеременных путем удвоения рассмотрения).

Не стесняйтесь оспаривать иное или высказать свои соображения, поскольку я считаю, что вышеизложенное действительно является моим мнением о том, как подойти к проблеме.

...