머신러닝 모델 라이브러리 살펴보기
주요 라이브러리
- 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
Tags:
AI개발_교육