여러분의 이야기입니다
고교 학점제에서 선배들은 어떤 과목을 함께 골랐을까요?
고교 학점제는 진로와 적성에 따라 과목을 직접 골라 듣고, 모은 학점이 기준을 넘으면 졸업을 인정받는 제도입니다. 고를 수 있는 과목이 많다는 것은 좋은 일이지만, 무엇을 골라야 할지 막막해지는 것도 사실입니다.
목표
학생들이 실제로 신청한 수학 · 과학 · 사회 과목 묶음을 연관 분석해서 어떤 과목들이 함께 선택되는지 찾아봅시다.
한 학생의 신청서 한 장이 트랜잭션 하나입니다. 영수증 대신 신청서, 물건 대신 과목일 뿐 모양은 매점 영수증과 똑같습니다.
실습 순서 2 · 3 — 데이터를 열어 봅니다
어떻게 고르게 되어 있는지를 먼저 확인해야 합니다.
내려받을 데이터
학생 346명의 과목 신청 기록이 들어 있습니다.
kaggle.com/datasets/chochochosam/students-choice-of-subjects
고르는 방법에 규칙이 있습니다
| 과목군 | 과목 | 고르는 수 |
|---|---|---|
| 수학 | 미적분, 수학 과제 탐구 | 둘 중 하나 |
| 과학 | 물리학Ⅱ, 화학Ⅱ, 생명 과학Ⅱ, 지구 과학Ⅱ | 여덟 중 셋 |
| 사회 | 생활과 윤리, 사회·문화, 세계사, 세계 지리 |
모두 열 과목이고, 한 학생은 네 과목을 신청합니다. 이 규칙을 머리에 넣어 두세요. 나중에 결과를 읽을 때 이 규칙 때문에 생긴 값을 골라내야 합니다.
이미 표 모양으로 준비되어 있습니다
위젯으로 열고 을 이어 보세요. 과목마다 열이 하나씩 있고, 신청한 과목 칸에만 1이, 나머지에는 물음표가 찍혀 있을 것입니다. 연관 분석 도구가 읽는 바로 그 모양입니다. 이번에는 만들 필요 없이 이미 그렇게 되어 있습니다.
항목 10개, 트랜잭션 346개로 나오면 제대로 열린 것입니다. 수학 · 과학 · 사회 과목군 바깥의 과목은 으로 두고 를 누릅니다.
미적분과 수학 과제 탐구가 함께 신청된 학생이 있을까요? 표를 찾아보기 전에 먼저 생각해 보세요. 그렇다면 두 과목의 지지도를 더하면 얼마가 될까요?
실습 순서 4 — 규칙을 찾습니다
보고 싶은 과목만 걸러서 보는 기능을 씁니다.
위젯은 Associate 애드온을 설치해야 나타납니다. 아직이라면 먼저 설치하고 오렌지를 다시 켜세요.
| 설정 | 값 | 무엇을 정하는가 |
|---|---|---|
| 10% | 346명 중 서른다섯 명쯤은 그렇게 골라야 살펴본다 | |
| 50% | 선행 과목을 고른 학생의 절반 이상이 후행도 골라야 한다 | |
| Antecedent의 | 미적분 | 미적분이 선행에 있는 규칙만 보여 준다 |
| Antecedent의 | 최소 1, 최대 1 | 선행에 과목을 하나만 두어 규칙을 단순하게 만든다 |
왜 미적분만 걸러서 볼까요?
걸러 내지 않으면 열 과목의 모든 조합에서 규칙이 쏟아집니다. 항목이 다섯 개뿐인 영수증 열 장에서도 문턱을 낮추면 규칙이 스무 개 넘게 나옵니다. 항목이 열 개면 훨씬 많아집니다.
「미적분을 신청한 학생은 무엇을 함께 듣는가」라는 구체적인 질문 하나를 먼저 정해 두면 볼 것이 몇 줄로 줄어듭니다. 문턱을 낮추는 것보다 질문을 좁히는 것이 훨씬 나은 방법입니다.
를 누르고 신뢰도(Conf) 열을 눌러 내림차순으로 정렬합니다.
세 지표가 서로 다른 답을 합니다
같은 규칙인데 지표마다 순위가 다릅니다.
미적분을 선행으로 둔 규칙 중 위쪽 세 줄을 옮겨 적으면 대략 이렇게 나옵니다.
| 연관 규칙 | 지지도 | 신뢰도 | 향상도 |
|---|---|---|---|
| 미적분 → 생명 과학Ⅱ | 0.34 (1위) | 0.70 (1위) | 1.65 (2위) |
| 미적분 → 사회·문화 | 0.33 (2위) | 0.68 (2위) | 0.84 (3위) |
| 미적분 → 화학Ⅱ | 0.28 (3위) | 0.58 (3위) | 2.01 (1위) |
순위가 뒤집혀 있습니다
지지도와 신뢰도로 보면 사회·문화가 2위, 화학Ⅱ가 꼴찌입니다. 그런데 향상도로 보면 화학Ⅱ가 1위, 사회·문화가 꼴찌입니다. 게다가 사회·문화의 향상도는 1보다 작습니다. 기대보다 오히려 덜 함께 나온다는 뜻입니다. 어느 쪽을 믿어야 할까요?
과목별 지지도를 구해 보면 답이 나옵니다
신뢰도는 지지도를 선행 과목의 지지도로 나눈 값입니다. 거꾸로 하면 선행 과목의 지지도를 알아낼 수 있습니다. 세 줄 모두 0.34 ÷ 0.70, 0.33 ÷ 0.68, 0.28 ÷ 0.58이 0.48 언저리로 같게 나옵니다. 이것이 미적분의 지지도입니다.
같은 방법으로 향상도를 써서 상대 과목의 지지도도 구할 수 있습니다. 향상도 = 신뢰도 ÷ 후행 과목의 지지도이니 나누는 순서를 바꾸면 됩니다.
| 과목 | 지지도 | 346명 중 몇 명쯤 | 어떤 과목인가 |
|---|---|---|---|
| 사회·문화 | 약 0.81 | 280명 안팎 | 대부분이 듣는 과목 |
| 미적분 | 약 0.48 | 167명 안팎 | 절반쯤이 듣는다 |
| 생명 과학Ⅱ | 약 0.42 | 146명 안팎 | 제법 많이 듣는다 |
| 화학Ⅱ | 약 0.29 | 100명 안팎 | 듣는 학생이 적은 과목 |
화면에 보이는 세 지표에서 거꾸로 계산해 낸 값이라 소수점 아래는 조금 다를 수 있습니다.
이제 세 줄이 모두 설명됩니다
- 사회·문화는 열 명 중 여덟 명이 듣는 과목입니다. 미적분을 듣든 안 듣든 대부분이 신청합니다. 그러니 미적분과 함께 나오는 것이 당연하고, 지지도와 신뢰도가 높게 나오는 것도 당연합니다. 여기에는 아무 정보도 없습니다. 오히려 향상도가 0.84로 1보다 작으니 미적분을 듣는 학생은 사회·문화를 살짝 덜 고르는 편이라고 읽어야 합니다.
- 화학Ⅱ는 열 명 중 세 명만 듣는 과목입니다. 그런데 미적분을 듣는 학생의 58%가 함께 신청합니다. 전체 비율의 두 배입니다. 지지도가 가장 낮은데도 가장 뚜렷하게 얽힌 짝입니다.
- 생명 과학Ⅱ는 지지도도 향상도도 모두 높은 드물게 좋은 규칙입니다. 자주 나타나면서 우연으로 보기도 어렵습니다.
「많이 함께 나온다」와 「얽혀 있다」는 다른 말입니다. 실제 데이터에서는 그 차이가 훨씬 크게 드러납니다. 흔한 항목은 무엇과도 함께 나옵니다. 그래서 향상도를 함께 보지 않으면 속기 쉽습니다.
규칙이 만든 규칙
데이터에는 제도가 심어 놓은 무늬가 들어 있습니다.
『데이터를 열어 봅니다』 절의 스스로 확인을 다시 봅시다. 미적분과 수학 과제 탐구를 함께 신청한 학생은 한 명도 없습니다. 둘 중 하나만 고르게 되어 있으니까요.
향상도 0이 뜻하는 것
지지도({미적분, 수학 과제 탐구}) = 0이므로 향상도도 0입니다. 가장 극단적으로 「따로 나타나는」 짝입니다. 그렇다고 두 과목이 서로를 밀어낸다고 읽으면 안 됩니다.
지지도의 합이 1
미적분이 약 0.48이니 수학 과제 탐구는 약 0.52일 수밖에 없습니다. 둘을 더하면 1입니다. 모두가 둘 중 하나를 반드시 고르기 때문입니다.
데이터가 말한 것이 아니라 제도가 말한 것입니다
「미적분과 수학 과제 탐구는 강한 음의 관계」라고 쓰면 틀린 말은 아니지만 아무것도 발견하지 않은 것입니다. 학생들의 취향과는 아무 상관이 없고, 신청서 양식이 그렇게 만들어져 있었을 뿐이니까요.
연관 분석은 데이터에 있는 무늬를 그대로 꺼내 옵니다. 그 무늬가 사람들의 선택에서 생긴 것인지, 규칙이나 양식 때문에 생긴 것인지는 구별해 주지 않습니다. 데이터가 어떻게 만들어졌는지 아는 사람만 그것을 걸러 낼 수 있습니다.
분석에 앞서 데이터가 어떻게 모였는지 물어야 합니다. 데이터를 어떻게 모았는지는 분석의 첫걸음일 뿐 아니라 결과를 읽을 때도 기준이 됩니다.
과학과 사회에서 여덟 과목 중 셋을 고릅니다. 이 규칙 때문에 과목 여덟 개의 지지도를 모두 더하면 얼마가 될까요? 그리고 이것이 향상도에 어떤 영향을 줄지 생각해 보세요.
찾아낸 규칙으로 무엇을 할까
추천에 쓸 수도, 시간표에 쓸 수도 있습니다.
과목 안내
미적분을 고른 학생에게 「미적분을 고른 선배들은 화학Ⅱ를 유난히 자주 함께 들었다」고 알려 줄 수 있습니다. 정하라는 것이 아니라 참고하라는 것입니다.
시간표 짜기
함께 신청되는 과목을 같은 시간에 배치하면 둘 다 듣고 싶은 학생이 하나를 포기해야 합니다. 피해야 할 조합을 알려 주는 셈입니다.
반 편성과 교실
함께 신청되는 과목의 수강 인원을 미리 가늠할 수 있어 교실과 담당 교사를 준비하는 데 도움이 됩니다.
추천이 길을 좁혀서는 안 됩니다
이 규칙은 선배들이 그렇게 골랐다는 사실일 뿐, 여러분이 그렇게 골라야 한다는 뜻이 아닙니다. 그런데 추천을 계속 보여 주면 실제로 그쪽으로 몰리고, 다음 해 데이터는 더 치우친 모습이 됩니다. 그러면 추천은 더 강해집니다. 추천이 데이터를 만들고, 그 데이터가 다시 추천을 만드는 고리가 생깁니다.
음악 추천이라면 노래 하나 더 듣고 마는 일입니다. 과목은 진로와 이어져 있습니다. 드물게 선택되는 과목을 고른 학생이 이상해 보이지 않도록 쓰는 사람이 조심해야 합니다.
다른 과목으로도 해 봅시다
Antecedent의 칸에 적은 과목 이름만 바꾸면 됩니다. 향상도가 1보다 큰 줄만 적어 두세요.
| 선행 과목 | 가장 향상도가 높은 후행 과목 | 향상도 | 신뢰도 |
|---|---|---|---|
| 수학 과제 탐구 | |||
| 물리학Ⅱ | |||
| 세계사 | |||
| 직접 고른 과목 |
미적분과 수학 과제 탐구의 결과를 비교해 보세요. 두 과목을 고른 학생들이 서로 다른 과목을 함께 듣나요? 그렇다면 어떤 진로를 생각하는 학생들일지 짐작해 봅시다.
세 가지 방법을 한자리에
세 분석 방법을 한 표로 모읍니다.
| 방법 | 어떤 질문에 답하나 | 데이터의 모양 | 답의 생김새 | 평가하는 잣대 |
|---|---|---|---|---|
| 회귀 분석 | 이 값이 얼마가 될까 | 행마다 칸 수가 같은 수치형 표 + 맞힐 값 | 숫자를 내놓는 식 | MAE · RMSE · R² |
| 군집 분석 | 어떤 것들이 서로 비슷한가 | 행마다 칸 수가 같은 수치형 표 | 번호가 붙은 명단 | 오차 제곱합 · 실루엣 계수 |
| 연관 분석 | 무엇과 무엇이 함께 나타나나 | 행마다 항목 수가 다른 트랜잭션 | 규칙 — A → B | 지지도 · 향상도 · 신뢰도 |
공통점
- 세 방법 모두 사람이 정해야 하는 것이 있다(쓸 속성, k, 최소 지지도)
- 세 방법 모두 결과에 뜻을 붙이는 것은 사람이다
- 세 방법 모두 답을 반드시 내놓는다. 답이 있다는 보장은 없다
자주 하는 실수
- 회귀 — 관찰한 관계를 인과로 말하기
- 군집 — 나눈 결과를 원래 있던 종류로 말하기
- 연관 — 흔한 항목을 연관 있다고 말하기
「우리 학교 학생들의 과목 선택을 몇 가지 유형으로 나누고 싶다」면 어떤 방법을 써야 할까요? 이번 소절에서 쓴 같은 데이터로 할 수 있을까요? 무엇을 먼저 바꿔야 할까요?
핵심 정리
과목 선택 데이터
course choice as transactions
- 신청서 한 장이 트랜잭션 하나
- 과목마다 열이 있고 신청한 칸에만 1
- 선행 과목을 걸러서 보면 볼 규칙이 줄어든다
흔한 항목의 함정
the common-item trap
- 지지도 0.81인 과목은 무엇과도 함께 나온다
- 그래서 지지도 · 신뢰도 1~2위인데 향상도는 꼴찌
- 드문 항목이 가장 뚜렷한 짝일 수 있다
제도가 심은 무늬
structure from the form
- 택1 과목끼리는 향상도가 0일 수밖에 없다
- 두 과목의 지지도를 더하면 1이 된다
- 발견이 아니라 양식이다. 걸러 내야 한다
세 방법 고르기
choosing the method
- 「얼마」를 물으면 회귀
- 「누가 비슷한가」를 물으면 군집
- 「무엇과 무엇이 같이」를 물으면 연관
- 알고 싶은 것을 한 문장으로 쓰지 못하면 방법보다 질문부터 정리한다
확인 퀴즈
배운 내용을 확인해 봅시다.
미적분 → 사회·문화는 신뢰도가 0.68로 높은데 향상도는 0.84였습니다. 왜 그럴까?
세 규칙 중 가장 뚜렷하게 얽힌 짝을 고르려면 어느 값을 봐야 하나?
미적분과 수학 과제 탐구의 향상도가 0으로 나왔습니다. 어떻게 읽어야 하나?
선행 과목을 미적분으로 걸러서 본 까닭으로 알맞은 것은?
「우리 학교 학생들을 몇 가지 유형으로 나누고 싶다」면 어떤 방법인가?