Skip to main content
Summary

숫자를 맞히는 문제에서 시작하기

머신러닝을 처음 배울 때 가장 먼저 만나기 좋은 문제는 "숫자를 예측하는 문제"입니다. 내일 기온은 몇 도일까? 다음 달 매출은 얼마일까? 이 집의 적정 가격은 얼마일까? 택배가 도착하는 데 몇 시간이 걸릴까? 이런 질문에는 공통점이 있습니다. 답이 딱 정해진 이름이나 종류가 아니라, 크고 작음이 있는 숫자라는 점입니다.

이런 문제를 회귀(regression)라고 부릅니다. 회귀는 입력 데이터를 보고 어떤 연속적인 숫자 값을 예측하는 머신러닝 문제입니다. 여기서 연속적이라는 말은 값이 자연스럽게 이어질 수 있다는 뜻입니다. 집값은 3억 원, 3억 1천만 원, 3억 1천5백만 원처럼 계속 이어질 수 있습니다. 매출도 120만 원, 120만 5천 원, 121만 원처럼 크기가 이어집니다. 온도 역시 21도, 21.5도, 22도처럼 중간값이 얼마든지 가능합니다.

반대로 "스팸 메일인가, 정상 메일인가?", "고객이 이탈할 것인가, 남을 것인가?"처럼 정답이 종류로 나뉘는 문제는 다음 장에서 다룰 분류에 가깝습니다. 회귀는 종류를 고르는 것이 아니라 숫자의 위치를 맞히는 문제입니다.

회귀를 이해하면 머신러닝의 기본 구조가 아주 선명해집니다. 데이터를 준비하고, 특징을 만들고, 모델이 숫자를 예측하고, 실제값과 비교하고, 틀린 만큼 고치는 흐름이 거의 그대로 드러나기 때문입니다. 그래서 회귀는 머신러닝의 첫 실습 주제로 자주 등장합니다. 어렵고 복잡한 알고리즘을 몰라도, "예측한 숫자가 실제 숫자와 얼마나 떨어져 있는가?"라는 감각만 잡으면 출발할 수 있습니다.

회귀: 숫자를 예측하는 모델

회귀가 예측하는 것은 '값의 크기'다

회귀 모델의 목표는 입력을 보고 숫자 하나를 내놓는 것입니다. 예를 들어 집값 예측 모델을 생각해 봅시다. 모델에게 어떤 집의 정보를 입력합니다. 면적, 위치, 방 개수, 건축 연도, 지하철역까지의 거리 같은 정보가 들어갑니다. 그러면 모델은 "이 집은 약 6억 8천만 원쯤 될 것 같습니다"라고 예측합니다.

이때 모델이 내놓는 6억 8천만 원은 정답 후보 중 하나를 고른 것이 아닙니다. "A등급, B등급, C등급 중 B등급"이라고 말하는 것도 아닙니다. 숫자 축 위의 한 지점을 찍는 것입니다. 실제 거래가가 7억 원이었다면 모델은 2천만 원만큼 빗나간 셈입니다. 실제 거래가가 5억 원이었다면 훨씬 크게 틀린 것입니다.

회귀 문제에서는 값의 방향과 거리도 중요합니다. 예측값이 실제값보다 높으면 과대평가한 것이고, 낮으면 과소평가한 것입니다. 집값을 1억 원 높게 예측한 것과 1억 원 낮게 예측한 것은 둘 다 오차가 크지만, 실무에서는 의미가 다를 수 있습니다. 매출 예측에서 너무 높게 예측하면 재고를 많이 준비해 손해를 볼 수 있고, 너무 낮게 예측하면 팔 수 있는 기회를 놓칠 수 있습니다. 숫자 예측은 단순히 맞고 틀림의 문제가 아니라, 얼마나 어느 쪽으로 빗나갔는지를 함께 보는 문제입니다.

회귀가 자주 쓰이는 이유도 여기에 있습니다. 현실의 많은 의사결정은 숫자와 연결되어 있습니다. 가격을 정하고, 수요를 예측하고, 위험을 계산하고, 시간을 추정하고, 비용을 산정합니다. 이 숫자가 조금 더 정확해지면 의사결정도 조금 더 나아집니다.

