데이터 과학

데이터 모델의 이해

흩어져 있는 점 수백 개에서
선 하나를 찾아내면
무엇을 할 수 있을까요?

학습 목표

  1. 데이터 모델이 무엇인지 설명하고, 데이터 모델링이 분석 과정의 어느 지점에서 이루어지는지 말할 수 있다.
  2. 주어진 문제 상황에서 독립 변수와 종속 변수를 구별할 수 있다.
  3. 회귀 · 분류 · 군집 · 연관 네 가지 모델을 목적에 따라 구분하고, 어떤 문제에 어떤 모델이 맞는지 고를 수 있다.

데이터 모델이란 무엇일까?

데이터를 정리하고 살펴본 다음에는 데이터로 무언가를 알아맞히는 단계가 옵니다.

데이터 모델은 데이터 속에 들어 있는 속성들의 관계나 패턴을 붙잡아 간소화된 형태로 나타낸 것입니다.

세상은 너무 복잡해서 있는 그대로는 다룰 수가 없습니다. 그래서 사람은 늘 중요한 것만 남기고 나머지를 덜어 낸 표현을 만들어 세상을 이해해 왔습니다. 지하철 노선도가 실제 지형과 거리를 버리고 역의 순서와 환승 지점만 남긴 것도 같은 방식입니다. 데이터 모델도 마찬가지로, 수백 수천 개의 값 사이에서 「대체로 이런 관계가 있다」는 것만 남깁니다. 분야에 따라 수식으로 나타내기도 하고 그림이나 규칙으로 나타내기도 합니다.

덜어 냈기 때문에 모델은 현실과 완전히 같지 않습니다. 그런데도 쓸모가 있는 이유는, 남겨 둔 관계만으로도 아직 보지 못한 값을 짐작할 수 있기 때문입니다.

모델은 이미 우리 곁에 있습니다 — 일기예보

기상청은 내일 날씨를 알아맞히기 위해 수치예보 모델을 사용합니다. 기온 · 기압 · 습도 · 바람처럼 관측된 값을 넣으면 대기가 앞으로 어떻게 움직일지를 계산해 주는 모델입니다. 이 모델은 계산량이 엄청나서 슈퍼컴퓨터로 실행합니다. 관측 자료와 모델이 정교해질수록 예보도 대체로 더 잘 맞습니다.

기상청 수치예보 자료는 기상자료개방포털에서 볼 수 있습니다 — data.kma.go.kr

일기예보가 「내일 강수 확률 60%」라고 말하는 것도 모델의 성질을 잘 보여 줍니다. 모델은 확실한 답이 아니라 가장 그럴듯한 답을 내놓습니다. 그래서 모델을 만든 다음에는 반드시 얼마나 잘 맞히는지 평가하는 과정이 따라붙습니다.

점 수백 개에서 선 하나를 찾는다는 것

아래는 전기 자동차의 배터리 용량과 1회 충전 주행 거리를 산점도로 그린 것입니다. 점 하나가 자동차 한 대입니다. 점들은 제각각이지만 왼쪽 아래에서 오른쪽 위로 흐르는 경향이 보입니다.

전기 자동차의 배터리 용량과 1회 충전 주행 거리
가로축: 배터리 용량(kWh) · 세로축: 1회 충전 주행 거리(km)
점은 원자료의 경향을 모방해 그린 것이라 하나하나가 실제 값과 같지는 않습니다.
원출처: 캐글 kaggle.com/datasets/geoffnel/evs-one-electric-vehicle-dataset

배터리 용량이 큰 차일수록 주행 거리도 대체로 긴 편입니다. 두 속성 사이에 관계가 있다는 뜻입니다.

빨간 직선이 바로 데이터 모델입니다. 점 열다섯 개를 선 하나로 줄여 놓은 것입니다. 어느 점도 이 선 위에 정확히 놓여 있지 않지만, 전체 경향은 이 선이 가장 잘 설명합니다.

