2. 1. 서론
2. 시스템 구성도
3. 데이터 전처리 및 클러스터링
4. 트리기반의 모델링
5. 결론 및 추후 연구 방향
CONTENTS
패턴분석을 통한 범죄 예측
부경대학교 IT응용융합공학 2
3. 연구의 필요성 및 목적
1. 서론
연구의 필요성
대용량 데이터의 효율적인 처
리/관리 필요
대용량 소셜 데이터에 대한 중
요성 및 가치 증가
최근 데이터의 특성을 고려한
데이터 처리기술의 필요
:
:
:
연구의 목적
분산된 데이터에 대한 활용 시
스템 구현 방안 제시
맵리듀스 모델을 이용한 클러
스터링 알고리즘 제시
클러스터링 결과에 대한 학습
시스템 구현 방안
:
:
:
부경대학교 IT응용융합공학 3
4. 관련연구
하둡
아파치의 분산시스템 솔루션
MapReduce 프로그래밍 모델
지원
HDFS(Hadoop Distribute File
System)
다양한 패키지 지원
:
:
:
:
맵리듀스
구글에서 개발한 병렬컴퓨팅
을 위한 프로그래밍 모델
맵과 리듀스로 구성된 함수형
프로그래밍
특정 데이터모델이나 스키
마, 질의에 의존적이지 않은 유
연성
:
:
:
1. 서론
부경대학교 IT응용융합공학 4
5. 2. 시스템 구성도
데이터
전처리
클러스터링
결정트리
생성
• RDBMS 데이터의 이용
• 협업 필터링
• 맵리듀스 기반의 데이
터 전처리
• 유사도 계산 알고리
즘
• 맵리듀스 기반의
클러스터링
>
>
>
>
• 클러스터에 대한 트
리 생성
• 새로운 데이터에 대
한 학습가능 알고리
즘
본 연구에서 제안하는 분산시스템에 대한 추천 시스템 설계
부경대학교 IT응용융합공학 5
6. 데이터의 특성을 고려한 맵리듀스 기반 전처리
3. 데이터 전처리 및 클러스터링
내용 기반 필터링(Content Based Filtering)
사용자 기반 필터링(User Based Filtering)
>
>
>
>
>
>
(>
>)
......
......
부경대학교 IT응용융합공학 6
7. RDBMS -> HDFS
3-1. 데이터 전처리
Client
Sqoop RDBMS
MapMapReduce MapMap
HDFS
Map MapMap
Reduce ReduceReduce
HDFS
1.임포트 실행
3.맵리듀스 잡 실행
2.매타데이터 전송
4.RDBMS의 데이터를 가져옴
6. 전처리에 대한 맵리듀스 잡 실행
procedure : ItemBasedToUserBasedMapper
input : item_purchased_historys
output : (userID,<itemID, rating>) pairs
begin
while(line in item_purchased_history)
while(userID,rating in line[userID,rating])
write(userID,<ltemID,rating>)
end
5.분산파일시스템에 저장
부경대학교 IT응용융합공학 7
8. 유사도 측정과 맵리듀스 기반 클러스터링
3-2. 클러스터링
HDFS
아이템간/사용자간 유사도 비교(Cos Dist.)
대표 데이터 추출(ClusterID지정)
Map
(ClusterId,Value)
Map
(ClusterId,Value)
Map
(ClusterId,Value)
Reduce ReduceReduce
HDFS
Shuffle : Group By ClusterID
2 32 33 42 51 57 61 75
3 3 4 6 4 1 5 8
2 4 15 19 33 37 58 59 61
3 4 1 8 7 5 5 4 4
Dist(A,B) = 0.28
A:
B:
Procedure : calDist
input : List<itemID,rating> A,List<itemID,rating> B
output : result
idxOfA = idxOfB = da = db = n = 0
while(idxOfA < length(A) && idxOfB < length(b))
if(A[idxOfA].itemID == B[idxOfB].itemID)
n += A[idxOfA].rating ^ 2 + B[idxOfB].rating ^ 2
da += A[idxOfA].rating ^ 2, db += B[idxOfB].rating ^ 2
idxOfA += 1,idxOfB += 1
else if(A[idxOfA].itemID > B[idxOfA].itemID)
db += B[idxOfB++].rating ^ 2
else
da += A[idxOfA++].rating ^ 2
while(idxOfA < length(A))
da += A[idxOfA++].rating ^ 2
while(idxOfB < length(B))
db += B[idxOfB++].rating ^ 2
result = n/ (sqrt(da) * sqrt(db))
부경대학교 IT응용융합공학 8
9. 사용자 데이터 개수에 대한 클러스터링 결과
3-2. 클러스터링
0
10000
20000
30000
40000
50000
60000
1000
2000
3000
4000
5000
8000
10000
20000
50000
100000
0.4
0.5
클러스터의 개수
사용자 데이터의 개수
17 59 283 428
8 2 7 6
17 288
7 9
428 712
7 6
31 59 283 821
4 6 7 6
하나의 클러스터에 대한 예
0.397 0.368
0.421
부경대학교 IT응용융합공학 9
10. 클러스터의 관리 및 새로운 데이터의 대한 학습
4. 트리기반의 모델링
트리 사용의 목적
새로운 데이터에 대한 클러스
터링
명확한 결과 추론 및 다양한 관
계식 사용의 가능성
새로운 데이터에 대한 학습 가
능 모델 개발
모형구축의 복잡성 및 소요되
는 시간의 최소화
:
:
:
:
C5 C6
C7
C1 C2 C3 C4
User Layer
Depth 0
Depth 1
Depth 2
부경대학교 IT응용융합공학 10
11. 연구 결론 및 향후 연구 방안
5. 결론 및 추후 연구
결론
맵리듀스를 이용한 데이터 클
러스터링 알고리즘 구현 방안
제시
대표 데이터 추출 방법 및 유사
도 임계치에 따라 클러스터링
의 정확도 결정
:
:
추후 연구
여러가지 실제 소셜 데이터에 대
한 분석 및 결과 비교
데이터의 특성을 이용한 유사도
계산 및 클러스터링 알고리즘 연
구
데이터 크기 별 정확한 성능 비교
필요
하둡 패키지들을 이용한 데이터
비교 및 데이터 학습시스템 구축
:
:
:
:
부경대학교 IT응용융합공학 11