이 강의는 머신러닝의 핵심 개념과 기본 원리를 이해하고, 이를 실제 데이터 과학 문제에 활용하며, 분석 결과의 타당성을 스스로 판단하는 능력을 기르는 것을 목표로 한다.
인공지능, 머신러닝, 딥러닝, 데이터 과학¶
네 용어는 서로 관련되어 있지만 같은 의미는 아니다.
인공지능: 학습, 추론, 인지 등 인간의 지적 능력이 필요한 작업을 컴퓨터가 수행하도록 하는 기술 전반
머신러닝: 데이터에서 변수 사이의 관계나 데이터의 구조를 학습하여 새로운 데이터에 대한 예측이나 판단에 활용하는 방법
딥러닝: 다층 인공신경망을 이용하는 머신러닝의 한 분야
데이터 과학: 통계학, 데이터 분석, 머신러닝 등 다양한 방법을 이용해 데이터에서 유용한 정보와 지식을 얻고 문제를 해결하는 분야
데이터 과학에서는 머신러닝을 데이터를 이해하고 예측하며 판단하기 위한 중요한 도구로 활용한다.

왜 머신러닝을 배우는가?¶
생성형 AI는 이미 다음과 같은 일을 매우 잘한다.
코드 작성
머신러닝 모델 훈련
평가 지표 계산
코드 오류 수정
분석 방법과 모델 후보 제안
하지만 실제 머신러닝 분석에서는 여전히 사람이 판단해야 할 문제가 남는다.
무엇을 예측하거나 설명하려는가?
주어진 데이터로 그 질문에 답할 수 있는가?
어떤 특성과 타깃을 사용할 것인가?
데이터 누수는 없는가?
훈련 데이터와 평가 데이터는 적절하게 구분되었는가?
어떤 평가 지표를 사용할 것인가?
높은 성능을 그대로 믿어도 되는가?
모델은 어디에서 잘 작동하고 어디에서 실패하는가?
분석 결과로 어디까지 결론 내릴 수 있는가?
AI가 작성한 코드가 정확하더라도 분석 설계가 잘못되거나 결과의 해석이 부적절할 수 있다. 따라서 이 강의의 목표는 AI보다 코드를 더 잘 작성하는 것이 아니다.
AI와 머신러닝이 수행한 분석의 타당성을 이해하고 검증하며 판단할 수 있는 사람이 되는 것이 중요하다.
이 강의에서는 어떻게 배우는가?¶
이 강의에서는 핵심 개념을 짧게 이해한 뒤 실제 데이터 프로젝트에서 반복적으로 활용한다.
프로젝트는 다음 흐름을 따른다.
현실의 질문 → 데이터 이해 → 탐색적 데이터분석 → 문제 정의 → 머신러닝 모델링 → 평가 → 오류 분석 → 해석과 판단
수학은 이해를 위한 도구¶
머신러닝에는 선형대수, 미적분, 확률과 통계가 사용된다. 그러나 복잡한 수식 전개 자체를 목표로 하지 않는다.
필요한 수학은 다음과 같은 질문에 답할 수 있는 수준에서 다룬다.
이 모델은 어떤 방식으로 예측하는가?
모델은 데이터에서 무엇을 학습하는가?
모델의 복잡도가 증가하면 어떤 일이 생기는가?
평가 지표는 무엇을 측정하는가?
수학은 머신러닝을 어렵게 만드는 장벽이 아니라 모델의 행동을 이해하고 결과를 판단하기 위한 언어로 사용한다.
프로그래밍과 AI의 역할¶
긴 코드를 처음부터 직접 입력하거나 API 사용법을 암기하는 것을 수업의 중심에 두지 않는다.
대신 다음과 같은 **코드 리터러시(code literacy)**를 중요하게 다룬다.
AI가 생성한 코드를 읽고 전체 분석 흐름을 이해하기
특성과 타깃이 올바르게 설정되었는지 확인하기
전처리와 평가 과정이 적절한지 검토하기
필요한 부분의 코드를 수정하기
계산 결과가 실제 분석 질문과 연결되는지 판단하기
AI는 코드 작성과 분석 보조 도구로 적극 활용하되, 최종적인 분석 판단은 사람이 담당한다.
프로젝트에서 무엇을 판단하는가?¶
각 프로젝트에서는 알고리즘을 한 번 실행하는 데 그치지 않고 다음 질문을 반복한다.
문제와 데이터¶
무엇을 알고 싶은가?
각 행과 열은 무엇을 의미하는가?
데이터의 품질과 대표성에 문제가 없는가?
탐색¶
타깃은 어떻게 분포하는가?
집단 사이에는 어떤 차이가 있는가?
변수 사이에는 어떤 관계나 경향이 있는가?
모델과 평가¶
어떤 모델을 사용할 것인가?
어떤 지표로 평가할 것인가?
새로운 데이터에서도 잘 작동하는가?
해석과 판단¶
모델은 어디에서 잘 작동하고 어디에서 실패하는가?
분석 결과로 어떤 결론을 내릴 수 있는가?
무엇을 결론 내리면 안 되는가?
분석의 한계는 무엇인가?
프로젝트의 목적은 가장 높은 성능을 얻는 것이 아니라 분석 과정의 선택과 결과에 근거를 제시할 수 있게 되는 것이다.
이 강의에서 중요하게 생각하는 것¶
좋은 머신러닝 분석은 단순히 가장 높은 성능을 얻은 분석이 아니다.
좋은 분석은
문제를 적절하게 정의하고,
데이터를 충분히 이해하며,
분석 방법을 선택한 이유를 설명하고,
모델의 성능을 올바르게 평가하며,
오류와 한계를 해석하고,
AI가 생성한 코드와 분석을 검증하며,
최종 판단의 근거를 설명할 수 있는 분석이다.
이 강의의 학습 과정은 세 단계로 요약한다.
이해 → 활용 → 판단
머신러닝의 핵심 개념을 이해하고, 실제 데이터 프로젝트에서 활용하고, 그 결과의 타당성과 한계를 스스로 판단하는 것이 이 강의의 목표다.
실습 환경과 필수 라이브러리¶
실습은 Jupyter Notebook 환경에서 진행한다.
가장 간단하게는 브라우저에서 바로 사용할 수 있는 구글 코랩Google Colab을 이용할 수 있다. 로컬 환경에서는 아나콘다Anaconda와 비주얼 스튜디오 코드Visual Studio Code를 사용할 수 있다.
주로 사용하는 라이브러리는 다음과 같다.
| 라이브러리 | 주요 역할 |
|---|---|
| 사이킷런scikit-learn | 머신러닝 모델, 전처리, 평가 |
| 넘파이NumPy | 수치 계산과 배열 |
| 판다스Pandas | 테이블 형태 데이터 처리 |
| 맷플롯립Matplotlib | 데이터 시각화 |