자격증/ADsP (데이터분석 준전문가)

[데이터분석 준전문가 Day 11/독학] ADsP 5-2 지도학습 정리본

thisisjade 2022. 8. 17. 16:26
728x90

 

3과목 공부시작

 

[지도학습]

  • 예측기법: 회귀분석, 선형모형, 비선형모형
  • 분류기법: 의사결정나무, 서포트 벡터 머신, 판별분석, 로지스틱 회귀분석
  • 학습데이터는 분류 알고리즘을 사용해서 분류모형을 만들고 검증 데이터로 분류모형의 타당성을 확인
  • Train data: 분석모델을 만들기 위해서 사용되는 학습용 데이터
  • Validation data: 분석모델을 검증하기 위한 데이터
  • Test data: 최종 분석모델을 확인하기 위한 결과용 데이터

 

[다중 회귀분석]

  • k개의 독립변수가 종속변수 Y를 종속하는 경우 다중 회귀분석을 사용
  • 전진 선택법: 독립변수 중에서 종속변수에 영향이 가장 큰 변수부터 모형에 포함시키는 방법
  • 후진 제거법: 독립변수를 모두 포함시켜서 모형을 만들고 가장 영향이 적은 변수부터 제거하는 방법
  • 단계별 방법: 전진 선택법에 의해서 변수를 추가, 변수가 추가되고 중요도가 유의수준에 포함되지 않으면 추가한 변수가 제거
  • 다중공선성: 다중 회귀분석에서 독립변수들 사이에 상관관계가 발생하는 현상, 다중공선성이 발생하면 회귀계수에 대한 해석 불가능

 

[K-인접기법]

  • 모델을 생성하지 않고 데이터를 분류하거나 예측할 때 사용하는 방법
  • 비선형 모델
  • KNN은 범주형 데이터를 분류할 수도 있고 연속형 데이터로 예측할 수가 있다.
  • K값을 변경할 때마다 분류가 변경되기 때문에 적정한 K값을 지정하기 위해서 Cross-Validation 및 부트스트랩방법이 있다.
  • Instance-based Learning: 각각의 인스턴스(관측치)를 사용해서 새로운 데이터를 예측할 수가 있다.
  • Memory-based Learning: 모든 학습 데이터를 메모리에 저장하고 예측
  • Lazy Learning: 모델을 만들지 않고 테스트 데이터로 작동하는 알고리즘
  • 거리 값을 계산하는 방법 중에서 가장 많이 사용되는 것은 유클리드의 거리 값

 

- K-인접기법의 장점

  • 간단하면 쉽게 이해 가능
  • 효율적인 방법
  • 표본 수가 많을 때 좋은 분류방법

 

- K-인접기법의 단점

  • 최적 K를 선택하기가 어렵다.
  • 데이터가 많으면 분석속도가 느리다.
  • 표본의 수가 많아야 정확도가 높다.

 

[의사결정나무]

  • 의사결정 규칙을 도표화하고 분류 및 예측을 할 수 있는 데이터마이닝 기법

 

- 분류나무

  • 목표변수가 범주형 변수이다.
  • 분류를 한다.
  • CART(지니지수 사용)
  • C4.5(엔트로피 사용), C5.0
  • CHAID(카이제곱 통계량)

 

- 회귀나무

  • 목표변수가 수치형 변수이다.
  • 예측을 한다.
  • CART

 

- 의사결정나무 장점

  • if~then으로 규칙 생성이 가능하고 이해하기가 쉽다.
  • 설명력이 좋기 때문에 많이 사용

 

[의사결정나무 모형 분석절차]

- 의사결정나무 형성

  • 분석 목적을 정의하고 분석목적에 따라서 분리기준과 정지규칙을 지정해서 의사결정나무를 형성

 

- 가지치기

  • 부적절한 규칙을 가지고 있는 가지를 제거
  • 부적절한 추론규칙을 가지고 있는 가지를 제거
  • 검증용 데이터를 사용해서 모형의 예측을 검토 

 

- 최적 Tree 분류

  • 의사결정나무의 타당성을 평가
  • 검증용 데이터를 사용해서 교차 타당성을 평가

 

- 해석 및 예측

  • 의사결정나무를 해석하고 예측모형을 설정

 

