|
|
4 months ago | |
|---|---|---|
| .. | ||
| README.md | 4 months ago | |
| assignment.md | 7 months ago | |
README.md
머신러닝 기법
머신러닝 모델과 그 모델이 사용하는 데이터를 구축하고 사용하며 유지하는 과정은 다른 많은 개발 워크플로우와 매우 다른 과정입니다. 이번 수업에서는 이 과정을 쉽게 이해할 수 있도록 하고, 알아야 할 주요 기법들을 설명합니다. 여러분은 다음을 배우게 됩니다:
- 머신러닝의 기본 프로세스를 높은 수준에서 이해하기
- '모델', '예측', '훈련 데이터'와 같은 기본 개념 탐색하기
수업 전 퀴즈
🎥 위 이미지를 클릭하면 이번 수업 내용을 다루는 짧은 영상을 볼 수 있습니다.
소개
높은 수준에서, 머신러닝(ML) 프로세스를 만드는 작업은 여러 단계로 구성됩니다:
- 질문 정하기. 대부분의 머신러닝 과정은 단순한 조건문 프로그램이나 규칙 기반 엔진으로 답할 수 없는 질문을 던지는 것에서 시작합니다. 이 질문들은 보통 여러 데이터를 기반으로 한 예측과 관련됩니다.
- 데이터 수집 및 준비. 질문에 답하려면 데이터가 필요합니다. 데이터의 품질과 때로는 양이 초기 질문에 얼마나 잘 답할 수 있는지를 결정합니다. 데이터 시각화는 이 단계의 중요한 부분입니다. 또한 데이터를 훈련용과 테스트용으로 나누어 모델을 구축하는 것도 포함됩니다.
- 훈련 방법 선택. 질문과 데이터의 성격에 따라, 데이터를 가장 잘 반영하고 정확한 예측을 하기 위해 모델을 훈련시키는 방법을 선택해야 합니다. 이 단계는 특정 전문 지식과 많은 실험이 필요한 부분입니다.
- 모델 훈련. 훈련 데이터를 사용해 다양한 알고리즘으로 데이터를 인식하는 모델을 훈련시킵니다. 모델은 데이터의 특정 부분을 우선시할 수 있도록 내부 가중치를 조정하여 더 나은 모델을 만들 수 있습니다.
- 모델 평가. 수집된 데이터 중 모델이 아직 본 적 없는 테스트 데이터를 사용해 모델의 성능을 평가합니다.
- 파라미터 조정. 모델의 성능을 기반으로 다양한 파라미터, 즉 모델 훈련 알고리즘의 동작을 제어하는 변수를 바꿔가며 과정을 반복할 수 있습니다.
- 예측. 새 입력값을 사용해 모델의 정확성을 테스트합니다.
어떤 질문을 할까
컴퓨터는 데이터 속 숨겨진 패턴을 발견하는 데 특히 뛰어납니다. 이는 조건부 규칙 엔진으로는 쉽게 답할 수 없는 도메인 내 연구자들이 질문에 매우 유용합니다. 예를 들어 보험계리 업무에서, 데이터 과학자는 흡연자와 비흡연자의 사망률에 관한 수작업 규칙을 만들 수도 있습니다.
하지만 여러 변수가 포함되면 과거 건강 기록에 기반한 미래 사망률 예측에 머신러닝 모델이 더 효율적일 수 있습니다. 더 밝은 예로는 위도, 경도, 기후 변화, 바다와의 거리, 제트기류 패턴 등의 데이터를 활용해 특정 지역 4월 날씨 예측을 하는 경우입니다.
✅ 이 슬라이드 데크는 기상 모델에 관한 역사적 관점에서 머신러닝을 활용한 사례를 제공합니다.
사전 준비 작업
모델 구축을 시작하기 전에 완료해야 할 여러 작업이 있습니다. 질문을 테스트하고 모델 예측에 기반해 가설을 형성하려면 여러 요소를 식별하고 구성해야 합니다.
데이터
질문에 확실히 답하려면 적절한 유형의 충분한 데이터가 필요합니다. 이 시점에 해야 할 두 가지는:
- 데이터 수집. 이전 수업에서 다룬 공정한 데이터 분석을 염두에 두고 조심스럽게 데이터를 수집하세요. 데이터 출처와 내재된 편향, 출처를 문서화하십시오.
- 데이터 준비. 데이터 준비 과정에는 여러 단계가 있습니다. 서로 다른 출처에서 온 데이터를 정리하고 정규화할 필요가 있을 수 있습니다. 문자열을 숫자로 변환하는 등 다양한 방법으로 데이터 품질과 양을 개선할 수 있으며(클러스터링 수업 참조) 원본 데이터를 기반으로 새 데이터를 생성할 수도 있습니다(분류 수업 참조). 데이터를 정리하고 편집할 수도 있으며(웹 앱 수업 전 작업), 훈련 기법에 따라 무작위화하고 섞을 수도 있습니다.
✅ 데이터를 수집하고 처리한 후, 데이터의 형상(shape)이 질문에 잘 답할 수 있을지를 잠시 확인해 보세요. 데이터가 주어진 작업에 잘 작동하지 않을 수도 있다는 점은 클러스터링 수업에서 다룹니다!
특성과 타깃
특성(feature)은 데이터의 측정 가능한 속성입니다. 많은 데이터셋에서는 'date', 'size', 'color'와 같은 열 제목으로 표현됩니다. 특성 변수는 코드상 보통 X로 표기하며, 모델을 훈련시키기 위한 입력 변수를 나타냅니다.
타깃(target)은 예측하려는 것입니다. 타깃은 코드 내에서 보통 y로 표시되며, 예를 들어 12월에 어떤 색깔 호박이 가장 저렴할지, 샌프란시스코에서 어느 동네가 가장 좋은 부동산 가격을 가질지 등 데이터에 묻고자 하는 질문에 대한 답입니다. 때때로 타깃은 레이블(label) 속성이라고도 합니다.
특성 변수 선택
🎓 특성 선택과 특성 추출 모델을 만들 때 어떤 변수를 선택할지 어떻게 알까요? 최적의 성능을 위해 적절한 변수를 찾기 위해 특성 선택(feature selection) 또는 특성 추출(feature extraction) 과정을 거칩니다. 두 개념은 같지 않습니다: "특성 추출은 원래 특성의 함수에서 새로운 특성을 만드는 것이고, 특성 선택은 원래 특성의 서브셋을 선택하는 것입니다." (출처)
데이터 시각화
데이터 과학자의 툴킷에서 중요한 부분은 Seaborn이나 MatPlotLib 같은 훌륭한 라이브러리를 사용해 데이터를 시각화하는 기능입니다. 데이터 시각화는 사용할 수 있는 숨겨진 상관관계를 발견할 수 있게 도와줍니다. 또한 시각화를 통해 편향이나 불균형한 데이터도 찾아낼 수 있습니다(분류 수업 참조).
데이터셋 분할
훈련 전에 데이터셋을 크기가 다르지만 데이터를 잘 대표할 수 있도록 두 개 이상의 부분으로 나누어야 합니다.
- 훈련(training). 데이터셋의 이 부분은 모델을 훈련시키는 데 적합하며 원본 데이터셋의 대부분을 차지합니다.
- 테스트(testing). 테스트 데이터셋은 독립적이고, 보통 원본 데이터에서 가져온 데이터 그룹이며, 구축된 모델의 성능을 확인하는 데 사용합니다.
- 검증(validating). 검증 세트는 하이퍼파라미터나 모델 구조를 조정하기 위한 작은 독립적 데이터 그룹입니다. 데이터 크기나 질문에 따라서는 검증 세트를 만들지 않아도 됩니다(시계열 예측에서 참고).
모델 구축
훈련 데이터를 사용해 여러 알고리즘으로 모델을 훈련시켜 데이터의 통계적 표현인 모델을 만드는 것이 목표입니다. 모델 훈련은 모델이 데이터 속의 패턴을 인식하고 가정하며 이를 검증하고 수용하거나 거부하는 과정을 포함합니다.
훈련 방법 결정
질문과 데이터 성격에 따라 훈련 방법을 선택합니다. 이 과정에서 본 강의에 사용되는 Scikit-learn 문서에 따라 여러 훈련 방법을 탐색할 수 있습니다. 경험에 따라 최고의 모델을 구축하기 위해 여러 방법을 시도해야 할 수도 있습니다. 데이터 과학자들은 모델에 본 적 없는 데이터를 먹여 정확도, 편향, 기타 품질 저하 문제를 확인하고 가장 적절한 훈련 방법을 찾는 과정을 거칩니다.
모델 훈련
훈련 데이터를 바탕으로 모델을 '적합(fit)'시키도록 준비합니다. 많은 ML 라이브러리에서 'model.fit' 코드를 볼 수 있는데, 이때 특성 변수(X 배열)와 타깃 변수(y 배열)를 전달합니다.
모델 평가
훈련 과정이 완료되면(대형 모델은 여러 반복 또는 '에포크'가 필요) 테스트 데이터를 사용해 모델 성능을 평가할 수 있습니다. 테스트 데이터는 모델이 본 적 없는 원본 데이터의 일부입니다. 모델 품질에 관한 지표를 표로 출력할 수 있습니다.
🎓 모델 적합
머신러닝 맥락에서 모델 적합은 익숙하지 않은 데이터를 분석하는 모델의 기본 함수 정확도를 의미합니다.
🎓 과대적합(overfitting)과 과소적합(underfitting)은 모델 품질을 떨어뜨리는 흔한 문제입니다. 과대적합은 모델이 훈련 데이터의 세부사항과 잡음을 너무 잘 학습해 너무 밀접하게 맞춘 상태이고, 과소적합은 훈련 데이터나 본 적 없는 데이터를 모두 정확하게 분석하지 못하는 상태입니다.
인포그래픽 by Jen Looper
파라미터 조정
초기 훈련이 끝나면 모델 품질을 관찰하고 '하이퍼파라미터'를 조정해 성능을 개선할 수 있습니다. 관련 과정은 문서에서 더 읽어보세요.
예측
이제 완전히 새로운 데이터를 사용해 모델 정확도를 테스트할 차례입니다. 실제 ML 환경에서는 사용자 입력(예: 버튼 클릭)을 받아 변수를 설정하고 모델에 전송해 추론 또는 평가를 수행할 수 있습니다.
이번 수업 과정에서 여러분은 데이터 과학자가 하는 모든 과정—준비, 구축, 테스트, 평가, 예측—을 배우고, ‘풀스택’ ML 엔지니어로 가는 여정을 이어갑니다.
🚀도전 과제
ML 실무자의 단계별 플로우차트를 그려보세요. 지금 현재 자신은 어느 단계에 있다고 생각하나요? 어디서 어려움을 느낄 것 같나요? 어디가 가장 쉽다고 생각하나요?
수업 후 퀴즈
복습 및 자기 주도 학습
데이터 과학자가 일상 업무에 대해 이야기하는 인터뷰를 온라인에서 찾아보세요. 여기에 하나 있습니다.
과제
면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원본 문서의 원어 버전을 권위 있는 출처로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인한 오해나 잘못된 해석에 대해서는 책임지지 않습니다.

