- 실전 머신러닝 적용
1. 머신러닝
[문제]
모든 문제에는 input값과 output값이 정의되어야 한다.
[알고리즘]
알고리즘이란? 어떤 문제를 해결하기 위한 공식이나 해결책을 말한다.
알고리즘을 통해 결과값을 도출해낼때 예측값을 벗어나는 경우엔 우리가 흔히 아는 알고리즘으로 해결책을 찾지 못한다. 이때 사용하는 것이 머신러닝 기술이다. (학습을 통해 결과값을 도출)
[문제해결방법]
- 회귀
- 출력값이 연속적일때 (주로 소수점 단위로 연속되는 값을 도출해낼 때)
- 분류
- 출력값이 비연속적일때
- Binary Classification (주로 T/F 값으로 나뉨)
- Multi-lable Classification
👉 회귀와 분류 중 어떤 방법을 쓸것인가? 에 따라 머신러닝 문제 해결의 모델 설계방법이 달라진다.
[머신러닝 학습 방법]
- 지도 학습 : 정답을 알려주면서 학습시키는 방법
- 비지도 학습 : 정답을 알려주지 않고 군집화(Clustering)하는 방법
- 강화 학습 : 주어진 데이터없이 실행과 오류를 반복하면서 학습하는 방법 (aka. 알파고)
2. 회귀 (머신러닝의 문제해결방법)
[선형회귀 | Linear Regression]
데이터의 관계가 서로 직선 형태를 띠는 함수로
1차 함수의 형태로 가설을 만들어 정닶값에 최대한 정확하게 접근 할 수 있도록 하는 문제 해결방법
- 가설 : H(x) = Wx + b
- 손실함수(cost function) : 가설과 정답값 간의 거리 차이 → 손실이 높을 수록 오차도 크다는 의미

→ a의 제곱값 즉, 손실 or 오차 값을 출여가면서 학습해 나아가는 것이 선형 회귀의 문제 해결 방식
[다중선형회귀 | Multi-variable linear regression]
선형회귀는 input값이 1개 였다면 다중선형회귀는 input값이 2개 이상인것을 말한다.
1차 함수 형태가 아닌 2차, 3차원 형태의 그래프로 나타 낼 수 있음.
- 가설 : H(x_1, x_2, ..., x_n) = w_1x_1 + w_2x_2 + ... + w_nx_n + b
- 손실함수(cost function) : 가설과 정답값 간의 거리 차이 → 손실이 높을 수록 오차도 크다는 의미
[경사 하강법]
문제 해결의 목표는 손실함수를 최소화 시키는 것.
그럼, 손실 함수의 그래프가 있다면 제일 적은 손실이 나는 구간이 제일 정답값에 다가갔다는 의미 (+ 학습 종료)
- Learning rate : 제일 적은 손실이 나는 구간을 찾을때 줄여나아가는 비율을 나타낸다
- 비율이 너무 작다면 제일 적은 손실이 나는 구간을 찾는데 너무 오래 걸릴것이고, 비율이 너무 크다면 제일 적은 손실이 나는 구간을 왔다 갔다 지나쳐가면서 진동현상이 발생 할 수 있다.

→ 목표는 이 손실 함수의 최소점인 Global cost minimum을 찾는 것이므로, Global cost minimum을 찾기 위해 좋은 가설과 / 좋은 손실함수를 만들어 기계를 잘 학습시키는 것이 머신러닝이라고 할 수 있다.
3. 데이터 셋
| 학습 | Training set | 머신러닝 모델을 학습시키는 용도로 사용 되는 데이터 (80%) |
| 검증 | Validation set | 머신러닝 모델 성능 검증 / 튜닝에 이용되는 데이터 (20%) |
| 테스트 데이터 | Test set | 정답이 없는 실제 환경에서의 평가 데이터 (실제 유저의 환경) |
+ Google colab | 선형 회귀 실습
Google Colaboratory Notebook
Run, share, and edit Python notebooks
colab.research.google.com
'woncoding > TIL' 카테고리의 다른 글
| TIL | 10.12.수 [머신러닝 / Django🐢] (0) | 2022.10.12 |
|---|---|
| TIL | 10.11.화 [Django🐢] (0) | 2022.10.11 |
| TIL | 10.6.목 [Django Project] (0) | 2022.10.06 |
| TIL | 10.5.수 [Django Project] (0) | 2022.10.06 |
| TIL | 10.4.화 [Django Project] (0) | 2022.10.05 |