-
5월 18일 TIL - 다항 논리회귀TIL(Today I Learned) 2023. 5. 18. 20:32
▷ 오늘의 일정
09:10 ~ 10:00 코딩테스트 문제풀기 10:00 ~ 11:00 [특강] AI 라이브러리 활용 11:00 ~ 12:00 코딩테스트 코드리뷰 12:00 ~ 13:00 점 심 식 사 13:00 ~ 18:00 머신러닝 강의 2주차, 3주차 18:00 ~ 19:00 저 녁 식 사 19:00 ~ 21:00 후발대 강의 ▷ 오늘의 배움
- 논리 회귀
- 선형회귀로 풀기 어려운 문제가 등장하면서 사용된 방법이다.
- 단항 논리 회귀 - 예) 공부한 시간에 따른 이수여부를 구하는 과정에서 이수여부는 이진 클래스로 나눠진다. 이 때 우리는 이진 논리 회귀로 문제를 풀 수 있다. 이 때 사용되는 함수가 Logistic function(=Sigmoid function)이다. 함수를 이용해서 과목을 이수할 확률을 0과 1숫자 사이의 값으로 나타낼 수 있다. 시그모이드 함수의 출력 결과(y)는 항상 0과 1 사이의 값을 갖는다.
- 다항 논리 회귀 - 클래스가 여러개인 문제에서 사용된다. 클래스가 여러개 일 때는 원핫 인코딩을 만들어주어야 한다. 원핫 인코딩은 다항 분류에서 출력값의 형태를 컴퓨터에 최적화되게 만들어주는 것으로, 0과 1로만 구성되어 클래스를 구분할 수 있게 해준다.
-
더보기원핫 인코딩을 만드는 방법
1. 클래스(라벨)의 개수만큼 배열을 0으로 채운다.
2. 각 클래스의 인덱스 위치를 정한다.
3. 각 클래스에 해당하는 인덱스에 1을 넣는다.
예) 총 클래스 5개 중에 클래스 0 => [1, 0, 0, 0, 0] - 논리 회귀는 실질적인 계산은 선형회귀와 같다. 단항 논리 회귀는 선형 회귀에서의 가설을 시그모이드 함수에 넣어 출력값이 0에서 1사이의 값을 가지게 한다. 다항 논리 회귀는 시그모이드 함수가 아닌 Softmax 함수를 사용한다.
-
더보기시그모이드 함수
x(입력)가 음수 방향으로 갈 수록 y(출력)가 0에 가까워지고, x(입력)가 양수 방향으로 갈 수록 y(출력)가 1에 가까워진다! 즉, 시그모이드 함수를 통과하면 0 에서 1 사이 값이 나온다!!! -
더보기Softmax
선형 모델에서 나온 결과(Logit)를 모두가 더하면 1이 되도록 만들어주는 함수이다. 다 더하면 1이 되도록 만드는 이유는 예측의 결과를 확률(=Confidence)로 표현하기 위함 - 손실함수
- 확률 분포 그래프의 차이를 비교할 때는 Crossentropy 라는 함수를 사용한다.
- Keras에서 이진 논리 회귀의 경우 binary_crossentropy 손실 함수를 사용한다.
- Keras에서 다항 논리 회귀의 경우 categorical_crossentropy 손실 함수를 사용한다.
- 다양한 머신러닝 모델
- Support vector machine (SVM): Feature(특징)에 맞춰 그래프에 배치 시키고 기준점,Support vector를 중심으로 분류
- k-Nearest neighbors (KNN): 비슷한 특성을 가진 개체끼리 군집화하는 알고리즘. 배치된 그래프에서 일정 거리안에 있는 다른 개체들의 수를 확인하고 그 수에 따라 분류
- Decision tree (의사결정나무): 스무고개와 같은 방식으로, 질문에 대한 결과로 분류
- Random forest: 의사결정나무가 여러개 모여서 만들어진 것으로 각각의 의사결정나무를 통과한 후 결과들을 모아 가장 많은 값으로 분류
- 전처리(Preprocessing)
- 넓은 범위의 데이터 정제 작업을 말한다. 필요없는 데이터를 지우거나 필요한 데이터만 갖는 것, null값이 있는 행을 삭제하는 것, 정규화/표준화, 등의 작업들을 말한다.
- 전처리는 시간이 오래 걸리고 실수가 많을 수 있다. 하지만 정말 중요한 작업니다.
-
더보기정규화와 표준화가 필요한 이유는?
데이터를 분석할 때 각각의 특성들이 단위도 다르고 값의 범위에 차이가 있을 수도 있다. 이런 상황에서는 직접적으로 비교가 불가능하기 때문에 각각의 방법을 사용하여 비교가 정확하게 될 수 있도록 전처리를 해주어야한다. - 정규화: 정규화는 데이터를 0과 1사이의 범위를 가지도록 만든다. 같은 특성의 데이터 중에서 가장 작은 값을 0으로 만들고, 가장 큰 값을 1로 만든다.
- 표준화: 표준화는 데이터의 분포를 정규분포로 바꿔준다. 즉 데이터의 평균이 0이 되도록하고 표준편차가 1이 되도록 만들어준다.
▷ 오늘의 한줄
데굴데굴 굴러가는 머신러닝 배우기~ 으렵다. 생각보다 시간이 오래 걸리고 있다. 내일은 최대한 머신러닝 강의를 마무리하는 쪽으로 힘내야겠다.
'TIL(Today I Learned)' 카테고리의 다른 글
5월 22일 TIL - 새로운 프로젝트 시작 (0) 2023.05.22 5월 19일 TIL - 딥러닝(MLP) (1) 2023.05.21 5월 17일 TIL - 선형회귀 실습 (1) 2023.05.17 5월 16일 TIL - 알고리즘데이 (0) 2023.05.16 5월 15일 TIL - 프로젝트의 마무~리 (0) 2023.05.15 - 논리 회귀