• 검색 결과가 없습니다.

제3장분류문제장분류문제

N/A
N/A
Protected

Academic year: 2022

Share "제3장분류문제장분류문제"

Copied!
43
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

패턴인식 특론

청주대학교 대학원 전자공학과 한철수

제3장 분류 문제

(2)

목차

2

• 분류 문제

• 첫 분류기

• 학습 데이터와 테스트 데이터

• 분류기 성능 평가

• 여러 가지 분류기

• 마무리

(3)

머신 러닝을 둘러싼 환경

3

• 머신 러닝에서 분류 문제는 지도 학습의 하나로 자리매김하였 음.

• 지도 학습 데이터(정답이 있는 데이터, 교사 데이터)를 학습하 고, 미지의 데이터를 분류하는 것을 목표로 함.

• 예‒ 색상과 크기로 과일을 분류

(4)

첫 분류기

4

• scikit-learn을 사용해 실제로 분류기를 만들어 봅시다.

• digits 데이터셋

‒ scikit-learn에 포함된 손으로 쓴 숫자 데이터셋

‒ 0~9까지 손으로 쓴 숫자 이미지 데이터로 구성

‒ 이미지 데이터는 8x8 픽셀 흑백 이미지로, 1797장이 들어 있음.

(5)

이미지 데이터 읽기

5

• 3과 8을 분류하는 분류기를 만들어 봅시다.

(6)

분류기 만들고 학습

6

• 전체 숫자 이미지 데이터의 60%만 학습에 사용

(7)

분류기 성능 평가

7

• 분류기 성능 평가에는 학습에 사용하지 않은 나머지 40%의 데이터를 사용

• 정답률 결과

(8)

질문

8

Q&A

(9)

학습 데이터와 테스트 데이터

9

• 학습 데이터와 테스트 데이터를 분리하고 사용해야 함.

‒ 학습 데이터

• 학습에 사용하는 데이터

‒ 테스트 데이터

• 학습 결과로 얻은 분류기를 평가하는데 사용하는 데이터

• 주의 사항

‒ 학습 데이터의 분포가 한쪽으로 치우쳐 있다면, 데이터 전체에 대한 성 능 높은 분류기를 얻을 수 없음.

‒ 테스트 데이터의 분포가 한쪽으로 치우쳐 있다면, 분류기의 성능을 올 바르게 평가할 수 없음.

‒ 학습 데이터를 테스트 데이터로서 사용하면 안됨.

• 미지의 데이터를 분류하는 능력(일반화 성능)이 떨어지게 됨.

(10)

홀드 아웃과 교차 검증

10

• 홀드 아웃 검증

‒ 전체 데이터 중에서 테스트 데이터를 분리하고, 나머지를 학습 데이터 로 사용하는 방법

• k-분할 교차 검증

‒ 전체 데이터를 k개로 분할하고 그중 1개를 테스트 데이터, 나머지 k-1 개를 학습 데이터로 학습하는 방법

‒ 이 때, 테스트 데이터를 변경하면서 학습과 검증을 k번 반복함.

‒ k번 검증한 결과를 평균하여 사용하는 경우가 많음.

(11)

분류기 성능 평가 (1/2)

11

• 혼동 행렬(confusion matrix)

• 분류기의 주요 성능 지표

(12)

분류기 성능 평가 (2/2)

12

• 정답률(Accuracy)

‒ 전체 예측 중에서 정답이 차지하는 비율

‒ 분류기 단위의 지표

• 적합률(Precision)

‒ 분류기가 Positive로 예측했을 때 진짜로 Positive한 비율

‒ 레이블 단위의 지표

• 재현율(Recall)

‒ 실제로 Positive인 것을 얼마나 Positive로 예측했는지 나타내는 비율

‒ 레이블 단위의 지표

• F 값(F-measure)

‒ 적합률과 재현율의 조화 평균으로, 지표 2개를 종합적으로 볼 수 있음.

(13)

손으로 쓴 숫자 이미지 분류기의 성능

13

예측

“3” “8”

실제

“3” 62 13

“8” 4 64

(14)

성능 지표의 성질과 관계

14

• 정답률

‒ 분류기 단위의 지표

‒ 대략적인 분류기 성능을 보는데 적합함.

‒ 레이블간 샘플 개수에 큰 차이가 있으면 잘못된 값이 나오기도 함.

• 적합률과 재현율은 트레이드 오프 관계에 있음.

‒ 확실한 값만 분류하고자 하면 재현율이 낮아짐.

‒ 애매한 값도 포함시키면 적합률이 낮아짐.

• 적합률과 재현율은 의미가 다르므로 과제에 따라 어느 것을 중 시해야 할지 고민해야 함.

‒ 종합적인 분류 성능을 판단하고 싶을 때는 F 값을 사용함.

(15)

질문

15

Q&A

(16)

여러 가지 분류기

16

• 결정 트리

• 랜덤 포레스트

• 에이다 부스트

• 서포트 벡터 머신

