220 likes | 544 Views
분류. 2014 년 가을학기 손시운 ( ssw5175@kangwon.ac.kr ) 지도 교수 : 문양세 교수님. 분 류. 분류 (Classification) ( 참조 : 이론 강의 ‘ 데이터 마이닝 개념 ’) 모델 구성 : 주어진 훈련 집합의 레코드들을 사용하여 , 속성 값들을 입력으로 클래스를 출력으로 하는 함수 ( 모델 ) 를 찾는 작업이다 .
E N D
분류 2014년 가을학기 손시운(ssw5175@kangwon.ac.kr) 지도 교수: 문양세 교수님
분류 • 분류 (Classification) (참조: 이론 강의 ‘데이터 마이닝 개념’) • 모델 구성: 주어진 훈련 집합의 레코드들을 사용하여, 속성 값들을 입력으로 클래스를 출력으로 하는 함수(모델)를 찾는 작업이다. • 모델 검증: 테스트 집합의 레코드들을 앞서 구성한 분류 모델에 적용하여 모델의 정확성을 판별한다. 일정 수준의 정확성이 확보되면 모델로서 의미를 가짐 • 모델을 사용한 예측: 아직 분류되지 않은 (즉, 클래스가 부여되지 않은) 레코드를 분류 모델에 적용하여 클래스를 부여함
Example 1: Iris • Datasets: 150개의 Iris 꽃 데이터 • Sepal.Length: 꽃 받침 길이 • Sepal.Width: 꽃 받침 너비 • Petal.Length: 꽃잎 길이 • Petal.Width: 꽃잎 너비 • Species: 화종 • setosa • versicolor • virginica 새로운 Iris 데이터의 종을 파악할 수 있을까?
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에서 로딩
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개에서 나타나므로 ?는 로맨스로 분류
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: 유리의 종류 새로운 유리조각의 종류를 파악할 수 있을까?
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에서 로딩
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: 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% 감점