집값 예측으로 보는 회귀의 기본 구조

집값 예측은 회귀를 설명하기에 좋은 예시입니다. 누구나 "집값은 여러 조건에 따라 달라진다"는 사실을 직관적으로 알고 있기 때문입니다. 넓은 집은 보통 더 비쌉니다. 지하철역과 가까운 집은 편리해서 가격이 올라갈 수 있습니다. 방이 많거나 새로 지은 집도 가격에 영향을 줄 수 있습니다. 물론 현실은 더 복잡합니다. 같은 면적이라도 동네에 따라 가격이 크게 다르고, 같은 동네라도 층수나 조망, 학군, 주변 시설에 따라 달라집니다.

머신러닝 모델은 이런 정보를 특징(feature)으로 받아들입니다. 특징은 모델이 예측에 사용할 수 있도록 정리된 입력 정보입니다. 집값 예측에서는 다음과 같은 것들이 특징이 될 수 있습니다.

  • 면적, 방 개수, 욕실 개수처럼 집 자체를 설명하는 정보

  • 위치, 지하철역까지의 거리, 주변 학교 수처럼 주변 환경을 설명하는 정보

  • 건축 연도, 리모델링 여부, 층수처럼 상태와 조건을 설명하는 정보

모델은 이 특징들과 실제 거래가 사이의 관계를 데이터에서 배웁니다. 예를 들어 학습 데이터에 "면적이 넓을수록 가격이 대체로 높다"는 패턴이 반복해서 등장한다면 모델은 면적을 중요한 단서로 여기게 됩니다. "역세권일수록 가격이 높다"는 패턴이 자주 보이면 지하철역까지의 거리도 중요한 단서가 됩니다. 반대로 어떤 특징이 가격과 거의 관련이 없다면 모델은 그 특징을 덜 중요하게 다루거나 무시하는 쪽으로 학습할 수 있습니다.

중요한 점은 모델이 사람처럼 부동산 뉴스를 읽고 의미를 이해하는 것이 아니라는 점입니다. 모델은 데이터 속에서 반복되는 숫자 관계를 찾습니다. 면적이 10㎡ 늘어날 때 가격이 어느 정도 변하는지, 같은 면적이라도 특정 지역이면 가격이 얼마나 달라지는지, 오래된 집일수록 가격이 어떻게 변하는지 같은 관계를 조정해 갑니다. 회귀 모델의 학습은 결국 "어떤 특징을 얼마나 반영해야 실제값에 가까운 숫자가 나오는가?"를 찾아가는 과정입니다.

하나의 특징만으로 예측해 보기

처음부터 많은 특징을 동시에 생각하면 복잡해 보일 수 있습니다. 잠시 집값을 오직 면적 하나만으로 예측한다고 상상해 봅시다. 아주 단순한 모델입니다. 이 모델은 "집이 넓을수록 비싸다"는 생각 하나만 가지고 움직입니다.

데이터를 들여다보니 50㎡ 집은 대략 4억 원, 70㎡ 집은 대략 5억 5천만 원, 90㎡ 집은 대략 7억 원에 거래되었다고 해 봅시다. 그러면 모델은 면적과 가격 사이에 어떤 기울기를 그려 볼 수 있습니다. 80㎡ 집이 들어오면 이 흐름을 따라 "약 6억 2천만 원 정도"라고 예측할 수 있습니다.

물론 실제 80㎡ 집이 모두 6억 2천만 원은 아닙니다. 어떤 집은 역과 가까워 7억 원일 수 있고, 어떤 집은 낡아서 5억 7천만 원일 수 있습니다. 면적 하나만으로는 설명하지 못하는 차이가 있기 때문입니다. 그래도 이 단순한 예시는 회귀의 핵심을 보여 줍니다. 모델은 입력 숫자와 출력 숫자 사이의 관계를 찾고, 새로운 입력이 들어오면 그 관계를 이용해 숫자를 예측합니다.

특징이 하나일 때는 머릿속에 선 하나를 그려 볼 수 있습니다. 가로축에는 면적, 세로축에는 가격을 놓습니다. 데이터 점들이 흩어져 있고, 모델은 그 점들 사이를 최대한 잘 지나가는 선을 찾으려고 합니다. 모든 점을 완벽히 지나가기는 어렵습니다. 현실 데이터에는 예외와 잡음이 있기 때문입니다. 대신 모델은 전체적으로 덜 틀리는 선을 찾습니다.

