본문 바로가기
공부/POSCO AI-Big Data 아카데미 14기

[POSCO 교육 사전학습] 머신러닝기법과 R프로그래밍 2

by 로디네로 2021. 4. 4.
반응형

 

포스코 포스텍에서 제공하는 청년 AI-BigData 아카데미 과정의 온라인 예습 과정 중 하나인 데이터 과학에 대한 강의를 듣고 정리한 포스팅이다.

 

pabi.smartlearn.io/

 

청년 AI·Big Data 아카데미 온라인 기초과정 (MOOC)

취업 준비생 누구나 POSTECH과 POSCO가 제공하는 무료 온라인 교육 과정에 참여할 수 있습니다.

pabi.smartlearn.io

 


 

저번강의에 이어 이번에는 training 의 기법에 대해 알아보려고 한다.

 

목차는 다음과 같다.

 

k-인접기법과 판별분석

  • k-인접기법1
  • k-인접기법2
  • 판별분석1
  • 판별분석2

 

 


 

 

 

K-인접기법1

이전시간 우리는 Iris 데이터를 분류하고 있었다.

 

학습표본을가지고 분류규칙을 만들어야 한다.

 

K-인접기법이란 영어로 하면 K-nearest neighbor method 로 KNN 이라고 부른다.

 

K개의 가장 가까운 이웃들을 사용하여 분류한다.

 

k를 정하고 새로운 객체인 빨간색이 k에 따라 어디의 범주에 속하는지 정할 수 있게 되는 기법이다.

 

 

최적의 k는 ?

 

k가 너무 크면 데이터의 구조를 파악하기 힘들고 너무 작으면 overfitting 위험이 있다.

 

cross-validation 으로 정확도가 높은 k를 선정해야한다.

 

KNN 장점 : 

  • 단순하고 효율적이다
  • 데이터분산을 추정할 필요가 없다
  • 빠른 훈련단계 

 

KNN 단점 :

  • 모델을 생성하지 않는다
  • 느린 분류 단계
  • 많은 메모리 필요
  • 결측치는 추가 작업이 필요하다.

 


 

 

K-인접기법2

-최적 k 탐색과 가중치 k-인접기법

 

 

최적 k를 탐색 => R언어에서 class 패키지를 이용해 k를 늘려가며 plot 그래프를 그려가며 탐색했다.

 

opencv의 knearest 에서도 할 수 있을 것이다.

 

 

거리에 따라 가중치를 부여하는 알고리즘이 존재

 

R에서 kknn 이라는 추가적인 패키지를 설치하여 그 중 distance 변수를 주어 수행하면 가중치를 부여할 수 있었다.

 

 

 


 

 

판별분석 1

분류의 방법 중 판별분석

 

영어로는 Discriminant Analysis 라고 한다.

 

분류를 어떤 선형식이 가장 잘 구분하는지.. 그 함수를 도출 하는 것이다.

 

  • 선형판별분석 (LDA : 정규분포의 분산-공분산 행렬이 범주에 관계없이 동일한경우)
  • 이차판별분석 (QDA : 정규분포의 분산-공분산 행렬이 범주별로 다른 경우)

 

R언어에서 MASS 패키지를 사용하여 판별분석을 구현할 수 있다.

 

그 중 LDA를 사용하면 사후확률이 구해지고 그 max값의 범주로 할당하여 추정한다

 

 

 


 

 

판별분석 2

- 이차판별분석

 

앞에선 선형판별분석 LDA를 사용하였고 지금은 QDA를 사용 해 볼 것이다.

 

QDA는 선형에 비해 많은 파라미터를 사용하고 높은 유연성을 보인다.

 

R에서 biotools 패키지로 사용할 수 있다.

 

 

선형판별에서와 마찬가지로 사후확률을 구한 후 max 의 범주로 할당한다

 

 

LDA vs QDA 

 

독립변수가 4개일 때의 분석을 진행했다. 

 

무엇이 더 좋을까?

 

공분산 행렬에 따라 QDA를 결정하겠지만 강의에서의 데이터셋은 비슷한 성능을 보였지만

 

특정 분류에서는 QDA가 더 오분류율이 적은것을 볼 수 있었다.

 

 

 

반응형

댓글