논리 회귀로 풀기 힘든 문제가 등장 했을 때, 그 문제가 0 또는 1로 풀어야 할 때 !
이진 논리 회귀(Binary logistic regression)로 해결할 수 있다.
선형회귀와 계산은 같지만 출력에 Logistic function(=Sigmoid function)를 붙여서
딥러닝에서는 시그모이드 함수(Sigmoid function)라고도 불림
입력값(x)으로 어떤 값이든 받을 수가 있지만 출력 결과(y)는 항상 0에서 1사이 값을 가짐
이진 논리 회귀에서의 손실 함수 ; 확률 분포 그래프의 차이를 비교할 때
(선형회귀에서 정답값을 나타내는 점과 우리가 세운 가설의 거리를 최소화했던, loss를 최소화하는 함수를 사용하듯)
- tensorflow > Crossentropy 이용
- Keras > binary_crossentropy 이용
대학교 시험 전 날 공부한 시간을 가지고 해당 과목의 성적(A, B, C, D, F)을 예측하는 문제 같이
결과값이 어떤 값의 범위에 따라 여러가지 결과값으로 나눌 때 사용하는 회귀 방법 !
다항 논리 회귀 (Multinomial logistic regression)
다항 논리 회귀도 다항 분류에 속하기 때문에 원핫 인코딩 방법을 사용하는데 만드는 방법은 간단하다.
아래의 예시를 보면 abcdf 의 5개의 배열을 0으로 맞추고, 해달 클랙스 인덱스에 1을 넣는다.
(순차모델을 임포트해서 차례대로 쓰는 것 같다 > from tensorflow.keras.models import Sequential)
Logit function 은 데이터 간의 차이를 확장하고 값의 범위로 인해 상한과 하한이 있는 일부 문제 데이터 간의 차이를 더 크게 만듬
촉매제 역할을 하는데 그 다음 softmax 함수를 사용하여 확장된 데이터를 확률 구간(0,1)에 매핑하고 확률이 가장 큰 범주를 예측 값으로 출력한 다음 교차 엔트로피 함수를 사용하여 손실 값을 계산한다.
softmax 함수 는 선형모델에서 나온 결과(logit)를 모두가 더하면 1이 되도록 만들어주는 함수 (아래 probabilities, p의 합은 1)
왜 모두 더해서 1을 만드냐? 예측의 결과를 확률(Confidence)로 만들기 위함으로 원핫인코딩의 라벨 값을 전부 더해도 1(100%)이 됨.
다항 논리 회귀에서의 손실 함수(결과 값의 확률 분포 차이를 계산할 때)는
(tf에서는 이진이나 다항이나 같은 crossentropy 이용하지만, keras에서는 다른 함수를 이용함)
- tensorflow > Crossentropy 이용
- Keras > categorical_crossentropy 이용
전처리(Preprocessing)
데이터를 전처리 하는 이유는,
특성들이 단위, 값의 범위 등 차이가 생겨 직접 비교가 불가능하거나 혹은 단위가 같더라도 범위가 달라 문제가 생길 수가 있는데
이 때 전처리 작업을 함. 정규화, 표준화 이외에도 여러 방법이 있으며
필요없는 데이터를 지우고 필요한 데이터만을 취하는 것, null 값이 있는 행을 삭제하는 것 등도 포함하여 전처리라고 함
어떤 방식이 좋은지는 데이터셋에 따라 다르기 때문에 여러 방식과 학습을 반복해 결과를 도출해내는 것을 추천한다고 한다.
- 전처리 이전의 original data
- 정규화 (Normalization) data
데이터를 0과 1사이의 범위를 가지도록 만듬
데이터를 환경에 맞게 적용한다고 생각하면 될듯.
100점 만점인지, 500점 만점인지 처럼
- 표준화 (Standardization) data
데이터의 평균이 0이 되도록 표준편차가 1이 되도록
'STUDY > Python' 카테고리의 다른 글
참고 | 고차함수 호출 | decorators | wrap (0) | 2022.05.20 |
---|---|
파이썬 기초 👩🏻💻 점프 투 파이썬 📚 (0) | 2022.05.14 |
라이브러리? API? 패키지? 🧐| 머신러닝 1주 차 강의에서 사용한 라이브러리와 API 링크 (0) | 2022.05.14 |
⏱타임어택 | 선형회귀 | 맥주 소비량이 1000일 때의 행복 지수를 어떻게 되는지 예측해보자 | 5월 13일 (0) | 2022.05.14 |
5월 13일 | 머신러닝 1주 차 | OX퀴즈 & 타임어택 ⭕️⏱❌ (0) | 2022.05.14 |