TIL/머신러닝

11.21 오후 머신러닝 분류 모델링, KNN,선형회귀

monawa 2022. 11. 21.
728x90

3-1. 머신러닝 분류 모델링

1. 머신러닝

사람이 일련의 규칙을 입력하여 데이터(input)를 넣어 주었을떄 데이터를 학습하여 유의미한 패턴을 찾아내는 작업(output) 

2.  기계학습 유형 

오전에 정리함

3.supervise lerning

학습데이터로부터 f를 찾는 방법론

 

4. 3을 위한 데이터셋

독립변수 X

종속변수 Y   = f(X)

범주형이면  classification

연속형이면 regression

training데이터와 testing데이터로 분리

이떄 training만 잘된상태가 아닌 training에서 없는 데이터를 예측하는것이 중요하기떄문에  test데이터셋의 성능도 봐야합니다

또한 training 과정에서 함수의 특성을 결정지어주는, 기저가 되는 기저함수. 영어로는 basis function의 특징들, 복잡도를 결정해주는 그런 Hyperparameter를 잘 tunimg을 해줘야하는데 이는 Training dataset을 다시 또 쪼개서 Validation dataset을 두고서 그 dataset에 대해서 테스트를 해보면서, 후보군에 대해 테스트 해보고 가장좋은 후보군을 선택 

 

5.bias-variance tradeoff

모든 모델은 복잡도를 통제할수 있는 Hyperparameter를 갖고있고

가장 좋은 성능의 모델을 학습하기 위해 최적의 Hyperparameter를 결정해야한다 

모형이 복잡할수록 train데이터셋에 설명을 잘할수있다 (Complexity가 커지면 Bias는 작아진다)

하지만 미세하게 모든걸 학습하기떄문에 변동성이 커지게 되어 오차가 증가한다

너무 간략하게 모형을 만들면 모형이 잘 예측을 못한다.(Complexity가 낮으면 Bias는 커진다)

Bias는 커지는데 대신에 Variance는 좀 줄어들어요. 

그렇게 Complexity가 줄어들면 새로운 데이터가 오든지 기존의 데이터가 빠지든지 모형이 그렇게 크게 변동이 되지 않습니다. 대신에 Bias가 커졌기 때문에 모형의 오차는 전체적으로 커지게 된다. 

그것이 바로 이 Test Sample의 Prediction Error 형태로 나타나는 것이다

 

 

6. 모델선택하기 

Complexity가 너무 낮은 거를 Underfitting이라고 하고

너무 높은 걸 Overfitting

3번쨰 15차 함수 같은 경우에는 Training 오류는 되게 낮고 MSE도 1.82e+08로 나옵니다 하지만 이는 training 오차이고 피팅된 모습을 보면(파란색줄) 너무 불필요한 변동이 많아 변동성이 큽니다 그렇기떄문에 Hyperparameter를 잘조절해야합니다 

 

번외  Hyperparameter란?

파라미터(Parameter)

하이퍼 파라미터(Hyper parameter)

 한국어로 매개변수
모델 내부에서 결정되는 변수
모델링할 때 사용자가 직접 세팅해주는 값을 뜻합니다.
파라미터와 하이퍼 파라미터를 구분하는 기준은 사용자가 직접 설정하느냐 아니냐

모델 혹은 데이터에 의해 결정 사용자가 직접 설정

 

8. classification예시

범주형 종속변수 : class,label

예시 : 제품이 불량인지 양품인지 분류, 고객이 이탈고객인지 잔류고객인지 분류

 

9 classification models

특정모델이 모든경우에 좋은 선능을 내지 못하므로 다양한 분류모형을 적용해보고 최종적인 모형을 활용하거나 분류모형들의 결과를 종합해서 결과를 낸다 (ensemble)

 


 

3-2. KNN

1. k-nearest neighbors (knn)

k = 모형의 복잡도를 결정해주는 Hyperparameter

k가 클수록 underfitting 작을 수록 overfitting

K개의 주변 관측치의 Class에 대한 majority voting

두관측치의 거리가 가까우면 Y도 비슷하다

다수결에 의해서 내 주위에 가까이 있는 그런 관측치들이 누가 있나 한번 살펴보고 다수결 투표를 해서 가장 다수에 속하는 클래스로 분류를 함

 

2. 거리 

두관측치 사이의 거리를 측정할수 있는 방법

범주형 변수는 dummy variale로 변환하여 거리를 계산한다 

거리  = 이 두 관측치들 사이의 차이, 거리를 어떤 가정을 가지고서 측정할 것인가를 결정해주는Hyperparameter


3-3. Logistic Regression (로지스틱회귀모형)

단순 선형 회귀(simple linear regression) : 단 하나의 특성(feature) 만을 이용하는 모델

다중 선형 회귀(multiple linear regression)  : 여러 가지 특성을 이용하는 모델

 

목적 : 수치형 설명변수 X와 종속변수 y간의 관계를 선형으로 가정하고 이를 가장 잘표현할수있는 회귀계수를 추청 

범주형 반응

이진변수  = 0,1 (bool)

 선형회귀분석의 우변은 범위에 대한 제한이 없기떄문에 우변과 좌변의 범위가 다른 문제점이 발생함

확률값으로 선형회귀분석의 종속변수로 사용한은것이 타당한가?

=> x가 특정 기준점 이상으로 넘어가게 되면 오히려 오차가 커지면서 이거는 옟그이 잘안되는 거야 라는 가정이 나온다

=> 이는 숫자개념이라 우리가 원하는 확률을 얻기위한 모델링으로 적합하지 않다 

 

그러므로 로지스틱선형회귀모델을 사용

목적 : 이진형 형태를 갖는 종속변수에 대해서 회귀식 형태로 모형을 추청하는것

이유 :" 회귀식으로 표현될경우 변수의 통계적 유의성 분석 및 종속변수에 미치는 영향력 등을 알아볼수있다

특징 

- 이진형 종속변수 t를 그대로사용하는것이 아니라 y에 대한 로짓함수를 회귀식의 종속변ㅅ구로 사용

로짓함수는 설명변수의 선형결합으로 표현됨

로짓함수의 값은 종속변수에 대한 성공확률로 역산될 수있으며 따라서 이는 분류 문제에 적용 가능함 

 

멀티 변수 = 2개 이상의 변수가 있는것 

 

Cross-Entropy Loss

머신 러닝의 분류 모델이 얼마나 잘 수행되는지 측정하기 위해 사용되는 지표로서

보통 Classification에서 많이 사용되며 값들의 범위는 [0,1], 총 합은 1이 되도록 합니다.

 그 다음, 1-hot Label (정답 라벨)과의 Cross Entropy를 통해 Loss를 구하게 되죠.

일반적인 목표는 모델을 가능한 0에 가깝게 만드는 것입니다.

 


 

 

 

참고자료

https://www.skyer9.pe.kr/wordpress/?p=418

https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-13-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0Parameter%EC%99%80-%ED%95%98%EC%9D%B4%ED%8D%BC-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0Hyper-parameter

 

 

 

 

 

728x90

댓글