이 감각은 나중에 선형회귀를 배울 때 다시 등장합니다. 선형회귀는 회귀 모델 중 가장 기본적인 방식으로, 데이터에 잘 맞는 직선 또는 평면을 찾는 모델입니다. 지금은 수식보다 그림을 떠올리면 충분합니다. 흩어진 점들 사이로 "그럴듯한 선"을 긋고, 그 선 위에서 새 데이터의 값을 읽는 것입니다.

여러 특징이 함께 예측을 만든다

실전에서는 특징 하나만으로는 부족한 경우가 많습니다. 집값을 면적만으로 예측하면 놓치는 정보가 너무 많습니다. 같은 84㎡ 아파트라도 어느 도시에 있는지, 역까지 얼마나 가까운지, 지은 지 얼마나 되었는지에 따라 가격은 크게 달라집니다. 그래서 회귀 모델은 여러 특징을 함께 사용합니다.

여러 특징이 들어가면 모델의 역할은 조금 더 흥미로워집니다. 모델은 각 특징이 예측값에 어떤 방향으로, 얼마나 영향을 주는지 배웁니다. 면적은 가격을 올리는 쪽으로 작용할 수 있습니다. 역과의 거리는 가까울수록 가격을 올릴 수 있습니다. 건축 연도는 새 집일수록 가격을 올릴 수 있지만, 특정 지역에서는 오래된 재건축 기대감이 오히려 가격을 올릴 수도 있습니다.

이처럼 특징의 효과는 항상 단순하지 않습니다. 머신러닝이 필요한 이유가 여기에 있습니다. 사람이 모든 조건의 조합을 규칙으로 직접 쓰려면 금방 한계에 부딪힙니다. "면적이 넓으면 비싸다" 정도는 쉽게 말할 수 있지만, "면적이 넓고, 역에서 가깝고, 오래되었지만, 재건축 가능성이 있고, 특정 학군에 속할 때 가격이 어떻게 달라지는가"를 손으로 규칙화하기는 어렵습니다.

모델은 데이터를 통해 이런 조합의 힌트를 배웁니다. 물론 데이터에 없는 마법을 부리지는 못합니다. 학습 데이터가 부실하면 예측도 부실해집니다. 특정 지역의 거래 데이터만 보고 전국 집값을 예측하려 하면 잘 맞기 어렵습니다. 고급 주택 데이터가 거의 없는데 고급 주택 가격을 예측하려 하면 불안정해질 수 있습니다. 회귀 모델은 데이터에서 배운 만큼만 세상을 봅니다.

예측값과 실제값 사이의 거리

회귀에서 가장 중요한 질문은 이것입니다. "모델이 얼마나 틀렸는가?"

집값 예측 모델이 어떤 집의 가격을 6억 8천만 원으로 예측했는데 실제 거래가는 7억 원이었다고 해 봅시다. 이때 오차는 2천만 원입니다. 예측값과 실제값 사이의 거리라고 생각하면 됩니다. 다른 집에 대해서는 5억 원으로 예측했는데 실제값이 5억 5천만 원이었다면 오차는 5천만 원입니다. 또 다른 집에 대해서는 9억 원으로 예측했는데 실제값이 8억 원이었다면 차이는 1억 원입니다.

회귀 오차를 거리로 생각하면 직관적입니다. 숫자 축 위에 실제값이 있고, 모델의 예측값이 있습니다. 두 점이 가까우면 잘 맞힌 것이고, 멀면 많이 틀린 것입니다. 방향까지 보면 모델이 높게 예측했는지 낮게 예측했는지도 알 수 있습니다. 하지만 전체 성능을 볼 때는 보통 방향보다 "얼마나 떨어졌는가"를 먼저 봅니다.

여기서 중요한 문제가 하나 생깁니다. 모델은 한 건만 예측하지 않습니다. 수백 건, 수천 건, 수만 건을 예측합니다. 어떤 예측은 조금 틀리고, 어떤 예측은 크게 틀립니다. 그러면 모델 전체의 실력을 어떻게 한 숫자로 표현할 수 있을까요?