[의사결정규칙]

  • 의사결정나무는 의사결정규칙에 의해서 가지치기를 하면서 수행

 

- 분리기준

  • 목표변수의 분포를 가장 잘 구별해주는 기준으로 종속변수의 분포를 잘 구분하는 가에 대한 지표
  • 의사결정나무에서 가지를 칠 때는 이지분리, 다지분리로 구분되고 이지분리는 CART, 다지분리는 C4.5, CHAID가 된다.

 

- 불순도 알고리즘

  • 얼마나 다양한 범주의 객체가 포함되어 있는지를 수치로 표현한 것이다.
  • 불순도 알고리즘을 사용해서 그룹으로 분할하는 기준이 된다.
  • 지니지수, 엔트로피 지수, 정보이익,, 카이제곱 통계량

 

- 정지규칙

  • 불순도가 떨어지지 않는 경우 분리를 중단
  • 자식노드에 남은 샘플의 수가 너무 적은 경우에 중단

 

- 가지치기

  • 의사결정나무의 깊이가 깊어지면 과적합이 발생
  • 불필요한 마디를 제거

 

[재귀적 분할 의사결정나무 알고리즘]

- CART(Classification And Regression Trees)

  • C4.5와 매우 유사한 방법으로 수치적 분할기준으로 사용해서 트리를 형성
  • 범주형인 경우 지니지수를 사용, 연속형인 경우 분산을 사용해 이진분리
  • 분류나무와 회귀나무에 모두 사용
  • 지니 지수란 불확실성을 의미하고 0에 가까울수록 좋은 것이다. 즉, 0이라는 것은 100%를 모두 맞춘 것
  • 지니 불순도가 0이면 순수도가 가장 높은 것
  • 지니 불순도 그래프는 상호 대칭구조를 가진다.

 

- C4.5

  • 다지분리가 가능하고 범주형 입력변수의 범주 수만큼 분리가 가능
  • 불순도를 측정하기 위해서 엔트로피 지수를 사용

 

- CHAID

  • 명목형, 순서형, 연속형 등 모든 종류의 목표변수와 분류변수를 적용할 수 있는 알고리즘으로 이진트리 구조로 모형을 형성하는 방법을 제공
  • Chi-square 검정 또는 F-검정을 사용해서 데이터를 다지분리하고 변수들 간의 관계는 의사결정트리를 통해서 표현

 

[분류나무]

  • 목표변수가 범주형 변수로 좋음, 나쁨 혹은 우수 및 불량 등으로 만들어진다.

 

[회귀나무]

  • 목표변수의 평균에 기초하여 트리를 형성
  • CART는 평균을 이용하여 집단의 평균을  가지고 구분하기 때문에 Leafnode(단말노드)는 평균 값

 

[랜덤 포레스트]

- 랜덤 포레스트(Random Forest)

  • 과적합 문제를 해결한 알고리즘으로 앙상블 기법을 사용
  • 분석과정에서 다수의 결정트리로부터 분류하거나 평균 예측치를 분석
  • 여러 개의 의사결정나무를 만들고 투표를 통해서 다수결로 결과를 결정
  • 배깅(Bagging)기법 중에 하나
  • 단일 분류 알고리즘인 의사결정나무만을 사용
  • 부트스트랩 기법을 사용해서 여러 개의 샘플 데이터를 추출
  • 최종 결과는 분류일 때는 투표방식을 사용하고 예측일 때는 평균화를 사용

 

- 앙상블(Ensemble)

  • 여러 개의 학습모델을 결합하여 데이터를 분석
  • 여러 개의 분류모델을 활용하여 최적의 모델을 선택하거나 여러 개의 변수를 입력하여 어떤 변수가 가장 좋은 변수인지를 확인
  • Voting: 여러 분류 알고리즘을 사용해서 최적의 분류모델을 사용
  • Bagging, Boosting: 하나의 분류 알고리즘을 여러 번 측정

 

- 투표(Majority Voting)

  • 하나의 훈련세트를 사용하고 여러 개의 분류모델을 사용해서 분석하는 방법

 

- 배깅(Bagging)

  • 하나의 모델을 사용하지만 훈련세트를 여러 개의 샘플로 만들고 알고리즘마다 다른 훈련세트를 사용하는 방법
  • 부트스트랩: 모집단에 대해 가정하지 않고 표본에서 표본데이터를 반복적으로 추출
  • 데이터 추출 시에 중복을 허용하기 때문에 훈련세트에서 다양한 데이터가 추출

 

