ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 분류
    빅데이터 분석 2021. 10. 27. 17:01

    지도 학습

    모수(parameter) : 데이터를 사용하여 추정(계산)하는 파라미터이다.

    초모수(hyperparameter) : 모형에서 추정 모수 이외에 분석자가 지정하거나, 최적값을 찾아 주어야 하는 다른 모든 모수

    지도 학습의 유형

    분류(classification) : 타겟이 범주형

    회귀(regression) : 타겟이 연속형, 값(수치)을 예측

    데이터 분할(partition)

    학습은 일반화를 목적으로 한다.

    데이터 분할

    주로 훈련, 테스트 데이터만 이용한다.

    • 훈련 데이터 : 훈련 오차를 최소화, 모형의 모수를 추정한다.
    • 검증 데이터 : 이 데이터가 충분하지 않은 경우 교차검증을 사용하여 최적 초모수를 선택한다.
    • 테스트 데이터 : 훈련 혹은 검증 데이터와 독립적으로 따로 떼어놓은(hold-out) 데이터

    과대적합 overfitting

    훈련 데이터를 너무 잘 방영해서, 훈련 데이터에서는 거이 100%에 가까운 예측률을 보여주지만, 새로운 데이터에서의 예측률은 괴랄하게 나온다.

    해결 방법 : 훈련 데이터의 그래프를 단순하게 바꿔준다.

    과소적합 underfitting

    과대적합의 반대로 모델이 너무 간단하여 일반화에 실패하는 현상

    해결 방법 : 훈련 데이터의 그래프를 좀더 잘 방영해야 한다.

    분류

    이진 분류 vs 다진 분류

    이진 분류 클래스 레이블

    • 긍정 : 보통 1로 표시
    • 부정 : 보통 0 or -1 표시

    대표적인 분류 알고리즘

    • 로지스틱 회귀
    • SVM
    • 결정트리
    • k-최근접 이웃 : 게으른 분류기

    분류의 성능평가 측도

    정분류율(정확도)

    (TP+TN) / (TP+FN+FP+TN) -> 전체 중에서 내가 얼마나 정확하게 예측했는지를 나타낸다.

    정밀도

    • 결과의 질을 평가한다.
    • 모델이 예측한 값이 정말로 맞는지 안 맞는지에 대한 척도를 보여준다.

    TP / (TP + FP)

    재현율

    • 결과의 완벽성
    • 모델이 예측한 값에서 실제로 예측이 실제값과 일치한 것에 대한 척도를 나타낸다.

    TP / (TP + NF)

    F-측도

    정밀도와 재현율은 서로 반비례 관계이다.

    둘은 서로 조화 평균

    * 특성 스케일 조정

    스케일을 조정할 때 최상의 성능을 보인다.

    sklearn.preprocessing(전처리).StandardScaler

    • fit : 스케일링에 사용할 평균과 표준을 계산한다
      • 쉽게 말하면, 모델이 스케일링에 사용할 데이터를 학습한다 라고 할 수 있다.
    • transform 센터링 및 스케일링으로 표준화한다.(표준정규분포로)
      • -3 ~ 3까지 범위를 가진다. 평균은 0이 되도록

    로지스틱 회귀

    회귀라는 이름의 분류 학습 알고리즘이다.

    왜 이런가?

    특성들의 선형결합 <=> 회귀

    그 회귀들을 확률을 파악하기 위해서, 이 회귀를 ln(p/1-p)로 만들었다.

    ln(p/1-p) = logit(p)로 만들었다.

    • logit(p) > 0 <=> p > 0.5면, 이 p는 1로 분류
    • logit(pi) <= 0 <=> pi <= 0.5면, pi는 0으로 분류

    Scikit-Learn 로지스틱 회귀

    • 경사하강법이라는 핵심 알고리즘을 사용한다.
      • 미분을 해서 기울기를 구해서, 가울기가 가장 빠르게 감소하는 쪽을 찾아서, 최적의 값을 구한다.

    서포트 벡터 머신

    장점

    매우 강력한 머신러닝 모델이다.

    선형/비선형 모형을 사용하여 분류의 성능이 뛰어나다.

    단점

    비전문가에게 설명하기가 어렵다

    특성 값을 표준화 해야 성능이 향상된다.

    최적 하이퍼파라미터를 찾아야 한다.

    Vector Classifier

    SVM을 사용하는 분류기라는 것을 의미한다.

    클래스 분류 경계(분류기)가 선형식

    w0 + w1x1 + w2x2 ..... wpxp = 0

    wtx = 0

    W들은 특성이다.
    변수의 개수이다.

    최대 마진 분류기

    SVM은 최대 마진을 찾아주는 역할을 한다.

    마진(margin) : 샘플과 경계선까지의 거리의 최소값

    서포트 벡터(support vectors) : 마진에 위치한 관측치(샘플)

    소프트 마진 분류

    • 선형적으로 데이터가 완전히 구별되는 경우는 드물다
    • 관측치의 몇 개는 오분류되는 것을 허용하면서 일반적인 선형 경계를 구한다.
    • 하이퍼파라미터 C를 사용해서 과대적합을 규제한다.
      • C 값이 작으면 분류오차에 덜 엄격
      • C 가 클수록 마진 폭이 작아짐

    커널 서포트 벡터 분류기

    • 결정(분류) 경계에 비선형인 경우
    • 특성끼리 곱하거나 특성을 거듭제곱하는 식으로 새로운 특성을 추가
      • 하지만 주의해야 한다.
        • 차원의 저주
        • 새로운 특성이 더해지면, 계산해 주는 예측이 더 부정확해 진다

    해결책으로 kernel이 있다.

    커널(kernel) 기법

    • 실제로 데이터를 확장하지 않고 확장된 특성에 대한 내적을 이용
    • 커널(kernel) 함수 : 'linear', 'poly', 'rbf', 'sigmoid'

    SVM에서의 초모수

    • C : penalty parameter (C 값이 작을수록 마진의 폭이 넓어짐)
    • gamma : 가우시안 커널 폭의 역수
      • SVM 모델에서는 gamma와 C를 동시에 조절해야 한다.

    결정트리

    예/아니오 질문들(내부노드)을  거쳐 결정에 다다르는 구조이다.

    결정 트리의 특징

    • 데이터 전처리가 거의 필요하지 않다(표준화X)
    • 결정에 이른 과정(룰)에 대한 설명이 가능 : 화이트 박스
    • 결정 트리의 성능은 다른 기법들보다 낮을 수 있음 => 앙상블 기법

    분류 나무

    트리의 학습(훈련)

    • 주어진 데이터(특성 공간)를 일련의 질문에 따라 순차적으로 분할하는데, 되도록 같은 클래스의 훈련 데이터가 동일한 분할 공간에 모이도록 한다.
    • 특성 <= 값 형태 (트리 훈련은 이것을 구하는 것이다.)
    • 결정 경계가 박스 형태이다.

    분류

    다수인 클래스를 예측 클래스라고 한다.

    사용한 알고리즘

    이진트리, 탐욕적 알고리즘

    분류 나무의 규칙

    불순도 측도

    같은 클래스가 모일수록 불순도가 0에  가까워진다.

    지니 계수, 엔트로피로 불순도를 알 수 있다.

    두 측도 모두 비슷한 성질을 가졌다.

    지니 계수

    특징

    0에 가까울 수 록 순수한 것이다.

    지니 계수 계산법

    (데이터1가 있는 데이터/모든 데이터 * 데이터1가 없을 데이터/모든 데이터) + 

    (데이터2가 있는 데이터/모든 데이터 * 데이터2가 없을 데이터/모든 데이터)

    트리에서의 특성 중요도

    뷰류 트리에서 각 특성이 얼마나 중요한지를 평가한다.

    0~1 사이의 값

    1에 가까울 수록 분류에 대한 기여도가 높다.

    과대 적합 문제

    트리가 커질수록 훈련 데이터에 대한 정분류율은 증가하지만 테스트 데이터에 대해서는 값이 감소한다.

    -> 훈련 데이터를 너무 많이 학습해서 일어나는 문제이다.

    해결 방법 : 초모수 설정

    - 트리의 최대 깊이(max_depth)
    - 리프의 최대 개수(max_leaf_nodes)
    - 분할을 위한 포인트의 최소 개수(min_samples_leaf)

    k-최근접 이웃

    새로운 데이터 포인터가 대해서 훈련 데이터셋에서 가장 가까운 거리에 있는 데이터 포인트를 k개를 찾아, 다수를 차지하는 클래스 레이블로 예측하는 것이다.

    -> 게이른 학습법이라고도 한다.

     

    '빅데이터 분석' 카테고리의 다른 글

    데이터 튜닝  (0) 2021.11.17
    데이터 전처리  (0) 2021.11.15
    머신러닝  (0) 2021.10.13
    pandas  (0) 2021.10.12
    Numpy  (0) 2021.10.04

    댓글

Designed by Tistory.