728x90
sparse는 0 또는 등장하지 않는 term 이 얼마나 많은지를 의미하는 것으로, 수많은 0 으로 이루어진 행렬의 경우 알고리즘이 불필요한 수행으로 쓸데없는 시간을 낭비하게 만든다. 이런 경우 sparse term을 제거함으로써 효율적인 데이터 분석을 할 수 있다.
removeSparseTerms() 을 이용하여 sparse term 을 제거할 수 있으며, 필요한 것은 얼마만큼의 행을 지워버릴 것인가이다.
현상태에서 보면 sparsity = 90% 이며, 의미있는 actual data values ("non-sparse entities") 는 547개이다.
먼저 sparse 를 70 으로 한 경우는 다음과 같다.
> dtm.common.70 <- removeSparseTerms(dtm, 0.70)> inspect(dtm.common.70)
해당 corpus 내에서 다른 문서에 있는 term 과 최소 70% 공통적으로 쓰이지 않는 term 을 제거했다.
하지만 지나치게 많이 제거한 관계로 의미있는 데이터의 수를 8개로 만들어버려 오히려 의미있는 분석이 어렵게 되었다.
89%로 올려서 실행해보면, non-sparse entities 는 25개로 70% 보다는 늘어났음을 알 수 있다.
위의 내용을 정리해 보면 다음과 같다.
의미있는 분석이 되도록 적절한 수준에서 sparse term 을 제거해야 할 것이다.
sparse | documents | terms | Non-sparse | sparse | total | sparsity |
0.70 | 10 | 2 | 8 | 12 | 20 | 60.0% |
0.75 | 10 | 5 | 17 | 33 | 50 | 66.0% |
0.89 | 10 | 9 | 25 | 65 | 90 | 72.2% |
- | 10 | 531 | 547 | 4763 | 5310 | 89.7% |
sparse=0.89 | |||||||||
Docs | (laughter) | all | august | mandel: | prior. | strickland: | way | will | yes. |
1 | 4 | 9 | 1 | 4 | 0 | 6 | 3 | 14 | 3 |
2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
3 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 1 |
7 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
10 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
sparse=0.75 | |||||||||
Docs | (laughter) | mandel: | strickland: | way | yes. | ||||
1 | 4 | 4 | 6 | 3 | 3 | ||||
2 | 0 | 1 | 0 | 0 | 1 | ||||
3 | 0 | 0 | 1 | 0 | 0 | ||||
4 | 0 | 1 | 0 | 1 | 0 | ||||
5 | 1 | 0 | 0 | 0 | 0 | ||||
6 | 0 | 0 | 1 | 2 | 1 | ||||
7 | 1 | 0 | 0 | 0 | 0 | ||||
8 | 0 | 0 | 0 | 0 | 0 | ||||
9 | 1 | 0 | 0 | 0 | 0 | ||||
10 | 0 | 0 | 1 | 0 | 0 | ||||
sparse=0.70 | |||||||||
Docs | (laughter) | strickland: | |||||||
1 | 4 | 6 | |||||||
2 | 0 | 0 | |||||||
3 | 0 | 1 | |||||||
4 | 0 | 0 | |||||||
5 | 1 | 0 | |||||||
6 | 0 | 1 | |||||||
7 | 1 | 0 | |||||||
8 | 0 | 0 | |||||||
9 | 1 | 0 | |||||||
10 | 0 | 1 |
728x90
'프로그래밍 Programming' 카테고리의 다른 글
13. 상관관계 그래프로 보여주기 Correlations Plots (1) | 2014.11.26 |
---|---|
12. 등장빈도 및 단어간 상관도에 의거한 term 조회 Identifying Frequent Items and Associations (0) | 2014.11.25 |
리눅스 방화벽 설정 iptables (0) | 2014.11.25 |
ftp 프로그램 파일질라 FileZilla 편집기 설정변경방법 (0) | 2014.11.25 |
10. 행렬로 전환하여 CSV 포맷으로 저장하기 Conversion to Matrix and Save to CSV (0) | 2014.11.22 |