Skip to main content
Summary

이 장에서 배울 것

권1에서 AI의 큰 그림을 보았다면, 이 장부터는 머신러닝이 실제로 문제를 푸는 방식을 배웁니다. 이 장의 목표는 모델 이름을 외우는 것이 아닙니다. 문제를 데이터로 바꾸고, 데이터에서 패턴을 배우게 하는 흐름을 이해하는 것입니다.

이 장을 마치면 다음을 설명할 수 있어야 합니다.

  • 전통적인 프로그래밍과 머신러닝의 차이

  • 데이터, 특징, 정답, 모델, 학습, 예측, 손실의 의미

  • 지도학습, 비지도학습, 강화학습의 큰 차이

  • 분류와 회귀 문제의 구분

  • scikit-learn 예제 데이터셋에서 입력 데이터와 정답 데이터를 확인하는 방법

머신러닝이 문제를 푸는 방식

왜 이 주제가 중요한가

전통적인 프로그래밍에서는 사람이 규칙을 직접 씁니다. 예를 들어 이메일 제목에 무료, 당첨, 긴급 같은 단어가 많이 들어가면 스팸으로 분류하라는 규칙을 만들 수 있습니다.

흐름은 다음과 같습니다.

입력 + 사람이 작성한 규칙 → 출력

반면 머신러닝에서는 사람이 모든 규칙을 직접 쓰지 않습니다. 대신 많은 예시 데이터를 보여 줍니다. 예를 들어 스팸 메일과 정상 메일의 예시를 많이 주면, 모델이 둘의 차이를 스스로 찾아냅니다.

흐름은 다음과 같습니다.

입력 + 정답 → 학습된 모델
새 입력 + 학습된 모델 → 예측

여기서 중요한 변화가 있습니다. 프로그래밍의 중심이 규칙 작성에서 데이터 준비와 문제 정의로 이동합니다. 좋은 머신러닝 모델을 만들려면 먼저 어떤 데이터를 쓸지, 무엇을 맞히게 할지, 결과를 어떻게 평가할지 정해야 합니다.

핵심 개념 설명

머신러닝의 기본 흐름은 크게 네 단계로 볼 수 있습니다.

데이터 준비 → 모델 학습 → 예측 → 평가

데이터와 특징

데이터는 모델이 배울 재료입니다. 표 형태의 데이터라면 보통 한 행은 하나의 사례를 뜻합니다. 예를 들어 붓꽃 데이터에서 한 행은 꽃 한 송이에 대한 정보입니다.

특징은 예측에 사용할 입력 정보입니다. 영어로는 feature라고 합니다. 꽃잎 길이, 꽃잎 너비, 키, 몸무게, 방문 횟수, 구매 금액처럼 모델에게 알려 주는 값입니다.

특징은 보통 X로 표시합니다. 수학 기호라서 어렵게 느껴질 수 있지만, 여기서는 단순히 입력 데이터라고 이해하면 됩니다.

정답

정답은 모델이 맞혀야 하는 값입니다. 영어로는 label 또는 target이라고 합니다. 스팸 여부, 집값, 고객 이탈 여부, 품종 이름 등이 정답이 될 수 있습니다.

정답은 보통 y로 표시합니다. 예를 들어 고객 정보로 이탈 여부를 예측한다면, 고객 정보는 X, 이탈했는지 여부는 y입니다.

모델

모델은 데이터에서 패턴을 배워 예측에 사용하는 계산 구조입니다. 처음에는 아무것도 모르는 상태입니다. 데이터를 보면서 어떤 특징이 정답과 관련 있는지 조정해 갑니다.

이 책에서는 선형 회귀, 로지스틱 회귀, 트리, kNN 같은 기본 모델을 배웁니다. 하지만 지금은 모델 이름보다 역할이 더 중요합니다. 모델은 입력을 받아 예측을 내놓는 함수라고 생각하면 됩니다.

모델(입력 데이터) → 예측값

학습

