[SKlearn]모델 정리

신동혁·2022년 9월 17일
0

SKlearn

목록 보기
3/3

1.K-최근접 이웃 (K-Nearest Neighbors, KNN)

  • 분류(Classification)와 회귀(Regression) 를 모두 지원한다.
  • 예측하려는 데이터와 input 데이터들 간의 거리를 측정해 가장 가까운 K개의 데이터셋의 레이블을 참조해 분류/예측한다.
  • 학습시 단순히 input 데이터들을 저장만 하며 예측 시점에 거리를 계산한다.
    학습은 빠르지만 예측시 시간이 많이 걸린다.
  • KNN은 서비스할 모델을 구현할때 보다는 복잡한 알고리즘을 적용해 보기 전에 확인용 또는 base line을 잡기 위한 모델로 사용한다.
  • Feature가 너무 많은 경우대부분의 값이 0으로 구성된(희소-sparse) 데이터셋에서 성능이 아주 나쁘다
  • Feature간의 값의 단위가 다르면 작은 단위의 Feature에 영향을 많이 받게 되므로 전처리로 Feature Scaling작업이 필요하다.

1-1) 거리를 계산하는 방식

KNN모델에서 거리를 계산하는 방식은 두가지 존재한다.

  • 유클리디안 거리(Euclidean_distance) : 두 점 사이의 직접적인 거리를 계산한다. x좌표의 차이값과 y좌표의 차이값을 피타고라스 정리에 넣어서 빗변의 거리를 계산한다.
  • 맨하탄 거리 (Manhattan distance) : x좌표의 차이값과 y좌표의 차이값을 더한 값이다. 즉, 직각으로 움직이는 거리를 의미한다.

1-2) 주요 하이퍼파라미터

  • n_neighbors = K : K가 작을 수록 모델이 복잡해져 과대적합이 일어나고 너무 크면 단순해져 성능이 나빠진다.(과소적합) n_neighbors는 Feature수의 제곱근 정도를 지정할 때 성능이 좋은 것으로 알려져 있다.

2.Ensemble(앙상블)

  • 하나의 모델만을 학습시켜 사용하지 않고 여러 모델을 학습시켜 결합하는 방식으로 문제를 해결하는 방식
  • 개별로 학습한 여러 모델을 조합해 과적합을 막고 일반화 성능을 향상시킬 수 있다.
  • 개별 모델의 성능이 확보되지 않을 때 성능향상에 도움될 수 있다.

2-1) 모델 결합 방식

  1. 투표방식
  • 여러개의 추정기(Estimator)가 낸 결과들을 투표를 통해 최종 결과를 내는 방식
  • 종류
    1. Bagging : 같은 유형의 알고리즘들을 조합하되 각각 학습하는 데이터를 다르게 한다.
      • Random Forest가 Bagging을 기반으로 한다.
    2. Voting : 서로 다른 종류의 알고리즘들을 결합한다.
  1. 부스팅(Boosting)
  • 약한 학습기(Weak Learner)들을 결합해서 보다 정확하고 강력한 학습기(Strong Learner)를 만든다.
  • 각 약한 학습기들은 순서대로 일을 하며 뒤의 학습기들은 앞의 학습기가 찾지 못한 부분을 추가적으로 찾는다.

2-2) 모델 종류

3.Random Forest(랜덤포레스트)

  • Bagging 방식의 앙상블 모델
  • Decision Tree를 기반으로 한다.
  • 다수의 Decision Tree를 사용해서 성능을 올린 앙상블 알고리즘의 하나
    • N개의 Decision Tree 생성하고 입력데이터를 각각 추론하게 한 뒤 가장 많이 나온 추론결과를 최종결과로 결정한다.
  • 처리속도가 빠르며 성능도 높은 모델로 알려져 있다.
  • Random: 학습할 때 Train dataset을 random하게 sampling한다.(DecisionTree 모델만 사용하되 학습하는 데이터를 다르게 하는 Bagging 방식)
  • Forest: 여러개의 (Decision) Tree 모델들을 앙상블한다.

3-1) 주요 하이퍼파라미터

  • n_estimators
    • DecisionTree 모델의 개수
    • 학습할 시간과 메모리가 허용하는 범위에서 클수록 좋다.
  • max_features
    • 각 트리에서 선택할 feature의 개수
    • 클수록 각 트리간의 feature 차이가 크고 작을 수록 차이가 적게 나게 된다.
  • DecisionTree의 하이퍼파라미터들
    • Tree의 최대 깊이, 가지를 치기 위한 최소 샘플 수 등 Decision Tree에서 과적합을 막기 위한 파라미터들을 랜덤 포레스트에 적용할 수 있다.

4.Support Vector Machine (SVM)

  • 딥러닝 이전에 분류에서 뛰어난 성능으로 많이 사용되었던 분류 모델
  • 하나의 분류 그룹을 다른 그룹과 분리하는 최적의 경계를 찾아내는 알고리즘
  • 중간 크기의 데이터셋과 특성이(Feature) 많은 복잡한 데이터셋에서 성능이 좋은 것으로 알려져있다.

4-1) 주요 하이퍼파라미터

  • C
    • Outlier 를 무시하는 비율을 설정하는 하이퍼파라미터
    • 노이즈가 있는 데이터나 선형적으로 분리 되지 않는 경우 하이퍼파라미터인 C값을 조정해 마진을 변경한다.
    • 기본값 1
    • 파라미터값을 크게주면 제약조건을 강하게 한다.
      • 마진폭이 좁아져 마진 오류가 작아지나 Overfitting이 일어날 가능성이 크다.
    • 파라미터값을 작게 주면 제약조건을 약하게 한다.
      • 마진폭이 넓어져 마진 오류가 커진다.
      • 훈련데이터에서는 성능이 안좋아지나 일반화(generalization)되어 테스트 데이터의 성능이 올라간다. 그러나 underfitting 이 날 가능성이 있다.
  • gamma
    • 방사기저함수의 γ\gamma로 규제의 역할을 한다.
      • 큰 값일수록 과적합이 날 가능성이 높아진다.
    • 모델이 과대적합일 경우 값을 감소시키고, 과소적합일 경우 값을 증가시킨다.
profile
개발취준생

0개의 댓글