데이터 속성이란 무엇일까?
표의 가로줄과 세로줄은 각각 무엇을 뜻할까?
정형 데이터는 행과 열로 이루어진 표로 나타냅니다. 여기서는 그 표의 가로줄과 세로줄을 부르는 이름을 알아봅니다.
속성(attribute)은 데이터 하나하나를 설명하고 서로 구별해 주는 항목입니다. 표에서는 열 하나가 속성 하나입니다.
용어 풀이
한자로 보면
딸릴 속(屬) + 성질 성(性) → 그것에 딸려 있는 성질
영어로 보면
attribute = 무언가에 딸린 성질. 어떤 대상을 설명하는 성질 하나하나를 가리킵니다.
사람을 설명할 때 「키, 몸무게, 혈액형」을 말하듯, 데이터를 설명하는 항목 하나하나가 속성입니다. 표에서는 세로줄(열) 하나가 속성 하나입니다.
정형 데이터의 속성
| 이름 | 학번 | 점수 | 등급 |
|---|---|---|---|
| 학생 A | 10101 | 58 | C |
| 학생 B | 10102 | 75 | B |
| 학생 C | 10103 | 89 | A |
| 학생 D | 10104 | 96 | A |
| 학생 E | 10105 | 61 | B |
이름 · 학번 · 점수 표에 「등급」 속성과 두 명을 더한 표입니다. 표의 값은 수업에서 원리를 확인하려고 지어낸 값입니다. 이 표로 각 부분을 부르는 이름을 알아봅니다.
속성명
각 속성의 이름입니다. 위 표에서는 이름 · 학번 · 점수 · 등급 네 개입니다. 속성명이 저장된 첫 번째 행을 헤더(header)라고 합니다.
속성값
속성명 아래에 실제로 적힌 값입니다. 「점수」 속성의 속성값은 58, 75, 89, 96, 61입니다.
데이터 포인트(data point)
서로 구별되는 데이터의 개별 요소입니다. 각 행에 있는 속성값이 모여 하나의 데이터 포인트를 이룹니다.
정리하면 위 표는 열 단위로 4개의 속성, 행 단위로 5개의 데이터 포인트로 구성되어 있습니다. 세로줄은 「무엇을 측정하는가」, 가로줄은 「누구를 측정하는가」라고 기억하면 구분하기 쉽습니다.
표 안에 벌써 두 종류가 섞여 있습니다
「점수」의 58, 75는 수치로 값을 표현하는 수치형 데이터이고, 「등급」의 A, B, C는 몇 개의 범주를 나타내는 값들로 구성된 범주형 데이터입니다.
위 표에서 「학생 C」의 데이터 포인트는 무엇으로 이루어져 있나요? 그리고 이 표에 「출석 일수」 열을 하나 더 붙이면 속성과 데이터 포인트의 개수는 각각 몇 개가 될까요?
같은 것을 왜 여러 이름으로 부를까?
책마다 부르는 말이 다르면 어떻게 알아들을까?
데이터 과학 자료를 찾아보면 같은 개념을 다른 말로 부르는 일이 자주 있습니다. 당황하지 않으려면 미리 알아 두는 편이 좋습니다.
| 이 강의노트의 용어 | 같은 뜻으로 쓰이는 다른 말 |
|---|---|
| 속성 attribute |
특징(feature), 변수 |
| 데이터 포인트 data point |
샘플(sample), 레코드(record), 인스턴스(instance), 튜플(tuple) |
왜 이렇게 이름이 많을까?
데이터 과학은 다양한 학문적 배경을 바탕으로 발전했기 때문입니다. 그래서 같은 개념을 분야마다 다른 용어로 부릅니다. 예를 들어 기계학습에서 모델의 입력으로 넣는 속성을 「특징(feature)」이라고 부르는데, 통계학에서는 같은 것을 「독립 변인」 또는 「독립 변수」라고 부릅니다. 예측하려는 대상이 되는 속성은 따로 종속 변수라고 부릅니다. 독립 변수와 종속 변수의 뜻은 『속성끼리는 어떤 관계가 있을까?』 절에서 설명합니다.
말이 다를 뿐 가리키는 것은 같다는 점만 알면 됩니다.
그래프에서는 데이터 포인트가 「점」이 됩니다
표에서는 한 줄이던 데이터 포인트가, 그래프에서는 점 하나가 됩니다. 아래 표의 공부 시간과 점수를 산점도(두 속성의 값을 가로축과 세로축에 놓고 점으로 찍은 그래프)로 옮겨 보면 각 점이 하나의 데이터 포인트를 의미합니다.
점수 데이터셋
| 한 달 공부 시간(시간) | 점수 |
|---|---|
| 28 | 70 |
| 30 | 75 |
| 32 | 81 |
| 33 | 86 |
| 35 | 89 |
공부 시간에 따른 점수 그래프
한 달 공부 시간(시간)
점 다섯 개는 표의 다섯 줄과 정확히 하나씩 짝지어집니다. 표의 값은 수업에서 원리를 확인하려고 지어낸 값입니다.
다른 책에서 「인스턴스가 100개인 데이터셋」이라는 문장을 만났습니다. 이 강의노트의 말로 바꾸면 무엇이 몇 개라는 뜻일까요?
속성에는 어떤 종류가 있을까?
숫자로 적혀 있으면 무조건 수치형일까?
속성값은 데이터의 유형에 따라 크게 수치형 데이터와 범주형 데이터로 분류할 수 있습니다.
크기나 양을 나타내는 값이라, 더하거나 평균을 내는 것이 뜻을 갖는 속성입니다.
예
다른 속성과의 관계를 파악하거나 여러 통곗값을 계산하기 쉽습니다.
몇 가지 정해진 범주(갈래) 가운데 어디에 속하는지를 나타내는 값이라, 더하거나 평균을 내도 뜻이 서지 않습니다.
예
범주끼리 비교하거나 특정 범주의 특성과 경향을 파악하기 쉽습니다.
대화로 보면 이렇습니다
수치형 데이터
범주형 데이터
숫자로 적혀 있다고 모두 수치형인 것은 아닙니다. 학번 10101은 숫자지만 범주형입니다. 학번을 더하거나 평균을 내는 일은 아무 의미가 없기 때문입니다. 「더하고 평균을 내는 것이 말이 되는가?」를 확인하면 구분할 수 있습니다. 키와 몸무게는 평균이 말이 되지만, 학번과 혈액형은 그렇지 않습니다.
유형은 고정된 것이 아닙니다. 같은 데이터라도 분석 목적에 따라 유형을 바꾸어 표현할 수 있습니다. 예를 들어 「나이」는 보통 수치형이지만, 10대 · 20대 · 30대로 묶으면 범주형이 됩니다. 나이대별로 비교하고 싶을 때는 이렇게 바꾸는 편이 낫습니다.
더 알아보기: 수치형과 범주형은 다시 둘로 나뉩니다
수치형 데이터(numerical data)
숫자형 데이터라고도 합니다. 연속형(continuous) 데이터와 이산형(discrete) 데이터로 나뉩니다. 키나 몸무게처럼 사이의 값이 얼마든지 있을 수 있으면 연속형, 불량품 개수나 사람 수처럼 중간값이 있을 수 없으면 이산형입니다. 사람 수는 1명과 2명 사이에 1.5명이 없습니다.
범주형 데이터(categorical data)
카테고리로 나누어지는 데이터를 말합니다. 순서가 있는 순위형(ordinal) 데이터와 순서가 없는 명목형(nominal) 데이터로 나뉩니다. 성적 등급 A · B · C는 순서가 있고, 혈액형 A · B · O · AB는 순서가 없습니다.
「우편번호」와 「하루 걸음 수」 중 수치형은 어느 쪽일까요? 둘 다 숫자로 적혀 있는데, 둘을 구분하는 까닭을 한 문장으로 말해 보세요.
속성끼리는 어떤 관계가 있을까?
같이 움직이면 하나가 다른 하나의 원인일까?
데이터의 속성 사이에는 관계가 있는 경우가 있습니다. 이 관계를 찾아내는 일은 데이터 분석의 중요한 부분입니다.
속성 사이의 상관관계와 인과 관계를 파악하면 데이터 속에 숨어 있는 패턴과 규칙을 활용할 수 있습니다. 예를 들어 공부 시간과 점수의 관계를 분석하면 학습 계획을 세울 때 참고할 근거를 얻을 수 있습니다.
두 속성이 얼마나 관련되어 있는지를 말합니다. 한 속성의 값이 큰 데이터일수록 다른 속성의 값도 크거나 작은 경향이 있으면 상관관계가 있다고 합니다.
한 속성이 다른 속성에 영향을 미치는 것을 말합니다. 원인 인(因) + 결과 과(果) — 원인과 결과가 분명한 관계입니다.
둘은 같은 말이 아닙니다. 상관관계가 있다고 해서 인과 관계가 있는 것은 아닙니다. 아이스크림이 많이 팔린 날일수록 물놀이 사고도 많지만, 아이스크림이 사고를 일으키는 것은 아닙니다. 더운 날씨라는 숨은 원인이 둘을 함께 증가시킨 것입니다. 상관관계를 인과 관계로 착각하면 엉뚱한 결정을 내리게 됩니다.
근거로 넣는 쪽과 알아맞히려는 쪽에 이름 붙이기
분석에서 답을 가늠하는 근거로 넣는 속성을 독립 변수, 알아맞히려는 속성을 종속 변수라고 합니다. 어느 쪽을 독립 변수로 둘지는 무엇을 알아맞히려는지가 정하며, 독립 변수가 곧 원인이라는 뜻은 아닙니다.
한자로 홀로 독(獨), 설 립(立)을 씁니다. 영어 independent는 dependent(의존하는)에 부정의 뜻인 in-이 붙은 말입니다. 이름은 이렇지만, 분석에서는 다른 속성과 관계가 없다는 뜻이 아니라 답을 가늠하려고 먼저 넣는 값이라는 뜻으로 씁니다.
한자로 따를 종(從), 붙을 속(屬)을 씁니다. 영어 dependent는 depend on(∼에 달려 있다)에서 나온 말입니다. 분석에서는 독립 변수의 값을 보고 이 값을 설명하거나 예측합니다.
학생들의 점수 데이터셋
| 이름 | 하루 공부 시간(시간) | 점수 | 출석 일수 |
|---|---|---|---|
| 학생 A | 3 | 60 | 165/192 |
| 학생 B | 5 | 100 | 190/192 |
| 학생 C | 2 | 40 | 188/192 |
| 학생 D | 4 | 80 | 187/192 |
| 학생 E | 1.5 | 30 | 173/192 |
공부 시간 → 독립 변수
점수를 가늠하는 근거로 넣는 속성이므로 독립 변수입니다.
점수 → 종속 변수
공부 시간을 보고 알아맞히려는 속성이므로 종속 변수입니다.
표를 보면 공부 시간이 긴 학생일수록 점수도 높은 경향이 보입니다. 표의 값은 수업에서 원리를 확인하려고 지어낸 값입니다. 그래서 「공부 시간이 3시간 30분인 학생이라면 점수가 약 70점쯤 되겠네?」처럼 표에 없는 값도 짐작할 수 있습니다. 이렇게 관계를 찾아 예측하는 것이 데이터 분석이 하는 일 가운데 하나입니다.
직접 판단해 봅시다: 음료수 판매량 예측
음료수 판매량을 예측하려면 어떤 속성을 파악하면 좋을까요? 아래 표에서 음료수 판매량과 같이 움직이는 속성을 찾아보세요. 표의 값은 수업에서 원리를 확인하려고 지어낸 값입니다.
| 기온 | 강수량 | 음료수 판매량 | 아이스크림 판매량 |
|---|---|---|---|
| 10 | 5 | 21 | 5 |
| 15 | 0 | 29 | 8 |
| 20 | 0 | 40 | 35 |
| 30 | 5 | 55 | 35 |
기온 속성입니다. 기온이 10, 15, 20, 30으로 높은 날일수록 음료수 판매량도 21, 29, 40, 55로 빠짐없이 많았습니다. 그에 비해 강수량은 5 → 0 → 0 → 5로 오르내리는데도 판매량은 계속 올라 관련이 높아 보이지 않습니다.
아이스크림 판매량은 함정입니다. 음료수와 같이 오르는 것처럼 보이지만(20 → 30에서는 35로 멈춰 있습니다), 아이스크림이 많이 팔려서 음료수가 팔리는 것이 아닙니다. 앞에서 본 대로 기온이라는 숨은 원인이 둘을 함께 증가시킨, 상관관계일 뿐 인과 관계가 아닌 경우입니다.
「키가 큰 학생일수록 신발 크기가 크다」는 상관관계일까요, 인과 관계일까요? 그리고 하루 운동 시간 기록으로 그날 밤 수면 시간을 예측하려 한다면, 독립 변수와 종속 변수는 각각 무엇일까요?
속성을 모으면 무엇을 알 수 있을까?
사진 한 장에는 사진만 들어 있을까?
데이터의 다양한 속성을 분석하고 속성 간 관계를 발견하면 데이터가 가진 잠재적 가치를 상세하게 파악할 수 있습니다.
잠재적(潛在的, potential)이란 「겉으로 드러나지 않고 속에 숨어 있는」이라는 뜻입니다. 즉 잠재적 가치는 아직 눈에 보이지 않지만 꺼내 쓸 수 있는 가치입니다. 스마트폰으로 찍은 사진 한 장을 예로 들어 봅시다.
사진 한 장에 함께 저장되는 속성
- 2023년 5월 7일 17:40
- 2.2MB JPEG · 3024×4032
- ISO 200 · 49mm
- 촬영 장소 좌표
사진을 찍으면 사진뿐만 아니라 시간 속성, 위치 속성, 카메라 정보 속성까지 함께 저장됩니다. 위치 속성은 위치 기록을 켜 두었을 때 저장됩니다. 사진첩 앱에 따라서는 사진 속 얼굴을 분석해 얼굴 속성까지 만들어 붙입니다.
속성을 연결하면 새로운 사실이 나옵니다
예를 들어 사진의 속성을 연결하면 자신의 동선이나 언제 어디에서 누구와 함께 있었는지를 확인할 수 있습니다.
시간 속성 하나만으로는 「언제」만 알 수 있고, 위치 속성 하나만으로는 「어디」만 알 수 있습니다. 둘을 연결하면 「언제 어디에」가 되고, 얼굴 속성까지 더하면 「언제 어디에서 누구와」가 됩니다.
이처럼 속성을 연결해 분석하면 새로운 가치를 발견할 수 있습니다. 사진첩이 자동으로 「여행」 앨범을 만들어 주는 것이 바로 이 원리입니다.
그러나 이 원리는 위험이 되기도 합니다. 내 동선과 만난 사람을 알아낼 수 있다는 것은, 사진을 그대로 올리면 남도 그것을 알 수 있다는 뜻입니다. 그래서 사진을 공유할 때 위치 속성을 삭제하는 기능이 있습니다.
해 보기: 목적에 따른 속성을 찾아보자
같은 사진이라도 무엇을 하려는지에 따라 필요한 속성이 달라집니다.
| 무엇을 하려는가 | 필요한 속성 |
|---|---|
| 스마트폰에 저장된 이미지의 정보 확인하기 | 직접 확인해 보세요 |
| 친구들과 찍은 사진 분류하기 | 얼굴, 시간, 장소 |
| 이미지 편집하기 | 렌즈 정보, 해상도, 촬영 모드 |
「사진 분류하기」와 「이미지 편집하기」를 비교해 보세요. 같은 사진인데 필요한 속성이 전혀 겹치지 않습니다. 사진을 분류하려면 「누가 · 언제 · 어디서」가 필요하고, 편집하려면 「어떻게 찍혔는가」가 필요하기 때문입니다. 그래서 데이터를 다룰 때는 목적을 먼저 정해야 어떤 속성을 쓸지 정할 수 있습니다.
학생의 성적을 예측할 때 쓸 속성을 골라 보세요. 후보는 출석률 / 이전 학기 성적 / 학습 시간 / 이름 / 가족 구성원 수 / 통학 시간입니다. 고르지 않은 것은 왜 뺐는지, 고른 것은 왜 골랐는지까지 말해 보세요.
오렌지로 직접 속성을 확인해 볼까?
배운 개념이 실제 프로그램에서는 어떻게 보일까?
오렌지 프로그램에서 제공하는 동물 데이터로 동물들을 분류하는 속성을 알아봅시다.
오렌지(Orange 3)는 코드를 쓰지 않고 위젯(widget)이라는 블록을 선으로 이어 데이터를 분석하는 프로그램입니다. 아래 그림에서 네모 하나가 위젯 하나이고, 화살표가 데이터가 흘러가는 방향입니다.
이번 실습에서 만들 워크플로
동물 데이터 불러오기
오렌지 프로그램을 실행하고 위젯에서 Zoo 데이터셋을 더블 클릭합니다. 더블 클릭하여 초록색 원이 표시되면 창을 닫습니다.
동물 데이터 속성 확인하기
에 위젯을 연결하여 데이터의 속성을 확인합니다.
Zoo 데이터셋은 이렇게 생겼습니다
101마리 동물의 특징을 모아 놓은 표입니다. hair(털), feathers(깃털), eggs(알), milk(젖), aquatic(수생), backbone(척추), fins(지느러미), legs(다리 수), tail(꼬리) 같은 속성이 있고, 마지막 type 속성에 포유류 · 조류 · 어류 등 7가지 분류가 들어 있습니다.
확인해 봅시다
1. Zoo 데이터셋은 정형 데이터일까요, 비정형 데이터일까요?
정형 데이터입니다. 행과 열로 이루어진 표에 각각의 값이 모두 형식을 갖추고 있기 때문입니다. 「내용을 고치지 않고 그대로 표의 행과 열로 나누어 적을 수 있는가」로 판단한 것입니다.
2. fish(어류)와 bird(조류)를 비교할 때, 구분하기에 적합한 속성과 공통된 속성은 무엇일까요?
| 구분하기에 적합한 속성 | 공통된 속성 |
|---|---|
| feathers, toothed, breathes, fins, legs | hair, eggs, milk, backbone, tail |
구분에 쓸모 있는 속성은 값이 서로 다른 속성입니다. 새는 깃털이 있고 물고기는 없으니 feathers로 둘을 구분할 수 있습니다. 반대로 양쪽 값이 같은 속성은 구분에 쓸모가 없습니다. 둘 다 알을 낳으니 eggs로는 나눌 수 없습니다.
3. mammal(포유류)을 설명하기에 aquatic(수생) 속성은 적합할까요?
적합한 속성이라고 보기 어렵습니다. 포유류 중에는 aquatic 속성값이 1인 돌고래도 있고 0인 곰도 있기 때문에, 포유류의 특징으로 볼 수 없습니다.
여기서 좋은 속성의 조건을 알 수 있습니다. 어떤 집단을 설명하는 속성이 되려면 그 집단 안에서는 값이 고르고, 다른 집단과는 값이 달라야 합니다. 포유류 안에서 값이 제각각이면 설명이 되지 않습니다.
mammal(포유류)을 다른 동물과 구분하는 데 가장 좋은 속성 하나를 고른다면 무엇일까요? 그 속성이 포유류 안에서는 어떤 값이고, 다른 동물에서는 어떤 값인지 함께 말해 보세요.
핵심 정리
데이터 속성
attribute
- 세로줄은 「무엇을 측정하는가」, 가로줄은 「누구를 측정하는가」
- 열 = 속성 · 행 = 데이터 포인트
- 모델의 입력으로 넣는 속성은 특징(feature)이라 부르기도 한다
- 속성명이 담긴 첫 행 = 헤더
속성의 종류
numerical · categorical
- 수치형 — 크기나 양을 나타내 평균이 뜻을 갖는다. 통곗값 산출이 쉽다
- 범주형 — 여러 범주 중 하나, 비교가 쉽다
- 숫자로 적혀 있어도 평균이 말이 되지 않으면 범주형이다. 목적에 따라 유형을 바꿔 표현할 수도 있다
속성 간 관계
correlation · causality
- 상관관계 — 두 속성이 얼마나 관련되어 있는가
- 인과 관계 — 한 속성이 다른 속성에 영향을 미침. 함께 움직여도 숨은 원인이 따로 있을 수 있다
- 근거로 넣는 쪽이 독립 변수, 알아맞히려는 쪽이 종속 변수. 독립 변수가 곧 원인은 아니다
잠재적 가치
potential value
- 사진 한 장에 시간 · 위치 · 카메라 속성이 함께 저장되고, 앱이 얼굴 속성을 더하기도 한다
- 속성을 연결하면 동선 · 동행자까지 드러난다
- 목적에 따라 필요한 속성이 달라진다
확인 퀴즈
배운 내용을 확인해 봅시다.
이름 · 학번 · 점수 · 등급 네 개의 열과 학생 5명의 행으로 이루어진 표가 있습니다. 이 표의 데이터 포인트는 몇 개일까요?
다음 중 범주형 데이터인 것은?
「공부 시간을 보고 점수를 가늠한다」고 할 때, 종속 변수에 해당하는 것은?
상관관계와 인과 관계에 대한 설명으로 알맞지 않은 것은?
오렌지에서 불러온 데이터의 속성을 표로 확인하려면 위젯에 어떤 위젯을 연결해야 할까요?