학습은 모델이 데이터에서 패턴을 찾는 과정입니다. 사람이 규칙을 하나하나 쓰는 대신, 모델이 예시를 보고 내부 기준을 조정합니다.

예를 들어 꽃잎이 길고 넓으면 특정 품종일 가능성이 높다는 식의 관계를 모델이 찾아냅니다. 모델마다 패턴을 찾는 방식은 다르지만, 목표는 같습니다. 새 데이터가 들어왔을 때 더 잘 맞히는 것입니다.

예측

예측은 학습된 모델에 새로운 입력을 넣고 결과를 얻는 과정입니다. 예측은 미래만 뜻하지 않습니다. 이미 있는 대상의 값을 추정하는 것도 예측입니다. 예를 들어 지금 들어온 이메일이 스팸인지 판단하는 것도 예측입니다.

손실

손실은 모델이 얼마나 틀렸는지를 숫자로 나타낸 값입니다. 손실이 크면 많이 틀린 것이고, 손실이 작으면 덜 틀린 것입니다.

모델은 학습 중에 손실을 줄이는 방향으로 조정됩니다. 이때 손실은 모델에게 주는 채점표와 비슷합니다. 단, 손실이 낮다고 해서 항상 좋은 모델이라는 뜻은 아닙니다. 훈련 데이터만 외운 모델은 새 데이터에서 약할 수 있습니다. 이 문제는 훈련 데이터와 테스트 데이터에서 더 자세히 다룹니다.

지도학습, 비지도학습, 강화학습

머신러닝은 학습 방식에 따라 크게 나눌 수 있습니다.

지도학습은 정답이 있는 데이터를 사용합니다. 입력과 정답을 함께 주고, 모델이 둘 사이의 관계를 배우게 합니다. 예를 들어 고객 정보와 이탈 여부, 집 정보와 집값, 이메일 내용과 스팸 여부를 함께 주는 방식입니다. 이 책의 앞부분은 주로 지도학습을 다룹니다.

비지도학습은 정답 없이 데이터의 구조를 찾습니다. 고객을 비슷한 행동 패턴끼리 묶거나, 복잡한 데이터를 더 간단한 형태로 줄이는 작업이 여기에 속합니다. 이 책에서는 차원 축소와 군집에서 기초를 다룹니다.

강화학습은 어떤 환경에서 행동을 선택하고 보상에 따라 더 나은 행동을 배우는 방식입니다. 게임, 로봇 제어, 추천 전략 같은 분야에서 사용됩니다. 다만 이 책의 중심 주제는 아닙니다. 여기서는 이런 방식도 있다는 정도만 알고 넘어갑니다.

분류와 회귀

지도학습 문제는 다시 분류와 회귀로 나눌 수 있습니다.

분류는 정답이 범주일 때 사용합니다. 스팸 또는 정상, 합격 또는 불합격, 고양이 또는 강아지처럼 몇 개의 종류 중 하나를 고르는 문제입니다.

회귀는 정답이 숫자일 때 사용합니다. 집값, 매출, 온도, 배송 시간처럼 연속적인 값을 예측하는 문제입니다.

중요한 점은 같은 데이터도 문제 정의에 따라 다른 과제가 될 수 있다는 것입니다.

예를 들어 집 데이터를 생각해 봅시다. 방 개수, 면적, 위치, 건축 연도 같은 특징이 있습니다. 정답을 집값이라는 숫자로 잡으면 회귀 문제입니다. 정답을 비싼 집과 보통 집으로 나누면 분류 문제입니다. 정답 없이 비슷한 집끼리 묶으면 비지도학습의 군집 문제가 됩니다.

따라서 머신러닝을 시작할 때 첫 질문은 어떤 모델을 쓸까가 아닙니다. 먼저 무엇을 예측할까, 정답은 무엇인가, 정답이 숫자인가 범주인가를 물어야 합니다.

쉬운 비유: 문제집을 푸는 학생

머신러닝 모델을 문제집으로 공부하는 학생에 비유해 봅시다.

