Как сделать модель OneClassSVM более точной? (Scikit-Learn)

Я пытался классифицировать автора, используя несколько текстов, написанных этим автором, которые я затем использовал бы, чтобы найти сходства в других текстах, чтобы идентифицировать этого автора в тестовой группе.

Мне удалось сделать некоторые прогнозы, однако я все еще получаю результаты, в которых не удалось предсказать автора.

Я предварительно обработал тексты с выделением корней, токенизацией, стоп-словами, удалением знаков препинания и т. Д., Чтобы сделать его более точным.

Я не знаком с тем, как именно работают параметры OneClassSVM. Какие параметры я мог бы использовать для решения моей проблемы и как сделать мою модель более точной в ее предсказаниях?

Вот что у меня есть на данный момент:

vectorizer = TfidfVectorizer()

author_corpus = self.pre_process(author_corpus)
test_corpus = self.pre_process(test_corpus)

train = author_corpus
test = test_corpus

train_vectors = vectorizer.fit_transform(train)

test_vectors = vectorizer.transform(test)

model = OneClassSVM(kernel='linear', gamma='auto', nu=0.01)

model.fit(train_vectors)

test_predictions = model.predict(test_vectors)

print(test_predictions[:10])

print(model.score_samples(test_vectors)[:10])

2 ответа

Я слышал положительные отзывы о классе глубокого обучения Эндрю Нг на Coursera. Я узнал все, что знаю об ИИ, используя профессиональную сертификацию Microsoft по ИИ на edx.

Вы можете использовать SVM, но глубокое обучение действительно хорошо для этого подходит. Я провел соревнование Kaggle с классификационными документами, и это было потрясающе.

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