선이 하나 생기면 표에 없던 차에 대해서도 답할 수 있습니다. 「배터리가 72 kWh인 새 모델은 몇 km나 갈까?」 — 선 위에서 읽으면 됩니다. 이것이 예측입니다.

스스로 확인

산점도의 어느 점도 빨간 선 위에 정확히 있지 않습니다. 그런데도 이 선을 「데이터를 잘 나타낸 모델」이라고 부르는 이유는 무엇일까요? 모든 점을 지나가는 구불구불한 선을 그렸다면 더 좋은 모델이 되었을까요?

데이터 모델링은 언제 하는 일일까?

전처리와 탐색적 데이터 분석은 이 단계를 위한 준비입니다.

데이터 모델링은 통계 분석 · 기계학습(식의 모양을 미리 정해 두지 않고 규칙을 데이터로부터 직접 만드는 방법) 같은 여러 기법으로 데이터를 이해하고 예측하는 모델을 만드는 과정입니다. 주로 예측 · 분류 · 군집화에 사용합니다.

데이터 모델링은 데이터를 받자마자 하는 일이 아닙니다. 전처리와 탐색적 데이터 분석이 모두 끝난 뒤에 놓입니다. 순서가 이렇게 정해진 데에는 이유가 있습니다.

전처리가 먼저인 이유

결측치와 이상치가 남아 있으면 모델이 그 잘못된 값까지 관계로 착각해 배웁니다. 거리를 측정하는 방법에서는 단위가 제각각인 속성을 그대로 넣으면 값이 큰 속성 하나가 결과를 독차지합니다.

탐색이 먼저인 이유

어떤 속성끼리 관계가 있는지 미리 보아 두지 않으면 어떤 모델을 써야 할지 고를 수가 없습니다. 산점도가 직선으로 흐르는지 뭉쳐 있는지에 따라 골라야 할 모델이 달라집니다.

데이터 분석 과정에서 모델링이 놓이는 단계

  1. 1

    문제 정의

    무엇을 알고 싶은지 정한다

  2. 2

    데이터 수집과 특성 파악

    필요한 데이터를 모으고 살펴본다

  3. 3

    데이터 전처리

    결측치 · 이상치를 다루고 형태를 맞춘다

  4. 4

    탐색적 데이터 분석

    통곗값과 시각화로 데이터의 생김새를 파악한다

  5. 5

    데이터 모델링 지금 여기

    속성 사이의 관계를 모델로 만들고, 얼마나 잘 맞히는지 측정해 더 나은 모델로 바꾼다

  6. 6

    결과 해석과 공유

    알아낸 것을 해석하고 다른 사람과 나누어 의사 결정에 쓴다

한 번에 끝나지 않습니다

모델을 평가해 보니 잘 맞히지 못하면 앞 단계로 돌아갑니다. 다른 모델로 바꾸어 보기도 하고, 전처리를 다시 하기도 하고, 아예 데이터를 더 모으러 가기도 합니다. 이 되돌아가기가 데이터 과학에서는 실패가 아니라 정상적인 절차입니다.

스스로 확인

전처리를 건너뛰고 곧바로 모델을 만들었다고 해 봅시다. 모델은 어떻게든 만들어집니다. 오류가 나지도 않습니다. 그런데도 이 모델을 믿으면 안 되는 이유를 결측치와 이상치 두 단어를 써서 설명해 보세요.

독립 변수와 종속 변수는 어떻게 나눌까?

모델을 수식으로 쓰려면 먼저 어느 것을 넣고 어느 것을 알아맞힐지 정해야 합니다.

독립 변수(independent variable)

답을 가늠하는 근거로 모델에 입력으로 넣는 속성입니다. 독립 변수가 곧 원인이라는 뜻은 아닙니다. 수식에서는 보통 x로 씁니다.

종속 변수(dependent variable)

독립 변수의 값을 보고 알아맞히려는 속성입니다. 수식에서는 보통 y로 씁니다.

현실의 데이터에서 두 속성의 관계를 수학적으로 나타내려면 수식이 필요합니다. 가장 단순한 형태가 일차함수입니다.

