2013-09-02 2 views

답변

4

scikit-learn의 구현은 NMF for sparse matrices입니다. 모든 출시 버전 (0.14까지 포함)에는 확장 성 문제가 있었으므로 GitHub의 최첨단 버전이 필요합니다. 데모가 이어집니다.

일부 데이터로드 : 20 개의 뉴스 그룹 텍스트 코퍼스.

>>> from sklearn.datasets import fetch_20newsgroups 
>>> from sklearn.decomposition import NMF 
>>> from sklearn.feature_extraction.text import CountVectorizer 
>>> from sklearn.preprocessing import normalize 
>>> data = fetch_20newsgroups().data 
>>> X = CountVectorizer(dtype=float).fit_transform(data) 
>>> X = normalize(X) 
>>> X 
<11314x130107 sparse matrix of type '<type 'numpy.float64'>' 
    with 1787565 stored elements in Compressed Sparse Column format> 

이제 10 개 구성 요소가 포함 된 NMF 모델에 적합합니다.

>>> nmf = NMF(n_components=10, tol=.01) 
>>> Xnmf = nmf.fit_transform(X) 

필자는 허용 오차 옵션을 조정하여 몇 초 안에이 수렴을 조정했습니다. 기본 허용 오차는 상당히 오래 걸립니다. 이 문제의 메모리 사용량은 약 360MB입니다.

면책 조항 : 나는이 구현에 기여한 사람이므로 공평한 조언이 아닙니다.

+0

매우 도움이된다. 나는 성공하지 못한 채 http://nimfa.biolab.si/을 시도했다. –

+0

btw - 그런 크기의 데이터를 처리 할 NMF R 패키지가 있는지 아는 사람이 있습니까? –