학생에게 문제와 정답지를 함께 줍니다. 학생은 문제를 풀어 보고 정답과 비교합니다. 많이 틀린 부분은 다시 고칩니다. 이 과정이 반복되면 학생은 비슷한 새 문제를 더 잘 풀게 됩니다.

머신러닝도 비슷합니다. 입력 데이터는 문제, 정답 데이터는 정답지, 모델은 학생, 손실은 채점 결과입니다. 학습은 채점 결과를 바탕으로 풀이 방식을 고치는 과정입니다.

하지만 차이도 있습니다. 사람은 의미를 이해하고 배경지식을 활용할 수 있지만, 기본적인 머신러닝 모델은 데이터에 드러난 패턴에 크게 의존합니다. 그래서 잘못된 데이터로 학습하면 잘못된 판단을 반복할 수 있습니다. 이 책 후반부에서 오류 분석과 공정성 점검을 다루는 이유가 여기에 있습니다.

직접 해보는 실습

이번 실습에서는 scikit-learn에 들어 있는 붓꽃 데이터셋을 불러와 입력 데이터와 정답 데이터의 모양을 확인합니다. 아직 모델을 학습하지 않습니다. 먼저 데이터가 어떻게 생겼는지 보는 것이 목표입니다.

1단계: 라이브러리 준비

아래 코드가 실행되지 않는다면 먼저 scikit-learn과 pandas를 설치합니다.

pip install scikit-learn pandas

2단계: 데이터셋 불러오기

from sklearn.datasets import load_iris

iris = load_iris(as_frame=True)

X = iris.data
y = iris.target

print(type(X))
print(type(y))
print(X.shape)
print(y.shape)

예상되는 출력은 대략 다음과 같습니다.

<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.series.Series'>
(150, 4)
(150,)

X.shape가 (150, 4)라는 뜻은 데이터가 150행, 4열이라는 의미입니다. 즉 꽃 150송이에 대해 4개의 특징을 가지고 있습니다. y.shape가 (150,)라는 뜻은 각 꽃마다 정답이 하나씩 있다는 의미입니다.

3단계: 특징 이름과 정답 이름 확인

print(iris.feature_names)
print(iris.target_names)

print(X.head())
print(y.head())

특징 이름에는 꽃받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비가 들어 있습니다. 정답 이름에는 세 가지 붓꽃 품종이 들어 있습니다.

여기서 문제를 정의하면 다음과 같습니다.

입력: 꽃의 길이와 너비 정보 4개
정답: 붓꽃 품종
문제 유형: 분류

모델은 아직 만들지 않았습니다. 하지만 이미 중요한 준비를 했습니다. 입력과 정답을 나누고, 문제 유형을 확인했습니다. 머신러닝 프로젝트는 항상 이 단계에서 시작합니다.

4단계: 스스로 확인하기

다음 질문에 답해 보세요.

  • 이 데이터의 한 행은 무엇을 뜻하는가?

  • 이 데이터의 특징은 몇 개인가?

  • 정답은 숫자처럼 보이는데 왜 회귀가 아니라 분류인가?

  • 만약 정답이 꽃잎 길이였다면 문제 유형은 무엇이 되었을까?

세 번째 질문이 중요합니다. y에는 0, 1, 2라는 숫자가 들어 있지만, 이 숫자는 크기를 뜻하지 않습니다. 품종 이름을 대신 표시한 코드입니다. 따라서 이 문제는 회귀가 아니라 분류입니다.

흔한 실수와 오류 분석

첫 번째 실수는 정답을 특징에 섞는 것입니다. 예를 들어 고객 이탈 여부를 예측하면서 이탈 여부 열을 입력 데이터에 넣으면 모델은 답을 보고 맞히는 셈이 됩니다. 이런 문제를 데이터 누수라고 합니다. 성능은 높게 나오지만 실제 상황에서는 쓸 수 없습니다.

