머신러닝 라이브러리, 기초수학

머신러닝 모델 라이브러리 살펴보기

주요 라이브러리

  • sklearn (싸이킬런)
  • https://scikit-learn.org/stable/

분류와 회귀

  • 분류 - category를 예측하다. ex) Classifier, LogisticRegression, SVC
  • 회귀 - 수치를 예측하다.  ex) Regressor


학습방법

  • train_test: 훈련과 테스트 데이터를 나눔. 일반적으로 8:2

  • 훈련과 테스트를 나누는 이유?
    • 학습한 데이터는 무조건 맞춘다. 학습하지 못한 데이터로 모의고사가 필요하다.

  • CV cross validation (교차검증): 테스트 데이터 군집을 다양하게 잡는다.


여러 모델의 점수 시각화

  • 어떤 모델을 사용할 것인가?
    • Decision Tree, Random Forest, AdaBoost, Extra Trees, Gradient Boost, MLP, KNN, Support Vector, Logistic Regression, Linear Discrimination

  • 어떤 인코딩을 사용할 것인가?
    • Label Encoding: 데이터의 크기
    • Onehot Encoding: on/off로 표시, 중복소유 가능




하이퍼 파라미터 튜닝

  • 의사결정 나무 모델을 사용한다고 했을 때, 
    • 한 단계에서 질문의 갯수와 질문의 단계(깊이)는 어떻게 정할까? 
    • 질문의 순서는 어떻게 하는가? 같은 종류의 질문이라도 어떻게 해야 하는가?
  • 위 질문의 답은 어떻게 판단할 것인가? 불순도로 판단한다. 불순도의 최대치는 5:5다. (criterion:  gini, entropy)
  • 데이터셋을 기준으로 가장 효율적인 값을 정하게 된다. 그러나 데이터셋이 바뀔 때마다 파라미터는 달라질 수 있다. 


앙상블(보팅)

  • 각 모델들의 추론 값을 비교해보자. 
  • 하드보팅: 결과를 각 모델의 다수결로 결정한다.
  • 소프트보팅: 각 결과의 확률 값을 참고하여 결정한다.


기초수학과 머신러닝

지수, 로그, 벡터와행렬

  • e는 2.718...
  • 고정된 기간동안 100%의 이자를 받는다고 한다. (1 + 1)^1
  • 기간을 나누어 복리로 받으면, 이자는 나눈만큼 줄어든다.  (1 + 1/n)^n
  • n을 무한대로 하면, 최대 몇 배나 될까? e = 2.718... 배

벡터와 행렬

  • 벡터는 항상 막대기 모양, n행 1열로 되어 있다.
  • 파라미터(미지수, 가중치)를 밝혀내야 하는 식이 선형인 경우에 데이터와 파라미터간의 곱으로 선형 방정식을 만들 수 있다.
  • 벡터 형식의 데이터와 벡터 형식의 파라미터를 행렬 곱 하려면, 앞 부분에 곱하는 데이터를 Transpose(역치) 해야 한다.  
    • (n, 1) @ (n, 1)  불가 
    • (1, n) @ (n, 1) = (1,1)
  • 행렬 곱으로 만들어진 선형 방정식의 파라미터를 찾는 것이 머신러닝의 방법이다.

확률과 통계

  • 조건부 확률: P(A|B), B가 주어질 때의 A확률
  • P(A|B) * P(B) = P(B|A) * P(A)
  • 정규분포 = N(평균=0, 표준편차=1) = N(0, 1)
  • 랜덤 함수의 결과는 정규 분포를 따른다.

미분

  • 기울기(gradient) = X의 변화량에 따른 Y의 변화량
  • 미분 = X의 순간변화량에 따른 Y의 변화량
  • 도함수: 미분의 함수화

  • 기울기 하강법:
    • 컴퓨터는 몇 개의 데이터 예시를 보고 바로 W를 찍을 수 없다.
    • 아무 W나 넣어보고 그 오차값을 기준으로 W를 조절한다. 
    • W(미지수의) 변화량에 따른 C(오차)의 변화량을 알면, 변화량이 0일 때를 추적할 수 있다. 그러면, C(오차)가 0일 때의 W(미지수)를 알 수 있다.
    • 즉, W(미지수)와 C(오차)간의 G(기울기)를 통해 W(미지수)를 찾는다.

선형 방정식

  • 선형(linear), 비선형(non-linear)의 의미
  • 데이터의 비선형성
  • 모델/함수의 비선형성

  • 데이터와 답을 가지고 만들어진 방정식은, 모든 변수가 1차식으로 구성된 선형 방정식이다.
  • 데이터 묶음과 답이 1개 일때, 선형 방정식 1개가 만들어지고, 파라미터 묶음을 구할 수 있다.
  • 데이터 묶음과 답이 n개 일때, 선형 방정식도 n개가 된다. 
  • n개의 방정식을 충족하는 파라미터를 구하는 것이 머신러닝의 방법이다. 

자주 사용하는 함수

  • 선형 방정식: 
    • Y = WX
    • y = w1x1 + w2x2 + w3x3 + ...... +wnxn + b(w0)
    • x: 입력값, y: 출력값, w: 미지수(컴퓨터가 학습할)


  • 로지스틱 함수(=시그모이드 함수)
    • y = 1 / ( 1 + e^-x )

    • y'' = { 1 / (1 + e^-x) } * [ 1 - { 1 / (1 + e^-x) } ]


    • (0, 1/2)를 지남, Y절편이 1/2
    • X는 모든 수가 올 수 있다. Y는 0 < Y < 1 값이 온다.
    • Y가 확률 값이라고 할 때, 
      • X < 0 면, Y < 1/2
      • X > 0 면, Y > 1/2

  • 스텝(계단) 함수
    • x >= 0 면, y=1
    • x < 0 면, y=0
    • 판별적 의미, 기울기는 항상 0

  • ReLU 함수와 도함수
    • x >= 0 면, y=x
      • 기울기는 1
    • x < 0 면, y=0
      • 기울기는 0
    • ReLU의 도함수는 스텝(계단)함수가 된다.

  • Softmax 함수

  • Log loss 함수 (log 손실 함수 또는 log 오차 함수)
    • y = -log h(x)
    • (1,0)을 지남. x축 절편 1

    • 확률적 분류 모델의 오차 함수
    • y = -log (1-h(x))
    • (0,0)을 지남. x축 절편 0










댓글 쓰기

다음 이전