Transcript knn
K-Nearest Neighbor 알고리즘을 이용한
Mobile Recommendation System 시뮬레
이션
인터넷기술 전공
012ITI17
최 보경
목 차
1. 서 론
2. 연구 배경
3. 데이타베이스에서의 유도
4. 유사도의 계산
5. 알고리즘의 설명
6. 실험 결과
7. 결과
8. 시뮬레이션
2
1. 서론
최근접 이웃 알고리즘(nearest neighbor algorithm)
최근 들어 여러 분야에서 적용되고 있으며 그 성능을 검증
받고 있는 기계학습 방법중의 하나.
NN 알고리즘은 이미 알려진 개체들을 훈련집합(training set)
의 형태로 메모리에 기억한 다음 그 중 유사한 개체를 선택
하여 선택된 개체의 값에 따라 새로운 개체의 값을 예측하
는 방식의 분류(classification) 알고리즘.
개체간의 유사도(similarity) 측정 방법이 학습 방법의 가장
중요한 부분. 유사도의 측정 방법 종류에 따라 여러 가지 형
태의 알고리즘이 존재.
학습에 사용되는 각 개체는 속성(attribute)의 집합 형태로 표
현
3
1. 서론
최근접 이웃 알고리즘(nearest neighbor algorithm)
다른 기계학습 알고리즘과 다른 특징
: 학습(learn)되는 개념을 외부적으로 표현할 필요가 없다.
도출된 결론에 대한 설명이 필요한 경우 유사한 개체를 제
공함으로써 새로운 개체의 분류(classification)에 대한 설명
의 기능을 제공.
다른 학습 방법에 비하여 상대적으로 널리 사용되지 않은
주된 이유
: 수치 데이터(numeric data)만을 중점적으로 다루어 왔기 때
문.
4
1. 서론
엔트로피를 이용한 데이타베이스 환경에서의 최근접
이웃 알고리즘(An Entropy-based Nearest Neighbor
Algorithm for Relational Databases)
데이타베이스 환경에 알맞은 NN 알고리즘을 위한 최근접
이웃 알고리즘
데이타베이스의 각 속성마다 그 중요성에 따라 가중치를 자
동으로 계산하며, 선택된 유사 개체에 대하여도 가중치를
자동으로 부여
C언어로 구현
실험의 결과는 ID3, 역전파(back-propagation) 신경망 알고리
즘 등의 다른 기계학습 방법과 비교
5
2. 연구 배경
Cover와 Hart 최초 각각 제안
Smith와 Medin 등에 의하여 NN 알고리즘은 논리학적으로 타당성
인정, 실제 알고리즘을 위한 모델은 개발 안됨
Aha, Kibler and Albert 가 개체중심 학습(instance-based learning,
IBL) 알고리즘을 각각 IB1, IB2, IB3 개발
C언어로 구현
IB1 - 속성의 정규화, 알고리즘의 순차적 처리, 누락 정보의 처리 기
능 추가
IB2 - 잘못 분류된 개체만 저장함으로써 기억장치의 요구를 대폭 감
소
IB3 – IB2 알고리즘의 확장
Zhang은 개체간의 유사도와 개체내의 유사도를 정의
Romaniuk는 IBL 알고리즘의 정확도와 기억장치 요구를 감소시킨
다중 패스 알고리즘 개발
Shalak은 몬테 카를로 샘플링(Monte Carlo sampling) 방법을 이용
하는 대표적인 개체의 선택 방법을 제안
6
3. 데이타베이스에서의 유사도
NN 알고리즘을 데이타베이스 환경 하에서 적용할 때의 문제점
각 속성의 중요도에 따른 가중치의 문제
=> 정보이론을 이용하여 각 속성의 가중치를 자동으로 계산하는 방법을
제안. 즉, 특정 속성은 그 속성이 목적 속성에 제공하는 정보의 양
(content of information)에 비례하여서 가중치의 값을 자동으로 결정
비수치(non-numeric) 속성의 처리에 관한 문제
=> Stanfill과 Walz가 카테고리형 데이터에 대하여 유사도를 정의
: 훈련집합(training set)으로부터 통계적인 방법을 사용하여 카테고리형
데이터의 모든 값의 조합에 대하여 유사도를 정의
=> Cost와 Salzberg에 의하여 향상
: 메모리에 있는 개체들에게 가중치를 부여함으로써 NN 알고리즘의 성
능 향상
7
5. 알고리즘의 설명
훈련집합 전체를 읽어서 메모리에 기억 => 새로운 개체 n
을 읽어서 그것을 메로리에 기억되어 있는 훈련집합의 개
체들과 비교하여 새로운 개체의 값을 예측
목적 속성(T)과 선택되는 개체의 개수(k)를 입력으로 필요
로 하며, 주어진 새로운 개체 n에 대하여 그의 목적 속성
의 값을 예측하여 출력
8
5. 알고리즘의 설명
첫번째 단계
각 속성에 대한 가중치의 계산과정
두번째 단계
새로운 개체 n을 훈련집합의 모든 개
체와 비교한 후 그 중 k 개의 가장 유사
한 개체를 선택하여 집합 SEL 구성
=> SEL 내의 각 개체에 대하여는 그들
의 새로운 개체 n과의 유사도에 따른
가중치가 부여되며 유사한 개체일수
록 큰 가중치를 가지게 됨.
=>목적 속성의 모든 가능한 값에 대하
여 그 값을 가지는 SEL 내의 개체들의
가중치를 합산.
=> 합산한 가중치들 중에서 가장 많은
값을 가지는 목적 속성의 값을 개체 n
의 최종 값으로 분류
9
6. 실험 결과
알고리즘의 테스트는 훈련집합(training set)/테스트집합(test
set)의 방법을 이용
전체 데이터의 70%를 임의로 선택하여 훈련집합
나머지 30%를 테스트집합
훈련집합에 대하여 알고리즘을 수행하여 각 속성의 가중치가 계산
테스트집합의 각 개체에 대하여 목적 속성의 값을 예측
테스트집합의 모든 개체에 대하여 예측결과를 실제 결과와 비교하
여 그 정확도를 계산
10
6. 실험 결과
표 2 실험 데이타베이스
데이타베이스
이름
전체 개체의 수
전체 속성의 수
누락자료 여부
Tic-tac-toe
958
9
No
Letter
20,000
16
No
Voting
435
16
Yes
데이타베이스
ID3
역전파
제안된 방법
Tic-tac-toe
84.0 3.4%
98.1 1.2%
99.2 0.4%
Letter
74.2 2.8%
78.6 2.9%
80.8 4.1%
Voting
82.6 3.5%
89.4 3.3%
92.3 2.5%
표 3 실험 결과의 비교
11
7. 결론
새로운 NN 알고리즘은 정보 이론을 바탕으로 엔트로피 함
수의 일종인 Hellinger 변량을 사용하여 개발되었으며 몇 가
지 기능을 보완
각 속성의 중요도를 나타내는 가중치가 자동으로 계산
유사도가 관계형 데이타베이스의 여러 데이터 타입에 모두 정의 될
수 있도록 수정
선택된 개체에 각 유사도에 따라 다른 가중치를 자동으로 부여
다른 기계학습 방법에 비하여 적은 비용으로 비교적 높은 정
확성을 보임
12
8. 시뮬레이션
㈜마이닝 테크의 Concerto 프로그램을 이용
일반 데이터를 마이팅하기위한 준비 작업 필요
13
8. 시뮬레이션
자료작성-자료준비 선택
14
8. 시뮬레이션
원본데이터 선택 -> 출력데이터 이름 지정 -> 데이터 형식 지정
-> 구분자 선택
15
8. 시뮬레이션
각각의 속성값 정의
16
8. 시뮬레이션
마침
17
8. 시뮬레이션
다음과 같은 데이터 생성
18
8. 시뮬레이션
마이닝-분류-기억기반학습(KNN) 선택
학습데이터, 테스트데이터 선택 후 K값 입력
19
8. 시뮬레이션
결과 생성
20
8. 시뮬레이션
21