Чувствительность и стабильность моделей LDA - PullRequest
0 голосов
/ 31 августа 2018

Я использовал LDA на корпусе из 60000 записей, и я получил хороший результат. Но вставив еще 200 строк в этот корпус и перезапустив LDA, у меня совсем другие темы. Тем не менее, 200 строк не представляют 1% корпуса. Обычно результаты не должны меняться. Я искал кое-что о чувствительности и стабильности моделей LDA, и я видел, что они просто довольно чувствительны на уровне параметров ... кто-нибудь знает что-нибудь об этом?

Вот этот скрипт:

import pandas
import mglearn
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation

text = pandas.read_csv('pretraitement_janaina_modif.csv', encoding = 'utf-8')
text_list = text.values.tolist()

vector = CountVectorizer()
X = vector.fit_transform(text_list)

lda_model = LatentDirichletAllocation(n_components = 30, learning_method = "batch", max_iter = 25, random_state = 0)
document_topics = lda_model.fit_transform(X)
sorting = np.argsort(lda_model.components_, axis = 1)[:, ::-1]
feature_names = np.array(vector.get_feature_names())

topics = mglearn.tools.print_topics(topics = range(30), feature_names = feature_names, sorting = sorting, topics_per_chunk = 5, n_words = 10)

print(topics)

В качестве первого результата приведен список тем:

Тема 0: заказ не доставляется обратно, всегда делитесь ответом на ответ подробнее

Тема 1: отменить заказ, возможны пожелания, пожелать выдвинуть ошибки, пункты обмануты

Тема 2: информирование о текущем заказе на поставку.

Тема 3: Дефектная деревянная коробка, имеющая дефекты покраски коробки на уровне коробки

Но когда я добавляю несколько строк в корпус, темы меняются:

Тема 0: поддержка канапе люстры изделия с большим верхом из металла большого размера

Тема 1: квитанция о заказе товара отсутствует, заказ не отсылается только

Тема 2: Дефектная деревянная коробка. Дефектная окраска коробки. 1029 *

Тема 3: сумма платежа по заказу осуществлена, перевод получен, банк оплаты пришел хорошо

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

...