- 부스팅(Boosting)

  • 샘플을 추출할 때 잘못 분류된 50% 데이터를 재학습
  • AdaBoost는 전체 훈련 세트를 사용하고 잘못 분류된 데이터에 가중치를 적용

 

[서포트 벡터 머신]

  • 초평면을 찾아서 분류 및 회귀분석을 수행
  • 지도학습으로 모든 속성을 사용한 전역적 분류 모형
  • 가장 최적화된 선을 찾는 방법
  • 서포트 벡터 머신은 데이터를 분류할 수 있는 선을 찾고 선형회귀 분석은 데이터를 정확하게 맞출 수 있는 선을 찾는다.

 

- 장점

  • 모델의 정확도가 우수
  • 범주형 및 연속형 데이터를 모두 처리

 

- 단점

  • 데이터가 많으면 속도가 떨어진다.
  • 모델에 대한 해석이 어렵다.

 

- 선형 SVM: 초평면을 기준으로 객체 간에 마진을 최대화 되도록 분류하는 모델

- 비선형 SVM: 비선형패턴은 선형패턴의 Feature space로 변환해서 분류하는 모델

 

- Kernel method

  • Kernel method란, 비선형 경계면을 찾는 방법을 제공
  • 비선형 패턴을 분리하기 위해서 비선형 패턴의 입력공간을 선형패턴의 Feature space로 변환

 

[나이브 베이즈 분류]

  • 데이터를 분류할 때 데이터 셋의 모든 특징들이 독립적이고 동등하다고 가정하고 데이터를 분류

 

- 장점

  • 매우 단순하고 결측 데이터가 있어도 우수
  • 적은 학습 데이터로도 잘 수행
  • 메모리 사용량이 적음
  • 우수한 분류성능 발휘
  • 계산과정의 복잡성이 낮기 때문에 성능이 빠름
  • 예측에 대한 추정된 확률을 얻기 쉬움

 

- 단점

  • 모든 속성을 독립적이고 동등하다는 가정에 의존
  • 변수들이 확률적이고 독립되지 않은 경우에 오류 발생
  • 수치속성으로 구성된 데이터 셋에서는 우수하지 않음
  • 추정된 확률은 예측된 범주보다 신뢰가 떨어짐

 

[주성분 분석]

  • 데이터의 포인트를 가장 잘 구별 해주는 변수인 주성분을 찾는 방법
  • n개의 관측치와 p개의 변수로 구성된 데이터를 상관관계가 없는 k개의 변수로 구성된 데이터로 요약하는 방법
  • 요약된 변수는 모든 X변수들의 선형조합으로 생성
  • 분산을 최대한 보존하는 축을 찾고 그 축에 데이터를 사영(Projection)

 

- 주성분 분석의 특징

  • 주성분은 데이터 포인트가 가장 넓게 분포하는 차원
  • 주성분 분석은 변수를 축소하기 위한 방법
  • PCA는 차원 축소를 통해서 시각화, 압축, 군집화 등을 수행

 

- 주성분 분석

  • 데이터 포인트의 분포는 가장 넓은 차원이 유리하다는 것을 가정으로 한다.

 

- 독립성분 분석

  • 데이터 셋에 존재하는 독립 성분을 찾는다.
  • 즉, 독립 성분에는 데이터의 독특한 정보가 포함되어 있게 된다.

 

[주성분 분석이 필요한 이유]

- 고차원 데이터

  • 변수의 수가 너무 많다.
  • 시각화가 어렵다.
  • 계산의 복잡도가 증가한다.
  • 중요한 변수들만 선택한다.

 

- 주성분 분석의 필요성

  • 불필요한 변수를 제거
  • 변수의 수를 줄여서 시각화
  • 분석모델의 비효율성이 증가
  • 변수의 차원을 축소

 

[주성분 분석기법]

  • 변수선택
  • 변수추출
  • 지도학습과 비지도학습

 

[신경망]

  • 인간의 학습 기능을 모방하는 방법
  • 로지스틱 회귀분석 혹은 다중 회귀분석을 여러 개 연결한 것으로 데이터를 분류하거나 예측할 때 모두 사용
  • 결합함수는: 입력층 또는 은닉층의 마디들을 결합하는 것, 선형함수

 

