Top Banner
데이터 전처리 Data Preprocessing
91

데이터전처리 - SuanLabsuanlab.com/assets/lectures/dp/08.pdf · 2019. 5. 15. · 4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married 60K No 7 Yes Divorced 220K No 8 No Single

Jan 31, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 데이터 전처리Data Preprocessing

  • 08분류(Classification)

  • 목차

    1. 분류개념과종류

    2. 의사결정트리

    3. 의사결정트리구축

    4. 의사결정트리분할

    5. 의사결정트리이슈

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 3

  • 1. 분류 개념과 종류

  • 분류Classification

    ▪레코드의집합(훈련집합training set)에서각레코드는튜플(x, y)로구성되며, 여기서 x는속성집합attribute set이고, y는클래스레이블class label

    ▪ x: 속성attribute, 예측변수predictor, 독립변수independent variable, 입력input

    ▪ y: 클래스class, 응답response, 종속변수dependent variable, 출력output

    ▪각속성집합 x를미리정의된클래스레이블y 중하나에매핑하는모델을학습

    ▪테스트집합test set은학습한모델의정확도를결정하는역할

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 5

    Tan, Pang-Ning. Introduction to data mining. 2018.

    Classification model

    Input:Attribute set

    (x)

    Output:Class label

    (y)

  • 레코드 집합 예제

    Name Body Temperature Skin Cover Gives Birth Aquatic Creature Aerial Creature Has Legs Hibernates Class Label

    human warm-blooded hair yes no no yes no mammal

    python cold-blooded scales no no no no yes reptile

    salmon cold-blooded scales no yes no no no fish

    whale warm-blooded hair yes yes no no no mammal

    frog cold-blooded none no semi no yes yes amphibian

    komodo cold-blooded scales no no no yes no reptile

    dragon

    bat warm-blooded har yes no yes yes yes mammal

    pigeon` warm-blooded feathers no no yes yes no bird

    cat warm-blooded fur yes no no yes no mammal

    leopard cold-blooded scales yes yes no no no fish

    shark

    turtle cold-blooded scales no semi no yes no reptile

    penguin warm-blooded feathers no semi no yes no bird

    porcupine warm-blooded quills yes no no yes yes mammal

    eel cold-blooded scales no yes no no no fish

    salamander cold-blooded none no semi no yes yes amphibian

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 6

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 분류 모델 학습 과정

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 7

    Apply

    Model

    Induction

    Deduction

    Learn

    Model

    Model

    Tid Attrib1 Attrib2 Attrib3 Class

    1 Yes Large 125K No

    2 No Medium 100K No

    3 No Small 70K No

    4 Yes Medium 120K No

    5 No Large 95K Yes

    6 No Medium 60K No

    7 Yes Large 220K No

    8 No Small 85K Yes

    9 No Medium 75K No

    10 No Small 90K Yes 10

    Tid Attrib1 Attrib2 Attrib3 Class

    11 No Small 55K ?

    12 Yes Medium 80K ?

    13 Yes Large 110K ?

    14 No Small 95K ?

    15 No Large 67K ? 10

    Test Set

    Learning

    algorithm

    Training Set

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 분류 모델 평가

    ▪클래스문제를위한혼동행렬confusion matrix ▪정확도와오류율

    정확도=정확한예측개수

    총예측계수=

    𝑓11+𝑓00𝑓11+𝑓10+𝑓01+𝑓00

    오류율=부정확한예측개수

    총예측계수=

    𝑓10+𝑓01𝑓11+𝑓10+𝑓01+𝑓00

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 8

    Predicted Class

    Class = 1 Class = 0

    Actual Class

    Class = 1 𝑓11 𝑓10

    Class = 0 𝑓01 𝑓00

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 분류예제

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 9

    Task Attribute set, x Class label, y

    이메일 메시지 분류 이메일 메시지 헤더 및 내용에서추출한 특징

    스팸 메일 또는 정상 메일

    신용카드트랜잭션 신용카드거래내역에서추출한특징

    정상거래또는비정상거래

    종양 세포 확인 MRI 스캔에서 추출한 특징 악성 또는 양성 세포

    은하계 분류 망원경 이미지에서 추출한 특징 타원형, 나선형 또는 불규칙한모양의 은하

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 분류 기법

    기본 분류기Base Classifiers

    • 의사결정 트리Decision Tree based Methods

    • 규칙 기반Rule-based Methods

    • 인접 이웃Nearest-neighbor

    • 신경망Neural Networks

    • 딥러닝Deep Learning

    • 베이지안Naïve Bayes and Bayesian Belief

    Networks

    • 지지도 벡터 머신Support Vector Machines

    앙상블 분류기Ensemble Classifiers

    • Bagging, 랜덤 포레스트Random

    Forests

    • Boosting, AdaBoost, XGBoost,

    GradientBoost

    • Stacking

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 10

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 2. 의사결정 트리

  • 의사결정트리Decision Tree 예제

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 12

    ID Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    1 Yes Single 125K No

    2 No Married 100K No

    3 No Single 70K No

    4 Yes Married 120K No

    5 No Divorced 95K Yes

    6 No Married 60K No

    7 Yes Divorced 220K No

    8 No Single 85K Yes

    9 No Married 75K No

    10 No Single 90K Yes 10

    Home

    Owner

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    MarriedSingle, Divorced

    < 80K > 80K

    Splitting Attributes

    Training Data Model: Decision Tree

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정트리Decision Tree 예제

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 13

    MarSt

    Home

    Owner

    Income

    YESNO

    NO

    NO

    Yes No

    Married

    Single,

    Divorced

    < 80K > 80K

    동일한 데이터에 대해 하나 이상의 트리가있을 수 있음

    ID Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    1 Yes Single 125K No

    2 No Married 100K No

    3 No Single 70K No

    4 Yes Married 120K No

    5 No Divorced 95K Yes

    6 No Married 60K No

    7 Yes Divorced 220K No

    8 No Single 85K Yes

    9 No Married 75K No

    10 No Single 90K Yes 10

    Training Data

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정 트리 분류 작업

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 14

    Apply

    Model

    Induction

    Deduction

    Learn

    Model

    Model

    Tid Attrib1 Attrib2 Attrib3 Class

    1 Yes Large 125K No

    2 No Medium 100K No

    3 No Small 70K No

    4 Yes Medium 120K No

    5 No Large 95K Yes

    6 No Medium 60K No

    7 Yes Large 220K No

    8 No Small 85K Yes

    9 No Medium 75K No

    10 No Small 90K Yes 10

    Tid Attrib1 Attrib2 Attrib3 Class

    11 No Small 55K ?

    12 Yes Medium 80K ?

    13 Yes Large 110K ?

    14 No Small 95K ?

    15 No Large 67K ? 10

    Test Set

    Learning

    algorithm

    Training Set

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 모델에 테스트 데이터 적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 15

    Home O

    wner

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    MarriedSingle, Divorced

    < 80K > 80K

    Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    No Married 80K ? 10

    Test Data

    Start from the root of tree.

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 모델에 테스트 데이터 적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 16

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    MarriedSingle, Divorced

    < 80K > 80K

    Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    No Married 80K ? 10

    Test Data

    Home O

    wner

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 모델에 테스트 데이터 적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 17

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    MarriedSingle, Divorced

    < 80K > 80K

    Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    No Married 80K ? 10

    Test Data

    Home O

    wner

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 모델에 테스트 데이터 적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 18

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    MarriedSingle, Divorced

    < 80K > 80K

    Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    No Married 80K ? 10

    Test Data

    Home O

    wner

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 모델에 테스트 데이터 적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 19

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    Married Single, Divorced

    < 80K > 80K

    Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    No Married 80K ? 10

    Test Data

    Home O

    wner

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 모델에 테스트 데이터 적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 20

    MarSt

    Income

    YESNO

    NO

    NO

    Yes No

    Married Single, Divorced

    < 80K > 80K

    Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    No Married 80K ? 10

    Test Data

    Assign Defaulted to “No”

    Home O

    wner

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정 트리 분류 작업

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 21

    Apply

    Model

    Induction

    Deduction

    Learn

    Model

    Model

    Tid Attrib1 Attrib2 Attrib3 Class

    1 Yes Large 125K No

    2 No Medium 100K No

    3 No Small 70K No

    4 Yes Medium 120K No

    5 No Large 95K Yes

    6 No Medium 60K No

    7 Yes Large 220K No

    8 No Small 85K Yes

    9 No Medium 75K No

    10 No Small 90K Yes 10

    Tid Attrib1 Attrib2 Attrib3 Class

    11 No Small 55K ?

    12 Yes Medium 80K ?

    13 Yes Large 110K ?

    14 No Small 95K ?

    15 No Large 67K ? 10

    Test Set

    Learning

    algorithm

    Training Set

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 3. 의사결정 트리 구축

  • 의사결정 트리 구축 알고리즘

    ▪ Hunt’s Algorithm

    ▪ ID3Iterative Dichotomiser 3

    ▪ C4.5successor of ID3

    ▪ C5.0successor of ID4

    ▪ CARTClassification And Regression Tree

    ▪ CHAIDCHI-squared Automatic Interaction Detector

    ▪ MARSMultivariate Adaptive Regression Splines

    ▪ SLIQ, SPRINT

    ▪ …

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 23

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • Hunt’s Algorithm 일반적인구조

    ID Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    1 Yes Single 125K No

    2 No Married 100K No

    3 No Single 70K No

    4 Yes Married 120K No

    5 No Divorced 95K Yes

    6 No Married 60K No

    7 Yes Divorced 220K No

    8 No Single 85K Yes

    9 No Married 75K No

    10 No Single 90K Yes 10

    ▪ 𝐷𝑡는노드 𝑡에도달하기위한학습레코드집합

    ▪ 𝐷𝑡가동일한클래스𝑦𝑡에속하는레코드를포함하면 𝑡는 𝑦𝑡로레이블된단말노드

    ▪ 𝐷𝑡가두개이상의클래스에속하는레코드를포함하는경우, 속성테스트attribute test

    를사용하여데이터를더작은부분집합subset으로분리

    ▪각부분집합에대해절차를반복적으로적용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 24

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • Hunt’s Algorithm 일반적인구조

    ID Home Owner

    Marital Status

    Annual Income

    Defaulted Borrower

    1 Yes Single 125K No

    2 No Married 100K No

    3 No Single 70K No

    4 Yes Married 120K No

    5 No Divorced 95K Yes

    6 No Married 60K No

    7 Yes Divorced 220K No

    8 No Single 85K Yes

    9 No Married 75K No

    10 No Single 90K Yes 10

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 25

    (a) (b)

    (c)

    Defaulted = No

    Home

    Owner

    Yes No

    Defaulted = No Defaulted = No

    Yes No

    Marital

    StatusSingle,

    DivorcedMarried

    (d)

    Yes No

    Marital

    StatusSingle,

    DivorcedMarried

    Annual

    Income

    < 80K >= 80K

    Home

    Owner

    Defaulted = No

    Defaulted = NoDefaulted = Yes

    Home

    Owner

    Defaulted = No

    Defaulted = No

    Defaulted = No

    Defaulted = Yes

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정 트리 유도Induction의 설계 이슈

    ▪훈련레코드는어떻게나누어야할까?▪ 테스트조건지정방법–속성유형에따라

    ▪ 테스트조건의우수성평가를위한측정

    ▪분할절차를어떻게중단해야할까?▪ 모든레코드가같은클래스에속하거나동일한속성값을갖는경우분할중지

    ▪ 조기종료early termination

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 26

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 테스트 조건 표현 방법

    ▪속성유형에따라다름

    ▪ 바이너리Binary

    ▪ 명목형Nominal

    ▪ 서열형Ordinal

    ▪ 연속형Continuous

    ▪분할방법의수에따라다름▪ 이진분할Binary split

    ▪ 다중분할Multi-way split

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 27

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 명목형에 대한 테스트 조건

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 28

    ▪이진분할Binary split: 값을두개의하위집합으로나눔

    ▪다중분할Multiple split: 고유한값만큼의파티션사용

    {Single} {Married,

    Divorced}

    Marital

    Status

    {Married} {Single,

    Divorced}

    Marital

    Status

    OR

    OR

    {Single,

    Married}

    Marital

    Status

    {Divorced}

    Marital

    Status

    Single Divorced Married

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 서열형에 대한 테스트 조건

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 29

    ▪이진분할Binary split: 값을두개의하위집합으로나눔 (속성값중순서특성유지)

    ▪다중분할Multiple split: 고유한값만큼의파티션사용

    Large

    Shirt

    Size

    MediumExtra Large

    Small{Medium, Large,

    Extra Large}

    Shirt

    Size

    {Small}{Large,

    Extra Large}

    Shirt

    Size

    {Small,

    Medium}

    {Medium,

    Extra Large}

    Shirt

    Size

    {Small,

    Large}

    순서 속성을위반하는 그룹

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 연속형에 대한 테스트 조건

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 30

    ▪이진분할Binary split: 값을두개의하위집합으로나눔 (속성값중순서특성유지)

    ▪다중분할Multiple split: 고유한값만큼의파티션사용

    Annual

    Income

    > 80K?

    Yes No

    Annual

    Income?

    (i) Binary split (ii) Multi-way split

    < 10K

    [10K,25K) [25K,50K) [50K,80K)

    > 80K

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 연속형 속성의 분할 방법

    ▪서열형속성이되도록이산화Discretization

    ▪ 범위는동등간격버킷, 동등주파수버킷(백분위), 또는클러스터링으로찾을수있음

    ▪ 정적: 시작시점에이산화를한번만적용

    ▪ 동적: 분할이필요할때마다각노드에서반복

    ▪이진결정Binary Decision: (A < v) or (A v)▪ 가능한모든분할을고려하고최상의분할을찾음

    ▪ 더많은컴퓨팅집약가능(아주많은계산이필요)

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 31

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 최상의 분할 결정 방법

    Gender

    C0: 6

    C1: 4

    C0: 4

    C1: 6

    C0: 1

    C1: 3

    C0: 8

    C1: 0

    C0: 1

    C1: 7

    Car

    Type

    C0: 1

    C1: 0

    C0: 1

    C1: 0

    C0: 0

    C1: 1

    Customer

    ID

    ...

    Yes No Family

    Sports

    Luxury c1

    c10

    c20

    C0: 0

    C1: 1...

    c11

    분할 전: class 0 레코드 10개, class 1 레코드 10개

    어떤 테스트 조건이 최고인가?

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 32

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 최상의 분할 결정 방법

    ▪탐욕적Greedy접근: ▪ 순수한클래스분포를가진노드를선호

    ▪노드불순도측정필요:

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 33

    C0: 5

    C1: 5

    C0: 9

    C1: 1

    높은 수준의 불순도 낮은 수준의 불순도

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 4. 의사결정 트리 분할

  • 노드 불순도 측정

    ▪지니계수Gini Index

    𝐺𝐼𝑁𝐼 𝑡 = 1−

    𝑗

    𝑝 𝑗 ȁ 𝑡 2

    ▪엔트로피Entropy

    𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑡 = −

    𝑗

    𝑝 𝑗 ȁ 𝑡 log𝑝 𝑗 ȁ 𝑡

    ▪오분류오류Misclassification error

    𝐸𝑟𝑟𝑜𝑟 𝑡 = 1−max𝑖

    𝑝 𝑖 ȁ 𝑡

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 35

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 최상의 분할 결정 방법

    1. 분할전에불순도측정값 (P) 계산

    2. 분할후에불순도측정값 (M) 계산▪ 각자식노드의불순도측정

    ▪ M은자식들의가중불순도

    3. 가장높은Gain을산출하는속성테스트조건을선택하거나,또는같거나분할후가장낮은불순도측정값 (M)을가지는것을선택𝐺𝑎𝑖𝑛 = 𝑃−𝑀

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 36

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 최상의 분할 결정 방법

    B?

    Yes No

    Node N3 Node N4

    A?

    Yes No

    Node N1 Node N2

    Before Splitting:

    C0 N10

    C1 N11

    C0 N20

    C1 N21

    C0 N30

    C1 N31

    C0 N40

    C1 N41

    C0 N00

    C1 N01

    P

    M11 M12 M21 M22

    M1 M2Gain = P – M1 vs P – M2

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 37

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 불순도 측정: GINI

    ▪주어진노드 𝑡에대한지니계수:

    𝐺𝐼𝑁𝐼 𝑡 = 1−𝑗𝑝 𝑗 𝑡 2

    ▪ 𝑝 𝑗 𝑡 는노드 𝑡에서클래스 𝑗의상대적빈도

    ▪ 레코드가모든클래스에균등하게분배되면𝑀𝑎𝑥𝑖𝑚𝑢𝑚(1−1/𝑛𝑐),가장적은흥미로운정보를암시

    ▪ 모든레코드가하나의클래스에속할때𝑀𝑖𝑛𝑖𝑚𝑢𝑚(0.0), 가장흥미로운정보를의미

    ▪ 2 클래스문제 𝑝,1−𝑝 : 𝐺𝐼𝑁𝐼 = 1−𝑝2− 1−𝑝 2 = 2𝑝(1−𝑝)

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 38

    C1 0

    C2 6

    Gini = 0.000

    C1 1

    C2 5

    Gini = 0.278

    C1 2

    C2 4

    Gini = 0.444

    C1 3

    C2 3

    Gini = 0.500

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 단일 노드의 GINI 계수 계산

    ▪주어진노드 𝑡에대한지니계수:

    𝐺𝐼𝑁𝐼 𝑡 = 1−𝑗𝑝 𝑗 𝑡 2

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 39

    P(C1) = 0/6 = 0 P(C2) = 6/6 = 1

    Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0

    P(C1) = 1/6 P(C2) = 5/6

    Gini = 1 – (1/6)2 – (5/6)2 = 0.278

    P(C1) = 2/6 P(C2) = 4/6

    Gini = 1 – (2/6)2 – (4/6)2 = 0.444

    C1 0

    C2 6

    Gini = 0.000

    C1 1

    C2 5

    Gini = 0.278

    C1 2

    C2 4

    Gini = 0.444

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 노드 컬렉션에 대한 지니 계수 계산

    ▪노드𝑝가𝑘개의파티션(자식)으로분할될때,

    𝐺𝐼𝑁𝐼𝑠𝑝𝑙𝑖𝑡 =

    𝑖=1

    𝑘𝑛𝑖𝑛𝐺𝐼𝑁𝐼(𝑖)

    ▪ 𝑛𝑖 =자식 𝑖의레코드수

    ▪ 𝑛= 부모노드𝑝의레코드수

    ▪자녀들의가중평균Gini 계수를최소화하는속성선택

    ▪지니계수는CART, SLIQ, SPRINT와같은의사결정트리알고리즘에사용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 40

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 이진 속성Binary Attributes: GINI 계수 계산

    ▪두개의파티션으로분할

    ▪파티션의측정효과: 더크고순수한파티션필요

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 41

    B?

    Yes No

    Node N1 Node N2Gini(N1)

    = 1 – (5/6)2 – (1/6)2

    = 0.278

    Gini(N2)

    = 1 – (2/6)2 – (4/6)2

    = 0.444

    Weighted Gini of N1 N2

    = 6/12 * 0.278 +

    6/12 * 0.444

    = 0.361

    Gain = 0.486 – 0.361 = 0.125

    N1 N2

    C1 5 2

    C2 1 4

    Gini = 0.361

    Parent

    C1 7

    C2 5

    Gini = 0.486

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 범주 속성Categorical Attributes: GINI 계수 계산

    ▪각고유값에대해데이터집합의각클래스에대한개수수집

    ▪의사결정에카운트매트릭스사용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 42

    CarType

    {Sports, Luxury}

    {Family}

    C1 9 1

    C2 7 3

    Gini 0.468

    CarType

    {Sports}

    {Family,Luxury}

    C1 8 2

    C2 0 10

    Gini 0.167

    CarType

    Family Sports Luxury

    C1 1 8 1

    C2 3 0 7

    Gini 0.163

    Multi-way split Two-way split

    (find best partition of values)

    어느 것이 가장 좋은가?

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 연속 속성Continuous Attributes: GINI 계수 계산

    ▪하나의값에기반한이진결정사용

    ▪분할가치에대한몇가지선택사항

    ▪ 가능한분할값의수= 고유값의수

    ▪각분할값에는연관된카운트행렬을가짐

    ▪ 각파티션의클래스수, 𝐴 < 𝑣및𝐴 ≥ 𝑣

    ▪가장좋은 𝑣를선택하는간단한방법

    ▪ 각𝑣에대해데이터베이스를스캔하여카운트매트릭스를수집하고Gini 인덱스계산

    ▪ 계산상비효율적! 일의반복

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 43

    IDHome Owner

    MaritalStatus

    AnnualIncome

    Defaulted

    1 Yes Single 125K No

    2 No Married 100K No

    3 No Single 70K No

    4 Yes Married 120K No

    5 No Divorced 95K Yes

    6 No Married 60K No

    7 Yes Divorced 220K No

    8 No Single 85K Yes

    9 No Married 75K No

    10 No Single 90K Yes

    ≤ 80 > 80

    Defaulted Yes 0 3

    Defaulted No 3 4

    Annual Income ?

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • Cheat No No No Yes Yes Yes No No No No

    Annual Income

    60 70 75 85 90 95 100 120 125 220

    55 65 72 80 87 92 97 110 122 172 230

    Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

    No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

    Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

    연속 속성Continuous Attributes: GINI 계수 계산

    ▪각속성에대한효율적인계산을위함

    ▪값에대한속성정렬

    ▪선형적으로이값을스캔하고매번메트릭스를업데이트하며GINI 계수계산

    ▪최소의GINI 계수를가진분할위치를선택

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 44

    Split Positions

    Sorted Values

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 분순도 측정: 엔트로피Entropy

    ▪주어진노드 𝑡에서엔트로피Entropy:

    𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑡 = −

    𝑗

    𝑝 𝑗 𝑡 log𝑝 𝑗 𝑡

    ▪ 𝑝 𝑗 𝑡 는노드 𝑡에서클래스 𝑗의상대적빈도

    ▪ 레코드가모든클래스에균등하게분배되면𝑀𝑎𝑥𝑖𝑚𝑢𝑚(log𝑛𝑐),최소한의정보를의미

    ▪ 모든레코드가하나의클래스에속할때𝑀𝑖𝑛𝑖𝑚𝑢𝑚(0.0),많은정보를의미

    ▪엔트로피기반계산은GINI 인덱스계산과매우유사

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 45

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 단일 노드의 엔트로피 계산

    ▪주어진노드 𝑡에서엔트로피Entropy:

    𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑡 = −

    𝑗

    𝑝 𝑗 𝑡 log𝑝 𝑗 𝑡

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 46

    P(C1) = 0/6 = 0 P(C2) = 6/6 = 1

    Entropy = – 0 log 0 – 1 log 1 = – 0 – 0 = 0

    P(C1) = 1/6 P(C2) = 5/6

    Entropy = – (1/6) log2 (1/6) – (5/6) log2 (1/6) = 0.65

    P(C1) = 2/6 P(C2) = 4/6

    Entropy = – (2/6) log2 (2/6) – (4/6) log2 (4/6) = 0.92

    C1 0

    C2 6

    C1 1

    C2 5

    C1 2

    C2 4

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 분할 후 정보를 얻는 방법

    ▪정보획득Information Gain:

    𝐺𝐴𝐼𝑁𝑠𝑝𝑙𝑖𝑡 = 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑝 −

    𝑖=1

    𝑘𝑛𝑖𝑛𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑖)

    ▪ 부모노드𝑝는𝑘개의파티션으로분할

    ▪ 𝑛𝑖는파티션 𝑖에서레코드의수

    ▪가장큰감성을달성하기위한분할선택 (GAIN을최대화)

    ▪ ID3와C4.5 의사결정알고리즘을사용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 47

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 많은 파티션 수의 문제

    ▪노드불순도측정은각분할은작지만순수한많은수의분할을초래하도록하는분할을선호하는경향이있음▪ 모든어린이에대한엔트로피가0이기때문에고객 ID는가장높은정보획득률을기짐

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 48

    Gender

    C0: 6

    C1: 4

    C0: 4

    C1: 6

    C0: 1

    C1: 3

    C0: 8

    C1: 0

    C0: 1

    C1: 7

    Car

    Type

    C0: 1

    C1: 0

    C0: 1

    C1: 0

    C0: 0

    C1: 1

    Customer

    ID

    ...

    Yes No Family

    Sports

    Luxury c1

    c10

    c20

    C0: 0

    C1: 1...

    c11

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • Gain 비율

    ▪ Gain 비율:

    𝐺𝑎𝑖𝑛𝑅𝐴𝑇𝐼𝑂𝑠𝑝𝑙𝑖𝑡 =𝐺𝐴𝐼𝑁𝑆𝑝𝑙𝑖𝑡𝑆𝑝𝑙𝑖𝑡𝐼𝑁𝐹𝑂

    𝑆𝑝𝑙𝑖𝑡𝐼𝑁𝐹𝑂 = −

    𝑖=1

    𝑘𝑛𝑖𝑛log

    𝑛𝑖𝑛

    ▪ 부모노드𝑝는𝑘개의파티션으로분할

    ▪ 𝑛𝑖는파티션 𝑖에있는레코드의수

    ▪분할(SplitINFO)의엔트로피정보이득을조정

    ▪높은엔트로피파티셔닝(작은파티셔닝이많음)은불이익을받음

    ▪ C4.5 알고리즘에서사용

    ▪정보이득의단점을극복하도록설계

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 49

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • Gain 비율

    ▪ Gain 비율:

    𝐺𝑎𝑖𝑛𝑅𝐴𝑇𝐼𝑂𝑠𝑝𝑙𝑖𝑡 =𝐺𝐴𝐼𝑁𝑆𝑝𝑙𝑖𝑡𝑆𝑝𝑙𝑖𝑡𝐼𝑁𝐹𝑂

    𝑆𝑝𝑙𝑖𝑡𝐼𝑁𝐹𝑂 = −

    𝑖=1

    𝑘𝑛𝑖𝑛log

    𝑛𝑖𝑛

    ▪ 부모노드𝑝는𝑘개의파티션으로분할

    ▪ 𝑛𝑖는파티션 𝑖에있는레코드의수

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 50

    CarType

    {Sports, Luxury}

    {Family}

    C1 9 1

    C2 7 3

    Gini 0.468

    CarType

    {Sports}

    {Family,Luxury}

    C1 8 2

    C2 0 10

    Gini 0.167

    CarType

    Family Sports Luxury

    C1 1 8 1

    C2 3 0 7

    Gini 0.163

    SplitINFO = 1.52 SplitINFO = 0.72 SplitINFO = 0.97

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 불순도 측정: 분류 오류Classification Error

    ▪노드 𝑡에서의분류오류:𝐸𝑟𝑟𝑜𝑟 𝑡 = 1−max

    𝑖𝑃 𝑖 𝑡

    ▪ 레코드가모든클래스에균등하게분배되면𝑀𝑎𝑥𝑖𝑚𝑢𝑚(1−1/𝑛𝑐),가장적은흥미로운정보를암시

    ▪ 모든레코드가하나의클래스에속할때𝑀𝑖𝑛𝑖𝑚𝑢𝑚(0), 가장흥미로운정보를의미

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 51

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 불순도 측정: 분류 오류Classification Error

    ▪노드 𝑡에서의분류오류:𝐸𝑟𝑟𝑜𝑟 𝑡 = 1−max

    𝑖𝑃 𝑖 𝑡

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 52

    P(C1) = 0/6 = 0 P(C2) = 6/6 = 1

    Error = 1 – max (0, 1) = 1 – 1 = 0

    P(C1) = 1/6 P(C2) = 5/6

    Error = 1 – max (1/6, 5/6) = 1 – 5/6 = 1/6

    P(C1) = 2/6 P(C2) = 4/6

    Error = 1 – max (2/6, 4/6) = 1 – 4/6 = 1/3

    C1 0

    C2 6

    C1 1

    C2 5

    C1 2

    C2 4

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 불순도 측정 비교

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 53

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 오분류 오류Misclassification Error vs 지니 계수Gini Index

    A?

    Yes No

    Node N1 Node N2

    Gini(N1)

    = 1 – (3/3)2 – (0/3)2

    = 0

    Gini(N2)

    = 1 – (4/7)2 – (3/7)2

    = 0.489

    Gini(Children)

    = 3/10 * 0

    + 7/10 * 0.489

    = 0.342

    지니 계수는 향상되지만 오류는 동일하게 유지

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 54

    N1 N2

    C1 3 4

    C2 0 3

    Gini = 0.342

    Parent

    C1 7

    C2 3

    Gini = 0.42

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 오분류 오류Misclassification Error vs 지니 계수Gini Index

    A?

    Yes No

    Node N1 Node N2

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 55

    N1 N2

    C1 3 4

    C2 0 3

    Gini = 0.342

    Parent

    C1 7

    C2 3

    Gini = 0.42

    N1 N2

    C1 3 4

    C2 1 2

    Gini = 0.416

    3가지 경우 모두 오분류 오류 = 0.3

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 5. 의사결정 트리 이슈

  • 의사결정 트리 기반 분류

    ▪장점Advantages:▪ 저렴하게제작가능

    ▪ 알수없는레코드분류시매우빠름

    ▪ 작은크기의트리가쉽게해석

    ▪ 잡음에강함 (특히오버피팅을피하는방법이사용되는경우)

    ▪ 중복되거나관련없는속성을쉽게처리할수있음 (속성이상호작용을하지않는한)

    ▪단점Disadvantages: ▪ 가능한의사결정트리의공간은기하급수적으로큼

    ▪ 탐욕적접근방법으로는최고의나무를찾을수없음

    ▪ 속성들간의상호작용은고려하지않음

    ▪ 단일속성만고려한의사결정

    ▪ 각의사결정경계에는하나의속성만포함

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 57

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정 트리 이슈

    ▪과적합Overfitting

    ▪ 일반적으로트리가너무크고자세하게형성되어, 오히려정확도가떨어지는문제

    ▪ 훈련집합에과적합하게생성되다보니, 테스트집합이나실제분류되지않은데이터에대해서는큰에러가발생하는문제

    ▪누락값Missing Values

    ▪ 누락값이있는경우, 부정확한트리가구축됨

    ▪분류비용Costs of Classification

    ▪ 대용량데이터집합, 고차원데이터, 복잡한데이터의경우, 분류에많은시간이걸림

    ▪ 정확도높은의사결정트리를생성하기위해서많은비용이요구됨

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 58

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정 경계가 노이즈로 왜곡

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 59

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 상호 작용 처리

    + : 1000 instances

    o : 1000 instances

    균일한분포에서생성된잡음이있는속성으로 Z 추가

    Y

    Z

    Y

    Z

    X

    Entropy(X) : 0.99

    Entropy(Y) : 0.99

    Entropy(Z) : 0.98

    분할을 위해 속성Z 선택

    X

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 60

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 단일 속성 기반 결정 경계의 한계

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 61

    양쪽 +와 o 클래스는각각중심이 (8,8)과 (12,12)인왜곡된가우시안에의해생성

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 6. 과적합

  • 분류 오류

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 63

    Tan, Pang-Ning. Introduction to data mining. 2018.

    ▪학습오류 (명백한오류): 학습집합training set에서비롯된오류

    ▪테스트오류: 테스트집합test set에서비롯된오류

    ▪일반화오류: 동일한분포의레코드를무작위로선택하는것보다는예상된오류

  • 데이터 집합 예제

    ▪두클래스문제▪ + : 5200 인스턴스

    ▪ (10, 10)에중심을둔가우시안Gaussian에생성된5000개인스턴스

    ▪ 200개의노이즈인스턴스

    ▪ o : 5200 인스턴스

    ▪ 균일한분포로생성

    ▪학습을위해 10% 데이터사용

    ▪테스트를위해 90% 데이터사용

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 64

    Tan, Pang-Ning. Introduction to data mining. 2018.

  • 의사결정 트리의 노드 수 증가Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 65

  • 의사결정 트리 (노드 4개)

    Decision Tree

    Decision boundaries on Training data

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 66

  • 의사결정 트리 (노드 50개)

    Decision Tree

    Decision boundaries on Training data

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 67

  • 어떤 트리가 더 좋은가?

    Decision Tree with 4 nodes

    Decision Tree with 50 nodes

    Which tree is better ?

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 68

  • 모델 과적합

    언더피팅Underfitting: 모델이 너무 단순하면, 학습 및 테스트 오류가 모두 큼

    오버피팅(과적합)Overfitting: 모델이 너무 복잡하면, 학습오류는 적지만 테스트 오류가 큼

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 69

  • 모델 과적합

    Decision Tree with 50 nodesDecision Tree with 50 nodes

    • 학습 데이터가 대표성under-representative가 낮을 경우, 테스트 오류가 증가하고 노드수가 증가하면 학습 오류는 감소

    • 학습 데이터의 크기를 늘리면 지정된 노드 수에서 학습 오류와 테스트 오류의 차이가 줄어듬

    데이터인스턴스의 수를두배로사용

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 70

  • 모델 과적합의 이유

    ▪제한된학습규모

    ▪높은모델의복잡성

    ▪ 다중비교절차

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 71

  • 다중 비교 절차 효과

    ▪향후 10 거래일동안주식시장이상승/하락할것인가를예측하는작업

    ▪임의추측:𝑃 𝑐𝑜𝑟𝑟𝑒𝑐𝑡 = 0.5

    ▪ 10개의임의추측을연속적으로생성:

    𝑃 #𝑐𝑜𝑟𝑟𝑒𝑐𝑡 ≥ 8 =

    108

    + 109

    + 1010

    210= 0.0547

    Day 1 Up

    Day 2 Down

    Day 3 Down

    Day 4 Up

    Day 5 Down

    Day 6 Down

    Day 7 Up

    Day 8 Up

    Day 9 Up

    Day 10 Down

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 72

  • 다중 비교 절차 효과

    ▪접근▪ 애널리스트50명확보

    ▪ 각분석가는10가지임의추측

    ▪ 가장정확한예측을하는분석가선택

    ▪적어도한명의분석가가적어도 8번의정확한예측을내릴확률𝑃 #𝑐𝑜𝑟𝑟𝑒𝑐𝑡 ≥ 8 = 1− 1−0.0547 50 = 0.9399

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 73

  • 다중 비교 절차 효과

    ▪많은알고리즘은다음과같은탐욕적전략을사용▪ 초기모델: M

    ▪ 대안모델: 𝑀′ =𝑀∪𝛾, 여기서𝛾는모델에추가되는구성요소 (예: 의사결정트리의테스트조건)

    ▪ 개선된경우𝑀′을유지, ∆ 𝑀.𝑀′ > 𝛼

    ▪대체구성요소집합 Γ = 𝛾1, 𝛾2,… ,𝛾𝑘 에서 𝛾를선택하는경우가종종있음

    ▪많은대안을이용할수있다면, 부적절한구성요소를실수로모델에추가하여모델과적합결과를초래할수있음

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 74

  • 다중 비교 효과 - 예제

    X와 Y와 함께 균일한 분포에서 생성된 추가100개의 노이즈 변수를 특성으로 사용

    학습을 위해 30% 데이터를 사용하고, 테스트를 위해70%를 사용

    특성으로 X와 Y만 사용

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 75

  • 과적합 주의사항

    ▪의사결정트리의과적합된결과는필요한것보다더복잡한트리를가짐

    ▪학습오류로인해이전에없던레코드에서트리가얼마나잘수행되는지예측하기어려움

    ▪일반화오류를추정하는방법필요

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 76

  • 모델 선택

    ▪모델구축중에수행

    ▪목적은과적합을피하기위해모델이지나치게복잡하지않도록보장

    ▪일반화오류추정필요▪ 유효성검사집합사용

    ▪ 모델복잡성결합

    ▪ 통계적경계추정

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 77

  • 모델 선택: 유효성 검사 집합 사용

    ▪학습데이터를두부분을분리▪ 학습집합: 모델생성에사용

    ▪ 유효성검사집합: 일반화오류추정에사용 (유효성검사집합과테스트집합은동일하지않음)

    ▪약점: 학습에사용할수있는데이터가적어짐

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 78

  • 모델 선택: 모델 복잡성 결합

    ▪이론적설명: 오캄의면도날Occam’s Razor

    ▪ 유사한일반화오류를가지는두모델이주어지면, 더복잡한모델보다간단한모델을선호해야함

    ▪ 복잡한모델은실수로데이터에오류가생길가능성이높음

    ▪ 따라서모델을평가할때모델복잡성을포함해야함

    ▪ 𝐺𝑒𝑛.𝐸𝑟𝑟𝑜𝑟 𝑀𝑜𝑑𝑒𝑙 = 𝑇𝑟𝑎𝑖𝑛.𝐸𝑟𝑟𝑜𝑟 𝑀𝑜𝑑𝑒𝑙,𝑇𝑟𝑎𝑖𝑛.𝐷𝑎𝑡𝑎 +𝛼 ×𝐶𝑜𝑚𝑝𝑙𝑒𝑥𝑖𝑡𝑦(𝑀𝑜𝑑𝑒𝑙)

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 79

  • 의사결정 트리의 복잡도 예측

    ▪ 𝑘리프노드를갖는의사결정트리𝑇의비관적인Pessimistic오류추정:

    𝑒𝑟𝑟𝑔𝑒𝑛 𝑇 = 𝑒𝑟𝑟 𝑇 +Ω×𝑘

    𝑁𝑡𝑟𝑎𝑖𝑛

    ▪ 𝑒𝑟𝑟 𝑇 : 모든학습레코드의오류율

    ▪ Ω : trade-off 하이퍼파라미터 (𝛼와유사)

    ▪ 리프노드를추가하는상대적비용

    ▪ 𝑘 : 리프노드개수

    ▪ 𝑁𝑡𝑟𝑎𝑖𝑛: 학습레코드의전체개수

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 80

  • 의사결정 트리의 복잡도 예측: 예제

    +: 5

    -: 2

    +: 1

    -: 4

    +: 3

    -: 0

    +: 3

    -: 6

    +: 3

    -: 0

    +: 0

    -: 5

    +: 3

    -: 1+: 1

    -: 2

    +: 0

    -: 2

    +: 2

    -: 1

    +: 3

    -: 1

    Decision Tree, TL

    Decision Tree, TR

    e(TL) = 4/24

    e(TR) = 6/24

    = 1

    egen(TL) = 4/24 + 1*7/24 = 11/24 = 0.458

    egen(TR) = 6/24 + 1*4/24 = 10/24 = 0.417

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 81

  • 의사결정 트리의 복잡도 예측

    ▪대체예측Resubstitution Estimate:

    ▪일반화오류의낙관적optimistic추정으로학습오류사용

    ▪낙관적오류추정치

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 82

    Tan, Pang-Ning. Introduction to data mining. 2018.

    +: 5

    -: 2

    +: 1

    -: 4

    +: 3

    -: 0

    +: 3

    -: 6

    +: 3

    -: 0

    +: 0

    -: 5

    +: 3

    -: 1+: 1

    -: 2

    +: 0

    -: 2

    +: 2

    -: 1

    +: 3

    -: 1

    Decision Tree, TL

    Decision Tree, TR

    e(TL) = 4/24

    e(TR) = 6/24

  • 최소 설명 길이Minimum Description Length, MDL

    ▪ 𝐶𝑜𝑠𝑡 𝑀𝑜𝑑𝑒𝑙,𝐷𝑎𝑡𝑎 = 𝐶𝑜𝑠𝑡 𝐷𝑎𝑡𝑎 𝑀𝑜𝑑𝑒𝑙 + 𝛼 ×𝐶𝑜𝑠𝑡(𝑀𝑜𝑑𝑒𝑙)

    ▪ 비용은인코딩에필요한비트수

    ▪ 가장값비싼모델을검색

    ▪ 𝐶𝑜𝑠𝑡 𝐷𝑎𝑡𝑎 𝑀𝑜𝑑𝑒𝑙 은오분류오류를인코딩

    ▪ 𝐶𝑜𝑠𝑡(𝑀𝑜𝑑𝑒𝑙)은노드인코딩(자식수) + 분할조건인코딩을사용

    A B

    A?

    B?

    C?

    10

    0

    1

    Yes No

    B1 B2

    C1 C2

    X y

    X1 1

    X2 0

    X3 0

    X4 1

    … …Xn 1

    X y

    X1 ?

    X2 ?

    X3 ?

    X4 ?

    … …Xn ?

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 83

  • 통계적 경계 추정

    +: 5

    -: 2

    +: 2

    -: 1

    +: 3

    -: 1

    𝑒; 𝑁,𝑒,𝛼 =

    𝑒+𝑧𝛼/22

    2𝑁 +𝑧𝛼/22 1− 𝑒

    𝑁 +𝑧𝛼/22

    4𝑁2

    1+𝑧𝛼/22

    𝑁

    분할전e = 2/7, e’(7, 2/7, 0.25) = 0.503

    e’(T) = 7 0.503 = 3.521

    분할후e(TL) = 1/4, e’(4, 1/4, 0.25) = 0.537

    e(TR) = 1/3, e’(3, 1/3, 0.25) = 0.650

    e’(T) = 4 0.537 + 3 0.650 = 4.098

    따라서분할하지않음

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 84

  • 의사결정 트리의 모델 선택

    ▪ Pre-Pruning (조기중지규칙)▪ 완전히자란나무가되기전에알고리즘중지

    ▪ 노드의일반적인중지조건

    ▪ 모든인스턴스가같은클래스에속하면중지

    ▪ 모든속성치가같은경우에정지

    ▪ 보다제한적인조건

    ▪ 인스턴스수가특정사용자가지정한임계값보다작으면중지

    ▪ 인스턴스의클래스분포가사용가능한특징(예: 카이제곱검정)과독립적인경우중지

    ▪ 현재노드를확장해도불순도측정값(예: Gini 또는정보획득)이향상되지않으면중지

    ▪ 추정된일반화오류가일정한임계값이하로떨어지면중지

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 85

  • 의사결정 트리의 모델 선택

    ▪ Post-Pruning(조기중지규칙): 완전한트리를생성한후에가지치기수행▪ 의사결정트리전체를성장

    ▪ 하위트리교체

    ▪ 의사결정트리의노드들을상향식으로잘라냄

    ▪ 잘라낸후일반화오류가개선되면, 하위트리를리프노드로대체

    ▪ 리프노드의클래스레이블은서브트리인스턴스의다수클래스로부터결정

    ▪ 하위트리높이기

    ▪ 하위트리를가장자주사용되는분기로교체

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 86

  • Post-Pruning 예제

    A?

    A1

    A2 A3

    A4

    Class = Yes 20

    Class = No 10

    Error = 10/30

    학습오류 (분할전) = 10/30

    비관적오류 = (10 + 0.5)/30 = 10.5/30

    학습오류 (분할후) = 9/30

    비관적오류 (분할후) = (9 + 4 0.5)/30 = 11/30

    PRUNE!

    Class = Yes 8

    Class = No 4

    Class = Yes 3

    Class = No 4

    Class = Yes 4

    Class = No 1

    Class = Yes 5

    Class = No 1

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 87

  • Post-Pruning 예제

    Simplified Decision Tree:

    depth = 1 :

    | ImagePages 0.1333 :

    | | breadth 6 : class 1

    depth > 1 :

    | MultiAgent = 0: class 0

    | MultiAgent = 1:

    | | totalPages 81 : class 1

    Decision Tree:

    depth = 1 :

    | breadth > 7 : class 1

    | breadth 1 :

    | MultiAgent = 0:

    | | depth > 2 : class 0

    | | depth

  • 모델 평가

    ▪목적: 이전에보이지않는데이터(테스트집합)에대한분류기의성능을평가

    ▪ Holdout

    ▪ 학습을위해𝑘%를예약하고, 테스트를위해 (100−𝑘)%를예약

    ▪ 랜덤서브샘플링: 반복된홀드아웃

    ▪교차검증Cross validation

    ▪ 𝑘개의분리된부분집합으로데이터분할

    ▪ k-fold: 𝑘 −1파티션에서학습하고, 나머지하나는테스트

    ▪ Leave-one-out: 𝑘 = 𝑛

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 89

  • 교차 검증 예제

    ▪ 3-fold 교차검증

    Tan, Pang-Ning. Introduction to data mining. 2018.

    • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 90

  • • 데이터 전처리(Data Preprocessing) - 08 분류(Classification) 91