2017-01-07 11 views
2

Я экспериментирую с LatentDirichletAllocation() class в scikit-learn, а параметр evaluate_every имеет следующее описание.Оценка модели при поездке с помощью LatitDirichlet scikit Класс размещения

Как часто можно оценить недоумение. Используется только при подгонке. установите его на 0 или отрицательное число, чтобы не просчитать недоумение при обучении вообще. Оценка недоумения может помочь вам проверить конвергенцию в процессе обучения , но это также увеличит общее время обучения. Оценка недоумение на каждой итерации может увеличить время обучения до в два раза.

Я установил этот параметр равным 2 (по умолчанию 0) и увидел увеличенное время обучения, но я не могу найти значения недоумения где угодно. Сохраняются ли эти результаты или они используются только моделью, чтобы определить, когда остановиться? Я надеялся использовать значения недоумения, чтобы измерить прогресс и кривую обучения моей модели.

ответ

1

Он используется в сочетании с параметром perp_tol для оценки сходимости и не сохраняется между итерациями, согласно source:

for i in xrange(max_iter): 

    # ... 

    # check perplexity 
    if evaluate_every > 0 and (i + 1) % evaluate_every == 0: 
     doc_topics_distr, _ = self._e_step(X, cal_sstats=False, 
              random_init=False, 
              parallel=parallel) 
     bound = self.perplexity(X, doc_topics_distr, 
           sub_sampling=False) 
     if self.verbose: 
      print('iteration: %d, perplexity: %.4f' 
        % (i + 1, bound)) 

     if last_bound and abs(last_bound - bound) < self.perp_tol: 
      break 
     last_bound = bound 
    self.n_iter_ += 1 

Примечания что, хотя вы могли бы легко адаптировать существующий источник, чтобы сделать это, (1), добавив строку self.saved_bounds = [] к __init__ методе (2) добавление self.bounds.append(bound) к вышесказанному, как так:

if last_bound and abs(last_bound - bound) < self.perp_tol: 
    break 
last_bound = bound 
self.bounds.append(bound) 

в зависимости от того, где вы сохранили свой обновленный класс, у ou'd также необходимо адаптировать импорт в верхней части файла для ссылки на полный путь модуля в scikit-learn.

 Смежные вопросы

  • Нет связанных вопросов^_^