예를 들어 다섯 개의 집에 대해 오차가 각각 1천만 원, 2천만 원, 1천5백만 원, 3천만 원, 2천5백만 원이었다면 "대체로 2천만 원 정도 틀리는 모델"이라고 말할 수 있습니다. 이것이 회귀 평가의 출발점입니다. 여러 예측의 오차를 모아서 평균적으로 얼마나 틀리는지 보는 것입니다.

평균절대오차: 평균적으로 얼마나 떨어졌는가

회귀에서 자주 쓰이는 지표 중 하나가 평균절대오차(MAE, Mean Absolute Error)입니다. 이름이 조금 딱딱하지만 뜻은 단순합니다. 각 예측이 실제값과 얼마나 떨어졌는지 구하고, 그 거리들의 평균을 내는 방식입니다.

여기서 "절대"라는 말은 방향을 없앤다는 뜻입니다. 예측이 실제보다 1천만 원 높아도 1천만 원만큼 틀린 것이고, 실제보다 1천만 원 낮아도 1천만 원만큼 틀린 것입니다. 높게 틀렸는지 낮게 틀렸는지를 따지기보다, 일단 얼마나 멀리 떨어졌는지를 봅니다.

MAE의 장점은 해석이 쉽다는 것입니다. 집값 예측 모델의 MAE가 2천만 원이라면 "이 모델은 평균적으로 약 2천만 원 정도 빗나간다"고 이해할 수 있습니다. 온도 예측 모델의 MAE가 1.5도라면 "평균적으로 1.5도 정도 차이 난다"고 말할 수 있습니다. 단위가 원래 예측하려던 값과 같기 때문에 감각적으로 받아들이기 좋습니다.

작은 예를 들어 보겠습니다.

실제값예측값차이
1009010
10011010
10013030

세 번의 예측에서 차이는 10, 10, 30입니다. 이 거리들을 평균 내면 약 16.7입니다. 그러면 이 모델은 평균적으로 16.7 정도 틀린다고 볼 수 있습니다. 이처럼 MAE는 "평균 거리"라는 말로 거의 설명이 끝납니다.

MAE는 큰 오차 하나에 지나치게 휘둘리지 않는 편입니다. 물론 큰 오차도 평균을 올리지만, 뒤에서 볼 평균제곱오차만큼 강하게 벌을 주지는 않습니다. 그래서 이상하게 튀는 데이터가 조금 섞여 있을 때도 비교적 차분하게 모델의 평균적인 실수를 보여 줍니다.

평균제곱오차: 크게 틀린 예측을 더 엄하게 보기

또 하나 자주 쓰이는 지표가 평균제곱오차(MSE, Mean Squared Error)입니다. 이 지표는 오차를 그대로 평균 내지 않고, 오차를 한 번 곱해서 크게 만든 뒤 평균을 냅니다. 수식으로 생각하면 겁이 날 수 있지만 감각은 간단합니다. 작게 틀린 것은 작게 벌주고, 크게 틀린 것은 훨씬 더 크게 벌주는 방식입니다.

예를 들어 오차가 10이면 제곱했을 때 100이 됩니다. 오차가 30이면 제곱했을 때 900이 됩니다. 오차는 3배 차이지만, 제곱한 값은 9배 차이가 납니다. 그래서 MSE는 큰 실수를 매우 민감하게 반영합니다.

왜 이런 지표를 쓸까요? 어떤 문제에서는 크게 틀리는 것이 특히 위험하기 때문입니다. 수요 예측에서 어느 날의 수요를 조금 낮게 예측하는 정도는 감당할 수 있지만, 특정 이벤트 날의 수요를 엄청나게 낮게 예측하면 재고 부족, 배송 지연, 고객 불만이 한꺼번에 터질 수 있습니다. 의료 장비 수요, 서버 트래픽, 전력 사용량 같은 문제에서도 큰 오차는 큰 비용으로 이어질 수 있습니다. 이럴 때는 "평균적으로 적당히 맞히는 모델"보다 "큰 사고를 덜 내는 모델"이 더 중요할 수 있습니다.

