explicit programming : 정확한 프로그래밍, 정확히 동작하는 하나의 기계같은 소프트웨어
-> 너무 많은 룰이 있다면 ? 힘들다.
학습 방법에 따라서 2가지로 구분
1. Supervised learning ( 지도 학습 )
- 라벨링이 된 데이터들, 즉 training set이 필요
- 과정
1) 데이터 입력 -> training data set
2) 모델 학습(원하는 알고리즘으로)
3) 학습된 모델에게 질의(데이터 입력)
4) 모델에게서 결과 반환
- 구분
a) classification
: 범위가 좁은 경우, 좁힐 경우 -> 분류
- binary : true/false, 2개 중 하나를 분류
- multi-label : 몇 개의 label을 분류
b) regression
: 범위가 넓은 경우 -> 예측
X(hours) |
Y(score) |
10 |
90 |
9 |
80 |
3 |
60 |
2 |
40 |
X(hours) | Y(score) |
10 | P |
9 | P |
3 | N |
2 | N |
: binary classification ( pass / non-pass, 둘 중 하나 분류 )
X(hours) | Y(score) |
10 | A |
9 | B |
3 | C |
2 | D |
: multi-label classification ( A, B, C, D, 네 가지 중 하나 분류 )
2. Unsupervised learning ( 비지도 학습 )
- 하나하나 데이터마다 labeling을 줄 수 없는 경우 사용
- 데이터를 보고 스스로 학습하고 데이터를 분류
- 추후에 다룸