머신러닝 프로젝트 처음부터 끝까지
1. 큰 그림 보기
2. 데이터 구하기
3. 데이터로부터 인사이트를 얻기 위한 탐색 및 시각화
4. 머신러닝 알고리즘을 위한 데이터 준비
5. 모델 선택 및 훈련
6. 모델을 상세하게 조정하기
7. 솔루션 제시
8. 시스템 론칭 / 모니터링 / 유지 보수
1. 큰 그림 보기
- 목표: 캘리포니아 인구조사 데이터를 기반으로 캘리포니아 주택 가격 모델 만들기
- 데이터 특징: 블록 그룹(block group), 인구(population), 중간 소득(median incom), 중간 주택 가격(median housing price) 등을 담고 있음
*블록 그룹: 미국 인구조사국에서 샘플 데이터를 발표하는 데 사용하는 최소한의 지리적 단위
(하나의 블록 그룹 당 보통 600~3,000명 인구)
- 최종 목표: 해당 데이터로 모델을 학습시키고, 다른 측정 데이터가 주어졌을 때 구역의 중간 주택 가격 예측
1-2. 문제 정의
"비즈니스의 목적이 정확히 무엇인가?"
머신러닝 모델 만들기가 최종 목표는 아닐 것입니다.
이 모델을 어떻게 사용해 이익을 얻으려고 할까?
목적을 아는 것은 문제를 어떻게 구성할지, 어떤 알고리즘을 선택할지, 모델 평가에 어떤 성능 지표를 사용할지, 모델 튜닝을 위해 얼마나 노력할지를 결정하기 때문에 아주 중요한 문제입니다.
"현재 솔루션은 어떻게 구성되어 있는가?"
만약 있다면, 현재 상황은 문제 해결 방법에 대한 정보는 물론, 참고 성능으로도 사용할 수 있습니다.
그렇다면 주택 가격 예측은 어떻게 문제 정의를 해야할까요?
1. 레이블된 훈련 샘플이 있으니 전형적인 지도 학습 문제입니다.
2. 값을 예측 해야 하므로 전형적인 회귀 문제입니다.
3. 예측에 사용할 특성이 여러 개(구역의 인구, 중간 소득 등)이므로 다중 회귀(multiple regression)문제입니다.
4. 각 구역마다 하나의 값을 예측하므로 단변량 회귀(univariate regression)입니다.
5. 이 시스템으로 들어오는 데이터에 연속적인 흐름이 없으므로 빠르게 변하는 데이터에 적응하지 않아도 되므로 일반적인 배치 학습이 적절합니다.
1-3. 성능 측정 지표 선택
- 회귀 문제의 전형적인 성능 지표는 평균 제곱근 오차(root mean squeare error, RMSE)
- 오차가 커질수록 이 값은 더욱 커지므로 예측에 얼마나 많은 오류가 있는지 가늠하게 해줍니다.
1-4. 가정 검사
- 지금까지 만든 가정을 나열하고 검사해보는 것이 좋습니다.
- 구역의 가격이 머신러닝 시스템의 input 값으로 들어가게 되는데, 하위 시스템에서 이 값을 카테고리화('저렴', '보통', '고가' 등) 한다면 어떻게 될까요?
- 이럴 때는 정확한 가격을 구하는 것이 전혀 중요하지 않습니다. 올바른 카테고리를 구하는 시스템이 필요합니다.
- 그렇다면 이 문제는 회귀가 아니라 분류 작업이 됩니다.
- 몇 달 동안 회귀 시스템을 구축하고 나서야 이런 사실을 깨닫게 된다면 .... 정말 끔찍하겠죠?
다음 포스팅으로는 직접 코드로 실현해보도록 하겠습니다.
참고자료 :
<핸즈온 머신러닝: 사이킷런과 텐서플로를 활용한 머신러닝, 딥러닝 실무>
'Python > ML' 카테고리의 다른 글
알고리즘 이해하기 - 유클리드 거리 (0) | 2021.03.12 |
---|---|
[머신러닝] 캘리포니아 주택 가격 예측 - 2. 데이터 준비하기 (0) | 2020.10.17 |