(17)

결정 트리 (1/2)

17

• 결정 트리는 트리 구조를 이용해 데이터를 여러 등급으로 분류 하는 지도 학습 알고리즘의 하나임.

• 예

<동물의 종류>

<트리 모델>

(18)

결정 트리 (2/2)

18

• 트리 모델은 분류를 위한 분기 처리의 모임임.

‒ 각 분기에서는 분류 대상의 데이터 속성에 따라서 분류함.

• 결정 트리의 학습에서는 학습 데이터를 이용해 트리 모델을 생 성함.

• 분기의 기준에 따른 결정 트리의 분류 방법

‒ CART

• 집합의 불순도

‒ C4.5/C5.0

• 정보량(엔트로피)

(19)

결정 트리의 장단점

19

• 결정 트리의 장점

‒ 분류 규칙을 트리 모델로 가시화할 수 있어서 분류 결과의 해석이 비교 적 쉬움.

‒ 생성한 분류 규칙도 편집할 수 있음.

‒ 학습을 위한 계산 비용이 작음.

• 결정 트리의 단점

‒ 과적합하는 경향이 있음.

‒ 취급하는 데이터 특성에 따라서는 트리 모델을 생성하기 어려울 때도 있음.

(20)

분류기 생성

20

• 결정 트리를 이용해 손으로 쓴 숫자 3과 8의 이미지 데이터를 분류하는 분류기를 만들어 봅시다.

• 파라미터 지정

‒ max_depth

• 트리 모델의 최대 깊이

‒ criterion

• 분기의 기준 (기본 값: “gini”)

(21)

분류기 성능 평가

21

(22)

트리 모델의 예

22

(23)

결정 트리 마무리

23

• 결정 트리는 트리 모델을 이용해 분류하기 때문에 분류 방법을 해석하기가 비교적 쉬움.

• 그러나 결정 트리는 과적합하는 경향이 있어서, 결정 트리만 단독으로 이용하지 않고, 앙상블 학습을 조합해 사용할 때가 많음.

(24)

랜덤 포레스트

24

• 랜덤 포레스트는 앙상블 학습법의 하나임.

• 앙상블 학습

‒ 몇 가지 성능이 낮은 분류기(약한 학습기)를 조합해 성능이 높은 분류 기를 만드는 방법임.

‒ 약한 학습기 알고리즘은 정해진 것이 없으므로 적절히 선택해야 함.

‒ 앙상블 학습 결과는 약한 학습기의 결과 값 중 다수결로 결정함.

‒ 약한 학습기의 생성 방법에 따른 분류

• 배깅

‒ 랜덤 포레스트

• 부스팅

‒ 에이다 부스트

(25)

배깅

25

• 학습 데이터를 중복이나 누락을 허용해 여러 개의 그룹으로 분 할하고, 그룹마다 약한 학습기를 각각 생성하는 방법임.

• 분류할 때는 각각의 약한 학습기의 출력 결과를 다수결로 취합 함.

• 즉, 일부 학습 데이터 그룹에 특화된 약한 학습기를 조합해 성 능 좋은 분류기를 만듦.

(26)

부스팅

26

• 약한 학습기를 여러 개 준비하고 가중치가 있는 다수결로 분류 하는 방법임.

• 가중치도 학습에 따라 결정함.

• 난이도가 높은 학습 데이터를 올바르게 분류할 수 있는 약한 학습기의 판별 결과를 중시하도록 가중치를 업데이트해 나감.

(27)

분류하기 쉬운 데이터와 난이도가 높은 데이터

27

(28)

랜덤 포레스트

28

• 앙상블 학습의 배깅으로 분류됨.

• 전체 학습 데이터 중에서 중복이나 누락을 허용하고 학습 데이 터셋을 여러 개 추출하여 여러 개의 결정 트리(약한 학습기)를 생성함.

• 장점‒ 학습과 판별을 빠르게 처리함.

‒ 학습 데이터의 노이즈에 강함.

‒ 분류 외에도 회귀나 클러스터링에 사용할 수 있음.

• 단점‒ 학습 데이터의 개수가 적을 경우 과적합되기도 함.

(29)

분류기 생성

29

• 랜덤 포레스트를 이용해 손으로 쓴 숫자 3과 8의 이미지 데이 터를 분류하는 분류기를 만들어 봅시다.

• 파라미터 지정

‒ n_estimators

• 약한 학습기 개수 (기본 값: 10)

‒ max_depth

• 트리 모델의 최대 깊이

‒ criterion

• 분기의 기준 (기본 값: “gini”)

(30)

분류기 성능 평가

30

(31)

랜덤 포레스트 마무리

31

• 랜덤 포레스트는 앙상블 학습의 배깅으로 분류됨.

• scikit-learn을 사용하면 분류기 생성 알고리즘을 쉽게 변경할 수 있음.

(32)

에이다 부스트

32

• 앙상블 학습의 부스팅으로 분류됨.

