2

sklearn (Python)에 다른 확률 모델 (latent Dirichlet Allocation, Non-negative Matrix Factorization 등)을 맞추는 최선의 방법을 찾으려고합니다.scikit-learn - TF 또는 TF-IDF 모델에 맞춰야합니까?

sklearn 문서의 예제를 보면, LDF 모델이 TF 어레이에 적합한 이유는 무엇인지, NMF 모델은 TF-IDF 어레이에 맞는지 궁금합니다. 이 선택에 대한 정확한 이유가 있습니까? http://scikit-learn.org/stable/auto_examples/applications/topics_extraction_with_nmf_lda.html#sphx-glr-auto-examples-applications-topics-extraction-with-nmf-lda-py

이 또한 내 모델을 피팅에 가장 적합한 매개 변수를 찾는 방법에 대한 어떤 조언 (반복 수, 주제의 수 ...)가 잘 받아 들여 : 여기

은 예입니다.

미리 감사드립니다.

+0

매개 변수 최적화에 대한 설명. 메타 최적화 기술 (예 : 알고리즘에 PSA - Particle Swarm Optimization 적용)이 특정 설정에 대해 최적의 매개 변수 값을 보장하는지 확인해야합니다. 메타 최적화는 가능한 각 매개 변수 조합의 검색 공간을 빠르고 효율적으로 탐색하는 방법입니다. – rpd

+0

@rpd 감사합니다! –

답변

3

대답을 명확히하려면 먼저 두 모델의 정의를 검토해야합니다.

LDA는 각 단어에 대한 주제를 샘플링 한 다음 샘플링 된 주제에서 단어를 샘플링하여 문서를 생성하는 확률 적 생성 모델입니다. 생성 된 문서는 단어 모음으로 표시됩니다.

NMF는 일반적으로 2 행렬 W와 H를 검색하여 W*H=V이며, V는 관측 행렬입니다. 이러한 행렬에 대한 유일한 요구 사항은 모든 요소가 음수가 아니어야한다는 것입니다.

위의 정의에서, LDA에서는 실수의 벡터가 의미가 없으므로 단어 빈도 카운트 만 사용할 수 있습니다. 우리는 1.2 번 단어를 만들었습니까? 반면에 우리는 NMF에 대해 음이 아닌 표현을 사용할 수 있으며 예제에서는 tf-idf가 사용됩니다.

scimit의 NMF에 대해 반복 횟수를 선택하는 경우, 손실 함수의 상대적 개선이 임계 값보다 상대적으로 개선되었으므로 정지 기준을 알 수는 없으므로 실험. LDA의 경우 보류 된 유효성 검사 집합의 로그 가능성 향상을 수동으로 확인하고 임계 값 아래로 떨어지면 중지하는 것이 좋습니다.

나머지 매개 변수는 데이터에 크게 의존하므로 @rpd가 제안한 것처럼 매개 변수 검색을 제안합니다.

그래서 전용 주파수를 생성 할 수 LDA 을 요약하고 NMF 은 비 마이너스 매트릭스를 생성 할 수있다.

+0

대단히 감사합니다. @ katharas! 다른 매개 변수를 튜닝하는 한, 필자는 저 혼란을주는 매개 변수 (알파, τ_0 및 일괄 처리 크기)를 추정하려고 내 모델의 좋은 적합성에 대한 측정치로서 혼란을 사용하고있었습니다. LDA에 대한 매개 변수를 평가하는 좋은 방법이라고 생각하십니까? –

+0

예 perplexity가 좋습니다 (실제로는 더 좋을 수도 있음). 본질적으로 perplexity는 워드 당 로그 우도 (exponentiated word log likelihood)입니다. 그것은 다른 문서와 코퍼에 대한 값을 비교할 수 있도록하기 위해 사용됩니다. – katharas

+0

자세한 설명 주셔서 감사합니다;) –