MSE는 이런 모델을 찾는 데 도움이 됩니다. 큰 오차를 더 아프게 느끼도록 만들기 때문입니다. 모델 입장에서는 큰 오차를 줄여야 손실이 많이 줄어듭니다. 그래서 MSE를 기준으로 학습하면 큰 실수를 줄이는 방향으로 강하게 압박을 받습니다.

다만 MSE는 해석이 MAE보다 조금 어렵습니다. 집값 오차를 원 단위로 봤는데, 오차를 제곱하면 단위도 제곱된 것처럼 느껴져 직관이 떨어집니다. 그래서 실무에서는 MSE와 함께 다른 지표를 보거나, MSE에 다시 뿌리를 씌운 RMSE라는 지표를 사용하기도 합니다. RMSE는 여기서 깊게 다루지 않아도 됩니다. 지금은 MSE가 "큰 오차를 더 크게 혼내는 기준"이라는 감각만 잡으면 충분합니다.

MAE와 MSE를 언제 다르게 느껴야 할까

MAE와 MSE는 둘 다 회귀 모델의 오차를 측정하지만 성격이 다릅니다. MAE는 예측값과 실제값 사이의 평균적인 거리를 차분하게 보여 줍니다. MSE는 큰 오차에 민감하게 반응합니다. 그래서 같은 모델을 보더라도 두 지표가 주는 느낌이 다를 수 있습니다.

한 배달 앱이 음식 도착 시간을 예측한다고 생각해 봅시다. 대부분의 주문에서 5분 정도 틀리고, 가끔 40분씩 틀리는 모델이 있습니다. MAE로 보면 "평균적으로는 그럭저럭 괜찮다"고 나올 수 있습니다. 하지만 MSE로 보면 40분짜리 큰 오차가 강하게 반영되어 성능이 나쁘게 보일 수 있습니다. 사용자 입장에서도 5분 차이는 웃고 넘길 수 있지만, 40분 차이는 화가 날 수 있습니다. 이런 문제에서는 MSE가 보내는 경고를 무시하면 안 됩니다.

반대로 부동산 가격처럼 데이터 자체에 예외적인 거래가 섞일 수 있는 문제도 있습니다. 급매, 특수 거래, 가족 간 거래, 희소한 고급 매물처럼 일반적인 패턴에서 벗어난 값이 있을 수 있습니다. 이런 몇몇 데이터에 MSE가 지나치게 반응하면 모델이 전체적인 흐름보다 예외를 더 신경 쓰게 될 수도 있습니다. 그럴 때는 MAE가 더 안정적인 기준이 될 수 있습니다.

두 지표 중 무엇이 무조건 좋다고 말할 수는 없습니다. 중요한 것은 문제의 성격입니다. 큰 오차 하나가 치명적인 문제라면 MSE의 민감함이 장점이 됩니다. 전체적으로 평균적인 예측 거리를 알고 싶다면 MAE의 해석 가능성이 장점이 됩니다. 지표는 시험 점수표가 아니라 문제를 바라보는 렌즈입니다. 어떤 렌즈를 쓰느냐에 따라 모델의 장단점이 다르게 보입니다.

회귀 모델은 어디에 쓰일까

회귀는 머신러닝 실무에서 아주 자주 등장합니다. "숫자를 예측한다"는 목표가 워낙 많은 업무와 연결되어 있기 때문입니다. 예측하려는 숫자가 돈일 수도 있고, 시간일 수도 있고, 수량일 수도 있고, 점수일 수도 있습니다.

대표적인 회귀 문제는 다음과 같습니다.

  • 부동산 정보로 집값을 예측한다.

  • 과거 판매량과 계절 정보를 보고 다음 달 매출을 예측한다.

  • 날씨, 요일, 이벤트 정보를 보고 음식 배달 주문 수를 예측한다.

  • 고객의 사용 패턴을 보고 앞으로 쓸 금액을 예측한다.

  • 광고 노출, 클릭, 예산 정보를 보고 캠페인 성과를 예측한다.

이 예시들은 겉보기에는 서로 달라 보이지만 구조는 같습니다. 입력 데이터가 있고, 예측하고 싶은 숫자가 있습니다. 모델은 과거 데이터에서 입력과 숫자 사이의 관계를 배웁니다. 그리고 아직 결과를 모르는 새 데이터가 들어왔을 때 숫자를 예측합니다.

