2014 년 가을학기 손시운 ( [email protected] ) 지도 교수 : 문양세 교수님

22
분분 2014 년 년년년년 분분분 ([email protected] ) 분분 분분 : 분분분 분분분

description

분류. 2014 년 가을학기 손시운 ( [email protected] ) 지도 교수 : 문양세 교수님. 분 류. 분류 (Classification) ( 참조 : 이론 강의 ‘ 데이터 마이닝 개념 ’) 모델 구성 : 주어진 훈련 집합의 레코드들을 사용하여 , 속성 값들을 입력으로 클래스를 출력으로 하는 함수 ( 모델 ) 를 찾는 작업이다 . - PowerPoint PPT Presentation

Transcript of 2014 년 가을학기 손시운 ( [email protected] ) 지도 교수 : 문양세 교수님

Page 1: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

분류

2014 년 가을학기

손시운 ([email protected])

지도 교수 : 문양세 교수님

Page 2: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

2

분류

분류 (Classification) ( 참조 : 이론 강의 ‘데이터 마이닝 개념’ )

– 모델 구성 : 주어진 훈련 집합의 레코드들을 사용하여 , 속성 값들을 입력으로 클래스를 출력으로 하는 함수 ( 모델 ) 를 찾는 작업이다 .

– 모델 검증 : 테스트 집합의 레코드들을 앞서 구성한 분류 모델에 적용하여 모델의 정확성을 판별한다 . 일정 수준의 정확성이 확보되면 모델로서 의미를 가짐

– 모델을 사용한 예측 : 아직 분류되지 않은 ( 즉 , 클래스가 부여되지 않은 ) 레코드를 분류 모델에 적용하여 클래스를 부여함

Page 3: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

3

Decision Trees

Page 4: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

4

Example 1: Iris

Datasets: 150 개의 Iris 꽃 데이터– Sepal.Length: 꽃 받침 길이

– Sepal.Width: 꽃 받침 너비

– Petal.Length: 꽃잎 길이

– Petal.Width: 꽃잎 너비

– Species: 화종

• setosa

• versicolor

• virginica

#Sepa-

l.LengthSepa-

l.WidthPetal.Leng

thPetal.Wid

thSpecie

s1 5.1 3.5 1.4 0.2setosa

2 4.9 3 1.4 0.2setosa

3 4.7 3.2 1.3 0.2setosa

4 4.6 3.1 1.5 0.2setosa

5 5 3.6 1.4 0.2setosa

6 5.4 3.9 1.7 0.4setosa

7 4.6 3.4 1.4 0.3setosa

8 5 3.4 1.5 0.2setosa

9 4.4 2.9 1.4 0.2setosa

10 4.9 3.1 1.5 0.1setosa

11 5.4 3.7 1.5 0.2setosa

12 4.8 3.4 1.6 0.2setosa

13 4.8 3 1.4 0.1setosa

14 4.3 3 1.1 0.1setosa

15 5.8 4 1.2 0.2setosa

새로운 Iris 데이터의 종을 파악할 수 있을까 ?

Page 5: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

5

Ex.1: 필수 패키지 설치

Decision Tree 를 생성하기 위해 필요한 패키지 설치– http://cran.r-project.org/web/packages/party/index.html

– http://cran.r-project.org/web/packages/zoo/index.html

– http://cran.r-project.org/web/packages/sandwich/index.html

– http://cran.r-project.org/web/packages/strucchange/index.html

– http://cran.r-project.org/web/packages/modeltools/index.html

– http://cran.r-project.org/web/packages/coin/index.html

– http://cran.r-project.org/web/packages/mvtnorm/index.html

다운로드 받은 패키지를 R 에서 로딩

Page 6: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

6

Ex.1: 데이터 확인

R 에 내장되어있는 iris 데이터 사용

Page 7: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

7

Ex.1: 데이터 분류

훈련 집합과 테스트 집합 분류

– sample() 함수를 통해 70% 의 훈련 집합과 30% 의 테스트 집합으로 분류

• replace=TRUE: 중복을 허용하여 난수 생성

• prob=c(0.7, 0.3): 난수를 생성할 때 가중치를 부여

Page 8: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

8

Ex.1: Decision Tree 생성

ctree() 함수 : Decision Tree 를 생성하는 함수

Page 9: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

9

Ex.1: Decision Tree 생성

Decision Tree 플로팅

Page 10: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

10

Ex.1: Decision Tree 생성

Decision Tree 플로팅

Page 11: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

11

Ex.1: Decision Tree 생성

테스트 집합의 분류– predict() 함수 : 미리 정의된 예측 모델을 사용하여 데이터를 분류하는 함수

예측 결과와 실제 데이터의 정확도 확인

Page 12: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

12

The k-Nearest Neighbor Algorithm

knn 알고리즘 ( 출처 : 자바캔)

– 데이터를 분류하는데 유용하게 사용하는 알고리즘

– 주어진 훈련 집합의 레코드와 비교하여 가장 밀접한 k 개의 레코드를 기반으로 새로운 데이터를 분류하는 알고리즘

• 밀접한 정도는 Euclidean distance 를 사용하여 계산

