Почему модель Sklearn LDA topi c всегда предлагает (выбирает) модель topi c с наименьшим количеством тем? - PullRequest
0 голосов
/ 18 марта 2020

Я занимаюсь топи c моделированием на текстовых данных (около 4000 новостных статей). Для этого я использую модель Sklearn LDA. При этом я использую GridSearchCV, чтобы выбрать лучшую модель. Однако почти во всех случаях GridSearchCV предлагает наименьшую топи c в качестве лучшей модели.

Например, 1:

# Define Search Param
search_params = {'n_components': [5, 7, 10, 12, 15, 18, 20], 'learning_decay': [.5, .7, .9]}

# Init the Model
lda = LatentDirichletAllocation()

# Init Grid Search Class
model = GridSearchCV(lda, param_grid=search_params)

# Do the Grid Search
model.fit(data_vectorized)

Рекомендуется лучшая модель: 5

Пример 2:

# Define Search Param
search_params = {'n_components': [3, 5, 7, 10, 12, 15, 18], 'learning_decay': [.5, .7, .9]}

# Init the Model
lda = LatentDirichletAllocation()

# Init Grid Search Class
model = GridSearchCV(lda, param_grid=search_params)

# Do the Grid Search
model.fit(data_vectorized)

Рекомендуется лучшая модель: 3

Это нормально или это происходит только со мной?

Какая может быть причина этого?

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

Спасибо в Advance.

1 Ответ

0 голосов
/ 04 мая 2020

Я бы сказал, что для ваших данных три темы - это лучший топи c, чем пять тем. Вы не дали модели возможность проверить, были ли три темы хорошими в первом наборе тестов. Таким образом, вы получили ответ о выборе [5, 7, 10, 12, 15, 18, 20], тогда 5 - лучший.

...