머신러닝

Machine Learning

zsun 2024. 4. 20. 02:24

1. 머신러닝 문제의 종류

 

Label의 유무에 따른 구분

Label 있으면 : 지도학습(Supervised Learning) / 라벨 없으면 : 비지도학습(Unsupervised Learning)

지도학습에서, 

연속적인 문제 : Regression(회귀) / 카테고리컬한 문제 : classification(분류)

 

2. 용어

x = input variable (입력변수)  

independent variable (독립변수)

explanatory variable(설명변수)

input feature

 

y = output variable (출력변수)

dependent variable (의존변수)

response variable (반응변수)

target variable

 

n  = number of training examples

(x(i) ,y(i) ) = i th training example


 

3. Simple Linear Regression (입력변수 1개인 경우)

 

 

 

4. Least Squares Estimation (LSE)

SSE(Sum of Squared Errors) 를 가장 작게 만들어 주는 parameter로 추정하는 방식

 

 

5. Maximum Likelihood Estimation (MLE) - 최대우도추정법

: 전체 데이터에 대한 likelihood를 최대로하는 parameter를 찾기

 

[Assumptions]

1. Linearity (선형성) : 입력변수와 출력변수가 선형관계

2. Normality (정규성) : 오차의 분포가 정규성을 따른다

3. Homogeneity of variance (등분산성) : 오차의 분산이 입력변수와 무관하게 일정하다

 

 

 

6. Multiple Linear Regression

 

 

7. Polynomial Regression - 선형성 x, n차항 포함

 


8. Model Evaluation

결정계수값이 클수록(1에 가까울수록) 좋은데, 이는 변수의 개수가 늘어나면 무조건 늘어나게 되어있다.

-> Adjusted R^2 사용

 

 

9. Variable Selection - 변수 선택

: 최적의 예측변수 조합을 찾기 위함 

- 변수가 k개 있을때, 가능한 변수의 조합은 2^k-1 개 (모두 선택하지 않은 경우 제외)

- 변수선택방법의 종류

Forward selection (전진선택법) : 하나씩 늘려가는 방법
Backward elimination (후진제거법) : 전체 선택한 상태에서 하나씩 제거

Stepwise method : Forward selection 과 Backward elimination 혼합 방법


10. Logistic Regression Model

 

Method: Maximum Likelihood Estimation (MLE)

linear regression과 다르게, 해가 딱 떨어지지 않는다 -> 반복적인 최적화 방법을 사용한다

Gradient descent (경사하강법) 사용

 

 

11. Interpretation of Logistic Model

 

 

12. Odds

: 어떤 사건이 발생할 확률 / 어떤 사건이 발생하지 않을 확률 = p / 1-p

: odds 값이 3이면 발생할 확률이 발생하지 않을 확률의 3배이다

 

Odds Ratio : x가 한 단위 증가할때, y=0와 y=1의 비율

 

 

13. Classification Using Probability

확률기반으로 데이터를 분류하는 방법

threshold / cut-off value를 사용함

ex) c보다 크면 1, 작으면 0으로 분류

-> 최적의 c 값은 어떻게?

: 간단하게는 0.5, 하지만 사전 지식과 손실함수를 고려해야 함

 

 

14. Softmax Regression

두개 이상의 클래스일때는 어떻게? -> softmax regression (Multinomial logistic regression)

 

 

15. Handling Categorical Input Variables

두개 이상의 카테고리일때 변수를 핸들링하는 법

 

 

 

16. Regression Performance

 

위 방법들은 y의 스케일에 민감함 -> y를 스케일링 해주는 방법

 

 

17. Classification Performance

Confusion matrix (binary classification)

 

 

 

 

c* = Expected Profit을 최대로 만들어주는 threshold

 

 

18. Model Selection

• 가능한 시나리오
  1. 트레이닝 세트만 사용할 수 있음
  2. 훈련 세트와 테스트 세트 모두 가능하지만 테스트 세트에는 레이블이 없음
    (* 참고: 여러 모델이 있으며 모두 훈련 세트에서 훈련됩니다.)
• 목적 : 테스트 세트에서 가장 잘 수행될 것으로 예상되는 모형을 선택
• 나이브 접근법 : 훈련 세트에서 가장 성능이 좋은 모델을 선택
 

 

19. Overfitting Problem

 

Overfitting의 원인

- 제한된 데이터 -> 데이터 더 모아

- 변수가 너무 많다 -> 변수선택

- weight 가 너무 크다 -> weight를 줄인다 (regularization)

 

Overfitting 을 해결하기 위한 방법

: validation methods 등..

 

validation methods

- holdout validation

 

- K-fold cross validation

training set을 k개로 나누고 각각의 fold를 validation으로 사용함

 

 

- Leave-One-Out Cross Validation (LOOCV)

: cross validation의 특수한 형태로, K-fold cross validation에서는 하나의 fold가 데이터 그룹이었다면

LOOCV은 데이터 포인트 하나하나가 fold가 됨 -> 시간이 오래걸림

 

 

- Time-Series Cross Validation

: 시간의 흐름에 따른 데이터 활용

어떤 시간 기준으로 과거의 데이터를 사용하고 더 과거의 데이터는 train으로, 과거이지만 train 보다는 뒤의 데이터는 test로

 

 

weight 가 작은게 더 좋다

Reduce size of weights a-> Regularization

 

 

20. Regularization

 

- L2 Regularization

 

- L1 Regularization

 

타원 : data Loss / 베타1과 베타2에 따라 Loss가 어떻게 변하는지 표현한것

같은 타원라인 안에 있는 베타1과 베타2의 값들은 동일한 data loss를 가짐

가장 안쪽 타원이 data loss 가장 작고 멀어질 수록 loss 커짐

 

파란색 도형은 regularization term을 표현

타원과 도형이 만나는 부분이 data loss가 가장 작은 부분

 

Lasso는 변수선택의 기능도 있다 (위 그림처럼 베타1이 0인 경우 x1이 사라지게 됨)

 

 

21. Decision Tree

root node -----branch----- internal node -----branch----- leaf node(terminal node)

parent node - child node

Depth : 맨위부터 맨 밑까지 branch의 개수 가장 큰것

split하는 기준 : purity / impurity

 

Impurity Index

1) Classification error (Misclassification rate)

 

확률이 가장 큰 클래스를 제외한 나머지 클래스에 대한 확률의 합

0 : 가장 순수 , 0.5 : 가장 불순

 

2) Gini index

2 * 각 클래스 확률

 

3) Entropy

 

* 앤트로피만 1까지

 

22. Information Gain

 

- Stopping Rule

• 모든 인스턴스가 동일한 클래스에 속할 경우
• 모든 속성 값이 동일한 경우
• Depth가 사용자 정의 threshold 보다 큰 경우


More restrictive conditions

노드안에 있는 인스턴스의 개수가 사용자 정의 threshold보다 작은 경우
• 더 split을 해도 Impurity가 개선되지 않는 경우 (ex. Gini 또는 정보 이득)

 

Pruning(가지치기)

Pruning methods

  • Reduced-error pruning : leaf node 빼고 측정 -> 성능이 나아지면 해당 leaf node 빼버림 (Bottom-up 방식)

 

 

 

  • Cost-complexity pruning : 알파가 주어졌을때 cost complexity를 최소화하는 것을 트리를 찾는것

알파는 둘 사이의 비중을 조절해줌

알파 조금씩 키움 -> 리프 노드 날림

각각 validation 성능 측정해서 최선의 선택을 함

 

 

  • Rule post-pruning : 룰 단위로 

 

Various Decision Trees