2014년 가을학기 손시운 (ssw5175@kangwon.ac.kr) 지도 교수: 문양세 교수님 분류 2014년 가을학기 손시운 (ssw5175@kangwon.ac.kr) 지도 교수: 문양세 교수님
분류 분류 (Classification) (참조: 이론 강의 ‘데이터 마이닝 개념’) 모델 구성: 주어진 훈련 집합의 레코드들을 사용하여, 속성 값들을 입력으로 클 래스를 출력으로 하는 함수(모델)를 찾는 작업이다. 모델 검증: 테스트 집합의 레코드들을 앞서 구성한 분류 모델에 적용하여 모델 의 정확성을 판별한다. 일정 수준의 정확성이 확보되면 모델로서 의미를 가짐 모델을 사용한 예측: 아직 분류되지 않은 (즉, 클래스가 부여되지 않은) 레코드 를 분류 모델에 적용하여 클래스를 부여함
Decision Trees
새로운 Iris 데이터의 종을 파악할 수 있을까? Example 1: Iris Datasets: 150개의 Iris 꽃 데이터 Sepal.Length: 꽃 받침 길이 Sepal.Width: 꽃 받침 너비 Petal.Length: 꽃잎 길이 Petal.Width: 꽃잎 너비 Species: 화종 setosa versicolor virginica # Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3 4.7 3.2 1.3 4 4.6 3.1 1.5 5 3.6 6 5.4 3.9 1.7 0.4 7 3.4 0.3 8 9 4.4 2.9 10 0.1 11 3.7 12 4.8 1.6 13 14 4.3 1.1 15 5.8 1.2 새로운 Iris 데이터의 종을 파악할 수 있을까?
Ex.1: 필수 패키지 설치 Decision Tree를 생성하기 위해 필요한 패키지 설치 다운로드 받은 패키지를 R에서 로딩 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에서 로딩
Ex.1: 데이터 확인 R에 내장되어있는 iris 데이터 사용
Ex.1: 데이터 분류 훈련 집합과 테스트 집합 분류 sample() 함수를 통해 70%의 훈련 집합과 30%의 테스트 집합으로 분류 replace=TRUE: 중복을 허용하여 난수 생성 prob=c(0.7, 0.3): 난수를 생성할 때 가중치를 부여
Ex.1: Decision Tree 생성 ctree() 함수: Decision Tree를 생성하는 함수
Ex.1: Decision Tree 생성 Decision Tree 플로팅
Ex.1: Decision Tree 생성 Decision Tree 플로팅
Ex.1: Decision Tree 생성 테스트 집합의 분류 예측 결과와 실제 데이터의 정확도 확인 predict() 함수: 미리 정의된 예측 모델을 사용하여 데이터를 분류하는 함수 예측 결과와 실제 데이터의 정확도 확인
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 118.9 ? 18 90 (예측 대상) = (3−18) 2 + (104−90) 2 = (2−18) 2 + (100−90) 2 = (1−18) 2 + (81−90) 2 = (101−18) 2 + (10−90) 2 = (99−18) 2 + (5−90) 2 = (98−18) 2 + (2−90) 2
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 WinF 2 -0.39 13.89 3.6 1.36 72.73 0.48 7.83 3 -1.82 13.53 3.55 1.54 72.99 0.39 7.78 4 -0.34 13.21 3.69 1.29 72.61 0.57 8.22 5 -0.58 13.27 3.62 1.24 73.08 0.55 8.07 6 -2.04 12.79 3.61 1.62 72.97 0.64 0.26 7 -0.57 13.3 1.14 73.09 0.58 8.17 8 -0.44 13.15 1.05 73.24 8.24 9 1.18 14.04 3.58 1.37 72.08 0.56 8.3 새로운 유리조각의 종류를 파악할 수 있을까?
Ex.2: 필수 패키지 설치 데이터 셋을 수집하기 위해, 관련 패키지 다운로드 다운로드 받은 패키지를 R에서 로딩 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에서 로딩
Ex. 2: 데이터 확인 str() 함수: 데이터 프레임의 구조를 확인하는 함수 10개의 속성(RI, Percentages of elements, type) 214개 데이터
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))
Ex. 2: Box plots (2/2)
Ex. 2: RIxAl 기반 분류 훈련 집합(200개)과 테스트 집합(14개) 구분 nt 변수: 트레이닝 데이터의 수 sample(x, size, …) 함수: x 벡터에서 nt개의 난수 데이터 추출
Ex. 2: RIxAl 기반 분류 kNN 알고리즘 수행 및 결과 훈련 집합 테스트 집합 분류 대상
Ex. 2: RIxAl 기반 분류 kNN 알고리즘 결과를 plot plot() 함수로 훈련 집합을 표현 결과는 open symbol points() 함수로 테스트 집합을 표현 결과는 solid symbol
Ex. 2: RIxAl 기반 분류 kNN 알고리즘 결과의 성능 평가 kNN의 결과와 실제 type이 같은 경우의 확률을 계산 1NN은 78.6이며, 5NN은 71.4의 결과가 나타남 항상 같은 결과가 나타나지는 않음
과제 #4 유리 데이터 셋에 포함된 다른 속성들을 모두 사용하여 분류 제출 방법 앞의 예제는 RI와 Al만을 사용하여 분류함 과제는 RI 및 Percentages of Na, Mg, Al, Si, K, Ca, Ba, and Fe를 사용하여 분류 214개의 데이터에서 임의로 훈련 집합과 테스트 집합을 설정 분류한 결과(데이터 프레임)와 성능 평가까지 진행 제출 방법 과제는 ssw5176@kangwon.ac.kr로 제출 제목 양식: [학번][이름]HW#4 과제에서 설정한 훈련 및 테스트 집합과 분류한 결과 및 성능 평과 결과를 캡쳐 제출 기한은 다음 실습 수업시간 전까지이며, 그 후에 제출할 경우 20% 감점