– k=4 일 경우 로맨스가 3 개 , 액션이 1 개에서 나타나므로 ? 는 로맨스로 분류

제목 발차기 키스 유형 ? 와의 거리

A 3 104 로맨스 20.5

B 2 100 로맨스 18.7

C 1 81 로맨스 19.2

D 101 10 액션 115.3

E 99 5 액션 117.4

F 98 2 액션 118.9

? 18 90 ( 예측 대상 )

Page 13: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

13

Example 2: Forensic Glass

Datasets: 6 종류의 유리조각 214 개 데이터– WinF: float glass window

– WinNF: non-float glass window

– Veh: vehicle window

– Con: container (bottles)

– Tabl: Tableware

– Head: vehicle headlamp

각 데이터는 다음의 속성을 가짐– RI: 굴절률 (refractive index)

– Percentages of Na, Mg, Al, Si, K, Ca, Ba, and Fe

– type: 유리의 종류

새로운 유리조각의 종류를 파악할 수 있을까 ?

# RI Na Mg Al Si K Ca Ba Fe type

1 3.01 13.64 4.49 1.1 71.78 0.06 8.75 0 0WinF

2 -0.39 13.89 3.6 1.36 72.73 0.48 7.83 0 0WinF

3 -1.82 13.53 3.55 1.54 72.99 0.39 7.78 0 0WinF

4 -0.34 13.21 3.69 1.29 72.61 0.57 8.22 0 0WinF

5 -0.58 13.27 3.62 1.24 73.08 0.55 8.07 0 0WinF

6 -2.04 12.79 3.61 1.62 72.97 0.64 8.07 0 0.26WinF

7 -0.57 13.3 3.6 1.14 73.09 0.58 8.17 0 0WinF

8 -0.44 13.15 3.61 1.05 73.24 0.57 8.24 0 0WinF

9 1.18 14.04 3.58 1.37 72.08 0.56 8.3 0 0WinF

Page 14: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

14

Ex.2: 필수 패키지 설치

데이터 셋을 수집하기 위해 , 관련 패키지 다운로드– http://cran.r-project.org/web/packages/textir/index.html

– http://cran.r-project.org/web/packages/distrom/index.html

– http://cran.r-project.org/web/packages/gamlr/index.html

– 압축 해제 후 , 설치 경로의 library 폴더로 이동

다운로드 받은 패키지를 R 에서 로딩

Page 15: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

15

Ex. 2: 데이터 확인

str() 함수 : 데이터 프레임의 구조를 확인하는 함수

– 10 개의 속성 (RI, Percentages of elements, type)

– 214 개 데이터

Page 16: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

16

Ex. 2: Box plots (1/2)

다른 속성과 type 간의 관계를 box plot 으로 표현– par() 함수 : 그래프의 공간을 배열 형태로 미리 할당

› par(mfrow=c(3,3), mai=c(.3,.6,.1,.1))

› plot(RI ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Al ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Na ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Mg ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Ba ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Si ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(K ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Ca ~ type, data=fgl, col=c(grey(.2),2:6))

› plot(Fe ~ type, data=fgl, col=c(grey(.2),2:6))

Page 17: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

17

Ex. 2: Box plots (2/2)

Page 18: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

18

Ex. 2: RIxAl 기반 분류

훈련 집합 (200 개 ) 과 테스트 집합 (14 개 ) 구분

– nt 변수 : 트레이닝 데이터의 수

– sample(x, size, …) 함수 : x 벡터에서 nt 개의 난수 데이터 추출

Page 19: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

19

Ex. 2: RIxAl 기반 분류

kNN 알고리즘 수행 및 결과

훈련 집합 테스트 집합 분류 대상

Page 20: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

20

Ex. 2: RIxAl 기반 분류

kNN 알고리즘 결과를 plot

– plot() 함수로 훈련 집합을 표현

• 결과는 open symbol

– points() 함수로 테스트 집합을 표현

• 결과는 solid symbol

Page 21: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

21

Ex. 2: RIxAl 기반 분류

kNN 알고리즘 결과의 성능 평가

– kNN 의 결과와 실제 type 이 같은 경우의 확률을 계산

– 1NN 은 78.6 이며 , 5NN 은 71.4 의 결과가 나타남

• 항상 같은 결과가 나타나지는 않음

Page 22: 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 :  문양세  교수님

22

과제 #4

유리 데이터 셋에 포함된 다른 속성들을 모두 사용하여 분류– 앞의 예제는 RI 와 Al 만을 사용하여 분류함

– 과제는 RI 및 Percentages of Na, Mg, Al, Si, K, Ca, Ba, and Fe 를 사용하여 분류

– 214 개의 데이터에서 임의로 훈련 집합과 테스트 집합을 설정

– 분류한 결과 ( 데이터 프레임 ) 와 성능 평가까지 진행

제출 방법– 과제는 [email protected]로 제출

– 제목 양식 : [ 학번 ][ 이름 ]HW#4

– 과제에서 설정한 훈련 및 테스트 집합과 분류한 결과 및 성능 평과 결과를 캡쳐

– 제출 기한은 다음 실습 수업시간 전까지이며 , 그 후에 제출할 경우 20% 감점