이 구조를 알면 주변의 많은 문제를 회귀 관점으로 바꿔 볼 수 있습니다. "이번 달 고객이 몇 명이나 가입할까?", "이 상품은 몇 개나 팔릴까?", "이 사용자는 다음 달에 얼마를 결제할까?", "이 작업은 몇 시간이 걸릴까?"처럼 물을 수 있다면 회귀 문제의 후보가 됩니다.

물론 모든 숫자 예측이 쉬운 것은 아닙니다. 주식 가격처럼 변동성이 큰 문제는 과거 데이터만으로 안정적으로 맞히기 어렵습니다. 사람의 행동이나 사회적 사건이 강하게 작용하는 문제도 어렵습니다. 회귀 모델은 미래를 점치는 수정구슬이 아닙니다. 데이터에 담긴 반복 가능한 패턴을 바탕으로 그럴듯한 숫자를 제안하는 도구입니다.

좋은 회귀 문제를 만드는 질문

회귀 모델을 만들기 전에 먼저 질문을 잘 세워야 합니다. "매출을 예측하고 싶다"는 말만으로는 부족합니다. 어느 기간의 매출인지, 어떤 상품의 매출인지, 예측 시점에 어떤 정보를 사용할 수 있는지 정해야 합니다.

예를 들어 "다음 달 매출을 예측한다"고 해 봅시다. 이때 모델이 사용할 수 있는 정보는 다음 달이 시작되기 전에 이미 알고 있는 것들이어야 합니다. 지난달 매출, 요일 수, 계절, 예정된 프로모션, 광고 예산 같은 정보는 쓸 수 있습니다. 하지만 다음 달이 끝나야 알 수 있는 실제 방문자 수나 실제 주문 수를 특징으로 넣으면 문제가 생깁니다. 예측 시점에는 알 수 없는 정보를 몰래 사용하게 되기 때문입니다. 이런 문제를 나중에 데이터 누수라고 부릅니다.

회귀 문제를 제대로 정의하려면 세 가지를 분명히 해야 합니다.

  • 무엇을 예측할 것인가: 집값, 매출, 온도, 수요, 소요 시간처럼 목표 숫자를 정한다.

  • 무엇을 보고 예측할 것인가: 예측 시점에 사용할 수 있는 특징을 정한다.

  • 얼마나 잘 맞혀야 쓸모 있는가: 평균 오차가 어느 정도면 실무적으로 받아들일 수 있는지 생각한다.

마지막 질문은 특히 중요합니다. 모델의 성능은 숫자로만 판단할 수 없습니다. 집값 예측에서 평균 오차 100만 원은 매우 훌륭할 수 있지만, 편의점 일일 매출 예측에서 평균 오차 100만 원은 너무 클 수 있습니다. 문제마다 숫자의 규모와 허용 가능한 오차가 다릅니다. 회귀 모델의 성능은 항상 맥락 안에서 해석해야 합니다.

회귀를 배울 때 흔히 하는 착각

회귀를 처음 배울 때 가장 흔한 착각은 "모델이 정확한 답을 찾아준다"는 생각입니다. 하지만 회귀 모델은 정답을 맞히는 기계라기보다, 불확실한 상황에서 그럴듯한 숫자를 추정하는 기계에 가깝습니다. 특히 현실 데이터에서는 같은 입력처럼 보이는 사례도 서로 다른 결과를 가질 수 있습니다.

같은 면적, 같은 방 개수, 같은 동네의 집이라도 실제 거래가는 다를 수 있습니다. 매도자의 사정, 거래 시점의 분위기, 내부 수리 상태, 층수, 조망, 협상 결과 같은 요소가 영향을 줍니다. 모델이 모든 정보를 알지 못하면 완벽히 맞힐 수 없습니다. 그래서 오차는 자연스러운 것입니다. 중요한 것은 오차가 없게 만드는 것이 아니라, 오차를 이해하고 줄이며 감당 가능한 수준으로 관리하는 것입니다.

