Я обучаю SVM для одного класса для классификации документов. Я создал матрицу tf-idf для текста документа и использовал ее в качестве обучающих данных формы 117 x 1288, где каждая функция представляла слово, подобное следующему:
apple dog cat banana
doc1 .04 .17 0 .01
doc2 .01 0 0 .18
doc3 0 .22 .02 0
Однако, когда я прогнозирую тестовые данные для документов без слов вроде doc4:
doc4 0 0 0 0
... классификатор не считает его выбросом, и на самом деле он имеет относительно высокий балл:
model.predict(tf_idf_df.values) = [1]
model.score_samples(tf_idf_df.values) = [9.50079289]
Как это поведение можно объяснить? Кажется, что 0 значений для каждой функции будет очевидной аномалией.