• 에이다 부스트의 약한 학습기 알고리즘은 정해져 있지 않으므 로 적절히 선택해야 함.

• 에이다 부스트에서는 난이도가 높은 데이터를 제대로 분류할 수 있는 약한 학습기(weak learner)의 분류 결과를 중시하고 가중치를 더 줌.

• 장점‒ 분류 정밀도가 높음.

• 단점‒ 학습 데이터의 노이즈에 쉽게 영향을 받음.

(33)

분할 난이도

33

(34)

분류기 생성

34

• 에이다 부스트를 이용해 손으로 쓴 숫자 3과 8의 이미지 데이 터를 분류하는 분류기를 만들어 봅시다.

• 이번에는 약한 학습기로 결정 트리를 이용함.

• 파라미터 지정

‒ base_estimator

• 약한 학습기를 지정

‒ n_estimators

• 약한 학습기 개수 (기본 값: 50)

(35)

분류기 성능 평가

35

(36)

에이다 부스트 마무리

36

• 에이다 부스트는 앙상블 학습의 부스팅으로 분류됨.

(37)

서포트 벡터 머신

37

• 서포트 벡터 머신(Support Vector Machine, SVM)은 분류에 도 회귀를 사용할 수 있는 뛰어난 지도 학습 알고리즘임.

• 예‒ 데이터를 2개로 분리하는 직선은 여러 개 선택할 수 있음.

‒ 서포트 벡터 머신에서는 분할선으로부터 근접 샘플 데이터까지 마진의 합을 최대로하는 직선을 가장 좋은 분할선으로 생각함.

<분할 직선> <마진>

(38)

서포트 벡터 머신의 장단점

38

• 장점‒ 학습 데이터의 노이즈에 강함.

‒ 분류 성능이 매우 좋음.

‒ 다른 알고리즘과 비교하여 학습 데이터의 개수도 많이 필요하지 않음.

• 단점‒ 다른 알고리즘과 비교했을 때 분류 속도가 느림.

‒ 기본적으로 두 클래스의 분류가 되므로, 많은 클래스를 분류하려면 서 포트 벡터 머신 분류기를 여러 개 조합해야 함.

(39)

분류기 생성

39

• 서포트 벡터 머신을 이용해 손으로 쓴 숫자 3과 8의 이미지 데 이터를 분류하는 분류기를 만들어 봅시다.

• 파라미터 지정

‒ C

• 페널티 파라미터로서 어느 정도 잘못된 분류를 허용할지 지정함.

• 기본 값: 1.0

‒ gamma

• 큰 값을 설정하면 복잡한 분리 곡면을 지정할 수 있음.

• 거의 평면(0.001)을 지정함.

(40)

분류기 성능 평가

40

(41)

서포트 벡터 머신 마무리

41

• 서포트 벡터 머신은 뛰어난 분류 성능을 보임.

‒ 정밀하게 작업해야 할 때 많이 사용함.

• 처리에 시간이 걸림.

• 정확도보다 처리 속도가 중요하다면 랜덤 포레스트처럼 가볍 고 빠른 알고리즘을 사용하는 편이 좋음.

(42)

마무리

42

• scikit-learn을 사용해 과제를 풀어 보면서 분류 문제를 배웠음.

• scikit-learn으로 분류기를 쉽게 만들 수 있음.

‒ 분류기의 머신 러닝 알고리즘도 쉽게 변경할 수 있음.

• scikit-learn은 분류기 성능을 평가하는 라이브러리를 갖추고 있어서 평가도 쉽게 할 수 있음.

• scikit-learn은 손으로 쓴 숫자 이미지 데이터셋 외에도 몇 가 지 샘플 데이터셋을 더 포함하고 있음.

(43)

질문

43

Q&A

참조

관련 문서

또한 수광량의 변화도 순간적으로 추적할 수 있어, 최 적의 투광 상태를 항상 유지할 수 있도록 투광량 조정 기 능에 새로운 알고리즘을 탑재했습니다(특허

우리는 생체인식정보를 해석할 수 있는 논리적 알고리즘을 탐색하고, 생체정보를 활용할 수 있는 영역을 탐색해 봄으로써 변화할 미래사회를

유전 알고리즘을 적용하여 해결할 수 있는 문제에는 무엇이 있을지 생각하여 글로 작성해 보세요. 유전

인공지능을 통한 예술 작품의 생성 과정을 설명할

적절히 사용하면 내담자의 변화와 성장을 돕는다. 내담자가 지각하지 못하고 직면하기를 회피하며 , 다룰 수 없는 모순을 깨닫도록 돕는다. 자신의

적절한 표본추출 방법을 사용하면 , 표본의 결과는 모집단 특성에 대한 좋은 추정치를 제공할 수 있다.. 적절한 표본추출 방법을 사용하면 , 표본의 결과는 모집단

latitude 검색할 위도 값 Longitude 검색할 경도 값 maxResults 받아올 주소의 수.. 에뮬레이터

종이에 습기를 주어 잉킹을 쉽게 핛