- 퍼셉트론(1950년대)

  • 하나의 신경 세포와 같은 퍼셉트론 발명
  • 하나의 입력에 대해서 처리하고 결과를 출력

 

- 역전파(1982년대)

  • 결과변수 T가 틀린 경우 가중치를 조정하여 다시 퍼셉트론에 입력하면서 학습을 수행

 

- 신경망의 장점

  • 예측 성능이 우수
  • 변수들 사이의 복잡한 관계를 우수하게 파악
  • 데이터에 잡음이 많아도 좋은 성능

 

- 신경망의 단점

  • 결과에 대한 해석이 어려움
  • 복잡한 학습과정으로 모형 구축에 많은 시간이 걸림
  • 학습을 위해서는 많은 양의 데이터가 필요

 

[퍼셉트론]

  • 다수의 입력값과 가중치를 선형으로 결합
  • 활성화 함수에 따라서 생성되는 출력값이 결정
  • 활성함수는 최종 결과값을 다른 퍼셉트론에게 데이터로 전달할 것인지 전달하지 않을 것인지를 결정하는 것

 

[활성화 함수]

  • 어떤 신호를 입력 받아서 적절한 처리를 하고 출력하는 함수
  • 1이면 다른 퍼셉트론에게 그 결과값을 전달하고 0이면 전달하지 않는다.

 

- Step function

  • 각 부분구간 내에서 상수함수이며 부분구간 경계에서 불연속인 함수

 

- Sigmoid function

  • 항상 0과 1사이의 값만 가질 수 있는 비선형 함수
  • Sigmoid 함수는 0과 1사이의 값을 부드럽게 만들어준다.
  • 로지스틱 회귀분석에 사용

 

- ReLU(Rectified Linear Unit) function

  • 선형함수
  • Sigmoid function의 Gradient Vanishing 문제를 해결하기 위해서 ReLU를 사용
  • Deep Learning에서 많이 사용

 

[신경망의 종류]

- 단층 퍼셉트론

  • 최초의 퍼셉트론은 단층 퍼셉트론으로 N개의 입력에 대한 은닉계층 없이 바로 출력되는 구조

 

- 다층 퍼셉트론

  • 입력계층과 출력계층 사이에 은닉계층이 존재
  • 출력계층에서 softmax함수를 사용하여 가장 큰 값을 알 수 있다.

 

- 딥러닝

  • 딥러닝은 다층 퍼셉트론에서 퍼셉트론을 수천개 이상을 연결하여 학습

 

[역전파 알고리즘(Back-propagation)]

  • 신경망에서 학습이란 예측결과를 찾기 위해 연결강도인 임계치, 가중치를 찾는 것
  • 변동량을 계산하기 위해서 미분을 사용해 비용이 가장 작은 것을 탐색
  • 모멘텀을 어느 정도 기존의 방향을 유지할 것인지를 조정하는 것

 

[신경망 알고리즘 사례]

- 신경망 알고리즘

  • 최종 경과값에 대한 Cut-off는 0.5로 정의
  • 0.5보다 값이 크면 True, 0.5보다 작으면 False
  • 활성화 함수는 Sigmoid함수를 사용

- Back propagation(역전파 알고리즘)

  • 에러를 계산해서 오차를 역추적, 에러를 계산하고 에러를 낮추기위해 임계치와 가중치를 조정해서 다시 입력층으로 입력

 

[신경망의 문제점]

- 대표적 단점

  • 결과에 대한 해석이 어려운 Black box model
  • 학습 완료 시점을 예측 불가
  • 학습이 완료될 때까지 많은 회수의 반복학습을 필요
  • 추가 학습이 발생하면 전체적으로 재학습

 

- 신경망의 포화상태와 과대적합

  • 신경망에서 학습하면 할수록 활성화 함수에서 만들어질 수가 없는 더 큰 결과값을 만들기 위해서 더 큰 가중치를 시도하게 되므로 신경망이 포화가 된다.
  • 과대적합: 분석모델이 훈련 데이터에 잘 맞지만 일반성이 떨어짐, 훈련데이터에 대해서만 높은 성능을 보여줌
  • 과소적합: 분석모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 발생

 

 

 

728x90