y = ax + b

기호 이름 뜻
x 독립 변수 우리가 넣는 값. 수식은 이 값에 따라 y를 계산한다
y 종속 변수 모델이 내놓는 값. 알아맞히려는 대상
a 기울기 식 위에서 x가 1만큼 커질 때 y가 얼마나 바뀌는지를 나타낸다. 관찰한 데이터로 읽을 때는 x가 1 큰 데이터끼리 y가 얼마나 다른지를 비교하는 말이다. 관계의 방향과 x에 따라 y가 바뀌는 정도가 여기에 담긴다. 관계의 세기(얼마나 잘 맞는지)는 따로 상관계수로 본다
b 절편 x가 0일 때의 y값. 선의 높이를 맞춰 주는 숫자다. x가 0인 상황이 현실에 없다면 b 자체에는 현실적인 뜻이 없을 수도 있다

앞 산점도의 빨간 직선도 결국 a와 b라는 숫자 두 개일 뿐입니다. 데이터에 가장 잘 맞는 a와 b를 찾아내는 일, 그것이 회귀 모델을 만드는 일입니다. 독립 변수가 여러 개일 때는 독립 변수 하나마다 계수가 하나씩 붙어 항이 늘어납니다.

어느 쪽이 독립 변수일까

알고 싶은 것 독립 변수 (x) 종속 변수 (y)
배터리 용량으로 주행 거리를 알아맞히고 싶다 배터리 용량 주행 거리
기온으로 그날의 전력 사용량을 알아맞히고 싶다 기온 전력 사용량
집의 면적과 지어진 연도로 집값을 알아맞히고 싶다 면적, 지어진 연도 집값
동아리 홍보 게시물 수로 지원자 수를 알아맞히고 싶다 게시물 수 지원자 수

헷갈리면 「무엇을 알아맞히고 싶은가」를 먼저 물어보세요. 그 답이 종속 변수이고, 나머지가 독립 변수입니다.

상관관계와 인과 관계는 다릅니다

독립 변수와 종속 변수를 정한다는 것은 「이쪽이 원인이고 저쪽이 결과다」라고 말하는 것처럼 보입니다. 그런데 데이터가 알려 주는 것은 거기까지가 아닙니다.

상관관계(correlation)

두 속성이 함께 움직인다는 사실. 한쪽이 큰 데이터일수록 다른 쪽도 크거나 작은 경향이 있다는 뜻입니다. 데이터만으로 확인할 수 있습니다.

인과 관계(causation)

한쪽이 다른 쪽을 일으킨다는 사실. 원인과 결과의 방향이 정해져 있습니다. 관찰한 데이터만으로는 확인하기 어렵습니다.

상관관계가 있다고 해서 원인인 것은 아닙니다

아이스크림이 많이 팔린 날에는 물놀이 사고도 많습니다. 두 값이 함께 오르내리므로 상관관계는 분명히 있습니다. 그렇다고 아이스크림이 사고의 원인은 아닙니다. 기온이라는 제3의 속성이 둘 모두를 끌어올린 것뿐입니다.

모델은 함께 움직인다는 사실까지만 알려 줍니다. 무엇이 원인인지는 사람이 판단해야 합니다. 독립 변수와 종속 변수를 정할 때 이 점을 늘 의심해 보아야 합니다.

스스로 확인

「아침을 먹은 학생이 성적이 높다」는 조사 결과가 있다고 합시다. 여기서 독립 변수와 종속 변수는 각각 무엇일까요? 이 결과는 상관관계일까요, 인과 관계일까요? 둘 모두를 끌어올렸을 법한 제3의 속성을 하나 떠올려 보세요.

데이터 모델에는 어떤 것들이 있을까?

무엇을 알고 싶은가가 모델을 정합니다.

데이터 모델은 목적에 따라 크게 네 갈래로 나뉩니다. 여기서는 네 모델이 어떻게 다른지를 살펴봅니다.