두 번째 실수는 숫자 정답을 모두 회귀로 생각하는 것입니다. 0, 1, 2가 숫자로 저장되어 있어도 실제 의미가 종류라면 분류입니다. 반대로 가격이나 시간처럼 크기와 차이가 의미 있는 숫자라면 회귀입니다.

세 번째 실수는 모델 이름부터 고르는 것입니다. 초보자는 랜덤 포레스트가 좋을까, SVM이 좋을까를 먼저 고민하기 쉽습니다. 하지만 그보다 먼저 해야 할 일은 문제 정의입니다. 정답이 무엇인지, 분류인지 회귀인지, 입력으로 어떤 특징을 사용할지 정해야 합니다.

네 번째 실수는 학습 데이터에서 잘 맞으면 끝났다고 생각하는 것입니다. 모델은 훈련 데이터의 패턴을 외울 수도 있습니다. 그래서 새 데이터에서도 잘 작동하는지 확인해야 합니다. 이 주제는 훈련 데이터와 테스트 데이터, 평가 지표와 교차검증에서 자세히 다룹니다.

요약

머신러닝은 사람이 모든 규칙을 직접 쓰는 대신, 데이터에서 규칙에 가까운 패턴을 배우게 하는 방법입니다. 입력 데이터는 X, 정답 데이터는 y로 자주 표현합니다. 모델은 입력을 받아 예측을 만들고, 학습은 손실을 줄이는 방향으로 모델을 조정하는 과정입니다.

지도학습은 정답이 있는 학습, 비지도학습은 정답 없이 구조를 찾는 학습, 강화학습은 행동과 보상을 통해 배우는 학습입니다. 이 책에서는 지도학습과 비지도학습의 기초에 집중합니다.

분류는 범주를 맞히는 문제이고, 회귀는 숫자를 예측하는 문제입니다. 같은 데이터라도 정답을 어떻게 정의하느냐에 따라 분류, 회귀, 군집 문제가 될 수 있습니다.

퀴즈

  1. 전통적인 프로그래밍과 머신러닝의 차이를 입력, 규칙, 출력의 관계로 설명해 보세요.

  2. 특징과 정답의 차이는 무엇인가요?

  3. 손실은 모델 학습에서 어떤 역할을 하나요?

  4. 이메일이 스팸인지 아닌지 판단하는 문제는 분류인가요, 회귀인가요?

  5. 집의 면적과 위치로 집값을 예측하는 문제는 분류인가요, 회귀인가요?

  6. 정답이 0, 1, 2로 저장되어 있으면 항상 회귀 문제인가요? 이유를 설명해 보세요.

  7. 같은 집 데이터로 만들 수 있는 분류 문제와 회귀 문제를 각각 하나씩 적어 보세요.

체크리스트

  • 머신러닝을 데이터에서 패턴을 배우는 과정으로 설명할 수 있다.

  • 특징과 정답을 구분할 수 있다.

  • 모델, 학습, 예측, 손실의 의미를 말할 수 있다.

  • 지도학습, 비지도학습, 강화학습의 차이를 대략 설명할 수 있다.

  • 분류와 회귀 문제를 생활 속 예시로 구분할 수 있다.

  • scikit-learn 예제 데이터셋에서 X.shape와 y.shape를 확인할 수 있다.

다음 장 연결

이번 장에서는 머신러닝이 문제를 푸는 전체 흐름을 살펴보았습니다. 하지만 실제 프로젝트에서는 데이터가 처음부터 깔끔하게 준비되어 있지 않습니다. 어떤 열을 특징으로 쓸지, 무엇을 정답으로 삼을지, 문제를 분류로 볼지 회귀로 볼지 결정해야 합니다.

다음 장에서는 데이터셋을 읽고 문제를 정의하는 방법을 배웁니다. 머신러닝의 출발점은 모델 선택이 아니라 좋은 질문을 만드는 일입니다.

책 목록

AI 교육 2권 : 머신러닝 기초: 데이터로 배우고 검증하는 첫 모델

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기