두 번째 착각은 특징이 많을수록 항상 좋다는 생각입니다. 특징이 많으면 모델이 더 많은 정보를 볼 수 있는 것은 맞습니다. 하지만 쓸모없는 특징이나 잘못된 특징이 많으면 오히려 모델이 혼란스러워질 수 있습니다. 예를 들어 집값 예측에 무작위로 만든 숫자, 예측 시점에는 알 수 없는 정보, 특정 데이터에만 우연히 맞는 정보가 들어가면 모델은 진짜 패턴이 아니라 우연한 흔적을 배울 수 있습니다.

세 번째 착각은 학습 데이터에서 잘 맞으면 좋은 모델이라는 생각입니다. 모델이 과거 거래 데이터를 거의 완벽하게 맞혔다고 해서 새로운 집값도 잘 맞힌다는 보장은 없습니다. 과거 데이터의 작은 예외까지 외워 버리면 새 데이터에서 오히려 성능이 떨어질 수 있습니다. 이것이 나중에 자세히 배울 과적합입니다. 회귀에서도 중요한 것은 이미 본 데이터에 대한 암기가 아니라, 새로운 데이터에 대한 예측력입니다.

회귀의 흐름 다시 보기

이제 회귀 문제의 전체 흐름을 다시 연결해 봅시다. 집값 예측을 예로 들면 먼저 과거 거래 데이터를 모읍니다. 각 집에 대해 면적, 위치, 방 개수, 건축 연도 같은 특징을 정리합니다. 그리고 실제 거래가를 라벨로 둡니다. 모델은 이 데이터를 보면서 특징과 가격 사이의 관계를 배웁니다.

학습이 시작되면 모델은 처음에는 어설픈 예측을 합니다. 어떤 집은 너무 높게, 어떤 집은 너무 낮게 예측합니다. 예측값과 실제값을 비교하면 오차가 나옵니다. 이 오차를 MAE나 MSE 같은 기준으로 측정합니다. 그리고 모델은 오차를 줄이는 방향으로 자기 내부의 규칙을 조금씩 고칩니다. 이 과정을 반복하면 모델은 점점 데이터의 패턴에 맞는 예측을 하게 됩니다.

결국 회귀의 핵심 구조는 다음과 같습니다.

  • 데이터를 준비하고 숫자 라벨을 정한다.

  • 특징을 이용해 모델이 예측값을 만든다.

  • 실제값과 예측값의 거리를 보고 모델을 고친다.

이 세 줄 안에 회귀의 대부분이 들어 있습니다. 앞으로 선형회귀, 결정트리, 랜덤포레스트, 그래디언트 부스팅 같은 다양한 모델을 배우게 되지만, 이 기본 구조는 크게 달라지지 않습니다. 모델의 모양과 학습 방식은 달라져도 목표는 같습니다. 더 쓸모 있는 숫자를 예측하는 것입니다.

다음 장으로 가기 전에

회귀는 숫자를 예측하는 문제입니다. 집값, 매출, 수요, 온도, 시간처럼 크기가 이어지는 값을 다룹니다. 모델은 특징을 보고 예측값을 만들고, 실제값과의 차이를 줄이는 방향으로 학습합니다. 오차는 예측값과 실제값 사이의 거리로 이해할 수 있습니다. MAE는 평균적인 거리의 감각을 주고, MSE는 크게 틀린 예측을 더 엄하게 바라봅니다.

이제 우리는 지도학습의 한쪽 축을 이해했습니다. 숫자를 맞히는 문제가 회귀라면, 다음 장에서 다룰 문제는 "정답의 종류를 고르는 문제"입니다. 메일이 스팸인지 아닌지, 승객이 생존했는지 아닌지, 고객이 이탈할지 남을지처럼 선택지가 있는 문제입니다. 회귀에서 숫자 축 위의 한 지점을 찍었다면, 분류에서는 여러 칸 중 하나를 고릅니다.

다음 장에서는 이 차이를 더 선명하게 느껴 보겠습니다. 머신러닝 모델이 숫자를 예측할 때와 종류를 고를 때, 무엇이 같고 무엇이 달라지는지 살펴보겠습니다.

책 목록

처음 만나는 머신러닝: 데이터가 스스로 규칙을 배우는 법

전체 목차 보기

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

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

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

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

참여하기