모델 하는 일 만드는 방법
회귀 모델 독립 변수와 종속 변수의 관계를 나타낸다. 과거 데이터로 모델을 만들어 두면 새로 들어온 데이터의 값을 예측할 수 있다 통계적 방법 또는 기계학습
분류 모델 입력 데이터를 서로 다른 범주(클래스)로 나눈다. 새 데이터가 어느 범주에 속하는지 예측한다 로지스틱 회귀, 의사결정트리, 인공신경망
로지스틱 회귀는 이름과 달리 분류에 쓴다
군집 모델 서로 비슷한 속성을 가진 것끼리 묶는다. 미리 정해 둔 정답이 없어도 되고, 이전에 몰랐던 사실을 발견할 수 있다 k-평균 군집 분석
연관 모델 속성 사이에 숨어 있는 연관 규칙을 찾는다. 함께 일어나는 일들을 찾아낸다 연관 분석

회귀와 분류는 알아맞히려는 답이 정해져 있습니다. 다만 회귀는 숫자(주행 거리 몇 km)를, 분류는 범주(합격이냐 불합격이냐)를 내놓습니다. 반면 군집과 연관은 정답을 미리 주지 않습니다. 데이터를 던져 놓고 스스로 구조를 찾아내게 합니다.

회귀 모델

regression

점들의 경향을 선 하나로 요약해 숫자를 예측합니다.

주요 요소 — 독립 변수, 종속 변수, 회귀 계수, 오차

분류 모델

classification

무리를 나누는 경계를 찾아 새 데이터가 어느 쪽인지 판단합니다.

주요 요소 — 클래스, 특징, 정확도, 정밀도, 재현율

군집 모델

clustering

정답을 주지 않아도 비슷한 것끼리 저절로 묶입니다.

주요 요소 — 군집, 군집 중심, 유사성 측정, 군집의 수

연관 모델

association

「이것을 산 사람은 저것도 산다」 같은 규칙을 찾아냅니다.

주요 요소 — 항목, 연관 규칙, 지지도, 신뢰도, 향상도

모델을 골랐으면 성능을 평가해야 합니다

같은 데이터라도 무엇을 알고 싶은가에 따라 써야 할 모델이 달라집니다. 게다가 처음 고른 모델이 가장 좋다는 보장도 없습니다. 그래서 데이터 과학에서는 모델을 만든 뒤 반드시 성능을 평가하고, 더 나은 모델로 바꾸어 가는 과정을 거칩니다.

스스로 확인

우리 학교 학생들의 키 · 몸무게 · 하루 수면 시간 데이터가 있습니다. ① 키로 몸무게를 알아맞히기 ② 생활 습관이 비슷한 학생끼리 묶기 — 각각 어떤 모델이 맞을까요? 두 번째 물음에는 정답이 없다는 점도 함께 생각해 보세요.

모델로 값을 예측해 볼까?

표 → 산점도 → 수식 → 예측. 데이터 모델링의 전 과정을 직접 실행해 봅니다.

상황

텃밭 동아리에서 화분 여덟 개에 같은 씨앗을 심고, 화분마다 하루에 주는 물의 양을 다르게 했습니다. 2주 뒤에 줄기 길이를 측정해 표로 정리했습니다.

화분 하루에 준 물의 양 (mL) 2주 뒤 줄기 길이 (cm)
15012
210013
315016
420021
525024
630025
735028
840033

표의 값은 실제 관측 자료가 아니라 수업에서 원리를 확인하려고 지어낸 값입니다.

하루에 준 물의 양과 2주 뒤 줄기 길이
가로축: 물의 양(mL) · 세로축: 줄기 길이(cm) · 지어낸 값

이 데이터에 가장 잘 맞는 직선

y = 0.06x + 8

기울기 0.06은 이 실험의 범위(50~400 mL) 안에서 물을 1 mL 더 줄 때 줄기가 0.06 cm 더 자란다는 뜻입니다. 바꾸어 말하면 100 mL를 더 주면 6 cm쯤 더 자랍니다.

