1
누구나 표준 NMF 애플리케이션을 스파 스 입력 데이터 [크기 50kx50k의 행렬]로 수행하는 도구 집합을 권장합니다. 감사합니다!스파 스 입력의 음이 아닌 행렬 인수 분해
누구나 표준 NMF 애플리케이션을 스파 스 입력 데이터 [크기 50kx50k의 행렬]로 수행하는 도구 집합을 권장합니다. 감사합니다!스파 스 입력의 음이 아닌 행렬 인수 분해
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입니다.
면책 조항 : 나는이 구현에 기여한 사람이므로 공평한 조언이 아닙니다.
매우 도움이된다. 나는 성공하지 못한 채 http://nimfa.biolab.si/을 시도했다. –
btw - 그런 크기의 데이터를 처리 할 NMF R 패키지가 있는지 아는 사람이 있습니까? –