절편 8은 x가 0일 때의 y입니다. 물을 전혀 주지 않은 화분은 표에 없으므로, 이 값은 데이터가 없는 구간까지 선을 늘였을 때 나오는 숫자입니다. 물을 주지 않으면 줄기가 8 cm가 된다는 뜻이 아니라 선의 높이를 맞춰 주는 숫자로 이해하면 됩니다.

직접 해 보기

1 이 상황에서 독립 변수와 종속 변수는 각각 무엇인가요?

생각해 본 뒤 열어 보기

우리가 정해서 넣은 값인 물의 양이 독립 변수(x), 그 결과로 나타난 줄기 길이가 종속 변수(y)입니다. 「무엇을 알아맞히고 싶은가」를 물으면 답은 줄기 길이이므로 그쪽이 종속 변수입니다.

2 하루에 120 mL를 준 화분은 2주 뒤 줄기가 몇 cm쯤 될까요? 식에 넣어 계산해 보세요.

계산해 본 뒤 열어 보기

y = 0.06 × 120 + 8 = 7.2 + 8 = 15.2 cm

표에 120 mL짜리 화분은 없습니다. 그런데도 선 위에서 답을 읽어 낼 수 있습니다.

3 하루에 500 mL를 주면 식은 38 cm라고 답합니다. 이 예측을 그대로 믿어도 될까요?

생각해 본 뒤 열어 보기

믿기 어렵습니다. 이 모델이 본 데이터는 50 mL부터 400 mL까지뿐입니다. 500 mL는 모델이 한 번도 겪어 보지 못한 범위입니다.

게다가 물을 너무 많이 주면 오히려 뿌리가 상해 덜 자랄 수도 있습니다. 직선 모델은 「주면 줄수록 자란다」고만 말할 뿐, 어디서 꺾이는지는 모릅니다.

모델은 배운 범위 안에서만 믿을 수 있다는 점을 꼭 기억해 두세요.

스스로 확인

4번 화분(200 mL)의 실제 줄기 길이는 21 cm인데, 식으로 계산하면 20 cm가 나옵니다. 1 cm가 어긋납니다. 이 어긋난 값을 무엇이라고 부를까요? 그리고 모든 화분에서 이 어긋남을 0으로 만드는 직선을 그릴 수 있을까요?

핵심 정리

데이터 모델

data model

  • 속성 사이의 관계 · 패턴을 간소화해 나타낸 것
  • 덜어 냈기 때문에 현실과 완전히 같지 않다. 그 어긋남이 오차다
  • 모델이 본 데이터 범위 안에서만 예측을 믿을 수 있다
  • 일기예보의 수치예보 모델이 대표적인 예

데이터 모델링

data modeling

  • 통계 분석 · 기계학습으로 모델을 만드는 과정
  • 전처리 · 탐색적 데이터 분석이 끝난 뒤에 한다
  • 평가 결과가 나쁘면 앞 단계로 되돌아간다

독립 변수와 종속 변수

y = ax + b

  • 독립 변수(x) — 답을 가늠하는 근거로 입력에 넣는 속성. 곧 원인이라는 뜻은 아니다
  • 종속 변수(y) — 독립 변수의 값을 보고 알아맞히려는 속성
  • a 기울기 · b 절편 — 이 둘을 찾는 것이 모델 만들기
  • 상관관계는 데이터가 알려 주지만 인과 관계는 사람이 판단한다

네 가지 모델

목적이 모델을 정한다

  • 회귀(숫자 예측) · 분류(범주 예측)
  • 군집(비슷한 것 묶기) · 연관(규칙 찾기)
  • 고른 뒤에는 반드시 성능을 평가한다

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1

데이터 분석 과정에서 데이터 모델링은 언제 하는 일인가?

Q2

배터리 용량으로 주행 거리를 예측하려고 합니다. 종속 변수는 무엇인가?

Q3

정답을 미리 정해 두지 않고 비슷한 속성을 가진 것끼리 묶어 새로운 사실을 발견하려고 합니다. 어떤 모델인가?

Q4

모델이 y = 0.06x + 8일 때, 0.06이 뜻하는 것은?