분류·회귀·군집·연관·이상탐지
문구점은 앞 절에서 주문 확정 직후의 정보로 이후 7일 안의 취소를 예측하려 했다. 이번에는 그 입력을 받아 실제로 어떤 계산을 할지 살펴본다. “취소될까?”와 “포장에 몇 분 걸릴까?”는 모두 미래를 묻지만 필요한 답의 모양이 다르다. “비슷한 구매 습관의 고객은 누구인가?”에는 미리 붙인 정답이 없을 수도 있다.
같은 주문표라도 물어보는 것이 다르면 계산도 달라진다
문구점은 앞 절에서 주문 확정 직후의 정보로 이후 7일 안의 취소를 예측하려 했다. 이번에는 그 입력을 받아 실제로 어떤 계산을 할지 살펴본다. “취소될까?”와 “포장에 몇 분 걸릴까?”는 모두 미래를 묻지만 필요한 답의 모양이 다르다. “비슷한 구매 습관의 고객은 누구인가?”에는 미리 붙인 정답이 없을 수도 있다.
계산 방법을 고른 뒤 그럴듯한 목적을 붙이지 않는다. 질문과 한 행의 뜻 → 계산 원리 → 새 자료의 오류 → 업무에서 사용할 기준을 연결한다. 이 절의 숫자와 표는 원리를 읽기 위해 만든 가상 자료이며 실제 고객 자료·학습 실험·검증 성능이 아니다. 독자가 프로그램을 설치하거나 직접 실행해야 다음 설명을 읽을 수 있는 구조도 아니다.
먼저 되짚기: 입력·답·시간을 고정한다
앞 절의 특징은 예측에 쓸 입력 항목이고 라벨은 정한 규칙으로 나중에 확인한 목표의 실제 값이었다(정형 데이터 준비·특징·학습). 취소 예측은 주문 한 건을 한 행으로, 확정 직후까지 실제 이용 가능한 값을 입력으로 하며, 취소 없음은 7×24시간의 관찰과 기록 완전성을 확인한 뒤에만 라벨 0으로 정한다(정형 데이터 준비·특징·학습). 변환과 모델은 학습 자료로 정하고 검증으로 고른 뒤 격리한 시험 자료로 확인한다는 경계도 그대로 유지한다.
1. 기법 선택은 목표·자료·오류를 함께 정하는 일이다
데이터마이닝 기법 선택은 찾으려는 결과와 이용 가능한 정답·입력의 성질에 맞추어 패턴을 만드는 계산 방법과 검증 방법을 정하는 일이다. 학습 자료가 많다는 이유만으로 모든 질문이 같은 문제로 바뀌지는 않는다.
이 절은 대표적인 예측 규칙과 비슷함·동시 출현·드문 정도를 찾는 규칙의 원리를 담당한다. 데이터 준비와 누수 방지는 앞 절의 정식 설명을 사용하고, 계수의 통계적 유의성·인과 효과·실험 설계의 정식 판단은 통계 분석과 가설검정에서 이어진다. 여기서 예측식의 값이 잘 맞는다는 사실만으로 원인을 증명하지 않는다.
정답을 보며 배우는가, 정답 없이 구조를 찾는가
지도학습(supervised learning)은 학습 대상의 입력과 확인된 목표 값을 함께 사용하여 새 입력의 목표 값을 예측하는 규칙을 배우는 방식이다. 지난 주문의 입력과 7일 취소 라벨을 함께 주는 경우가 여기에 속한다. 입력과 확인된 목표 값의 짝으로 배운다는 뜻이며, 라벨을 반드시 사람이 직접 입력해야 한다는 뜻은 아니다.
비지도학습(unsupervised learning)은 학습에 사용할 목표 라벨 없이 입력 자료의 구조나 반복 관계를 찾는 방식이다. 고객별 구매 패턴을 비슷하게 묶는 일이 한 예다. 고객에게 어느 묶음이 정답인지 미리 붙여 줄 필요는 없지만, 무엇을 비슷하다고 할지와 결과가 업무에 쓸 만한지는 사람이 정하고 확인해야 한다.
정답이 없다는 말은 목적·평가·오류가 없다는 말이 아니다. 드문 결제를 찾는 문제도 이미 확인한 정상·문제 라벨이 충분한지에 따라 지도학습으로 풀거나, 라벨 없이 평소와 다른 점을 우선 찾는 방식으로 풀 수 있다.
범주를 고르는 분류와 수량을 예측하는 회귀
분류(classification)는 입력에 대해 미리 정한 결과 범주를 예측하는 문제다. 이진 분류(binary classification)는 취소·미취소처럼 미리 정한 두 결과 범주 중 하나를 예측하는 분류 문제다. 취소 여부를 0과 1로 기록해도 두 수의 평균 금액을 맞히는 문제가 되는 것은 아니다. 숫자가 나타내는 뜻이 결과의 종류이기 때문이다.
회귀(regression)는 입력에 대해 수량으로 해석할 목표 값을 예측하는 문제다. 예를 들어 포장을 시작할 때 이미 아는 품목 수로 이후 포장에 걸릴 분 수를 예측할 수 있다. 여기의 회귀는 소프트웨어 변경으로 예전 기능에 결함이 생긴다는 ‘회귀’와 다른 분석 용어다.
분류 모델이 0.8처럼 숫자를 내더라도 그 수가 취소 가능성을 나타내기 위한 중간 출력이면 분류 문제일 수 있다. 반대로 포장 시간 8분은 범주 이름이 아니라 양이다. 함수 이름에 ‘회귀’가 들어가는 로지스틱 회귀도 뒤에서 보듯 분류에 사용하는 방법이므로 이름 끝말만 보고 문제를 정하지 않는다.
예제의 단위를 바꿀 때는 바뀐 질문도 표시한다
| 질문 | 한 행 또는 한 단위 | 사용할 정답 | 결과를 읽는 뜻 |
|---|---|---|---|
| 확정 주문이 7일 안에 취소되는가 | 확정 주문 한 건 | 관찰을 완료한 0·1 | 미리 정한 두 범주의 예측 |
| 포장 시작 뒤 완료까지 몇 분 걸리는가 | 실제 포장 작업 한 건 | 완료 시각−시작 시각 | 시간량의 예측 |
| 구매 습관이 비슷한 고객은 누구인가 | 같은 기준일까지 집계한 고객 한 명 | 미리 정한 묶음 라벨 없음 | 선택한 특징·거리에서의 묶음 |
| 어떤 상품을 함께 사는가 | 정한 기간의 완료 구매 한 건 | 예측용 목표 라벨 없음 | 같은 구매 안의 동시 포함 관계 |
| 평소와 다른 주문은 무엇인가 | 정한 운영 조건의 주문 한 건 | 없거나 일부만 확인 | 추가 확인할 드문 패턴 후보 |
포장 시간 예제는 취소 예측의 라벨을 바꿔 쓰는 것이 아니라 별도 업무 질문이다. 시작했지만 완료 기록이 없는 작업을 0분으로 채우지 않으며, 취소되어 시작하지 않은 주문도 완료 포장 작업과 섞지 않는다. 고객 묶음과 동시 구매에도 기간·포함 대상·빠진 기록을 정한다.
이어지는 작은 학습 표·평가 표는 목적마다 따로 만든 것이다. 앞 절의 A01~A04 라벨이나 기존 거래 금액을 덮어쓰지 않으며, 서로 다른 표의 건수를 한 실험처럼 합치지 않는다.
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
업무 질문과 관측 단위를 고정한 뒤 확인한 목표 값의 유무를 나눈다. 목표가 있으면 범주·수량을 예측하고, 없으면 비슷한 집단·동시 포함·주변과 다른 정도를 탐색한다. 어느 가지도 목적과 검증이 없어지는 뜻이 아니다. 이상 확인은 실제 라벨 확보에 따라 지도 분류도 후보가 된다.
위 갈림길은 정답이 없으면 검증도 없다는 뜻이 아니다. 각 가지에서 무엇이 유용한 결과인지 확인하는 방법이 달라진다.
먼저 되짚기: 값을 고르는 기준은 손실이다
손실은 예측과 목표의 차이를 수로 나타내고 최적화는 정한 목적을 개선하는 값을 찾는 과정이었다(미분 직관·최적화·손실). 평균은 값을 더해 개수로 나눈 값이므로, 오차를 제곱한 값들의 평균도 같은 방식으로 읽을 수 있다(평균·분산·표본·추정). 앞 절에서 학습으로 정하는 모델 매개변수와 바깥에서 비교할 설정인 하이퍼파라미터를 구분했으며, 이제 실제 예측식의 값을 어떻게 고르는지 본다.
2. 선형 회귀: 입력의 변화량을 일정한 비율로 더한다
선형 회귀(linear regression)는 특징에 계수를 곱해 더한 값과 절편으로 수량 목표를 예측하는 방법이다. 특징이 하나인 식은 예측 시간 ŷ = b + w×품목 수 x로 쓸 수 있다. ŷ 위의 작은 표시는 실제로 관찰한 y와 구별한 예측값이라는 뜻이다.
계수(coefficient)는 이 식에서 특징에 곱하는 모델 값이다. w=2라면 이 식은 품목 수가 하나 늘 때 예측 시간을 2분 늘린다. 절편(intercept)은 모든 입력 특징이 0일 때 식이 내는 기본값이다. b=1이면 x=0에서 식은 1분을 내지만, 실제 0개 포장 작업이 업무에 존재하고 이 식이 그때도 맞는다는 뜻은 아니다.
특징이 둘이면 b+w₁×품목 수+w₂×완충 포장이 필요한 수처럼 더할 수 있다. 계수의 단위도 읽어야 하며, 관찰 자료에서 얻은 w가 품목을 강제로 하나 늘렸을 때의 인과 효과라고 자동 해석하지 않는다.
세 포장 작업으로 직선을 고르는 과정을 읽는다
완료된 포장 작업 R11·R12·R13의 품목 수가 1·2·3개, 관찰 시간이 3·5·7분이라고 가정하자. 숫자는 학습 원리를 위한 독립 예제다.
| 후보 식 | x=1·2·3에서 예측한 분 | 실제−예측의 제곱 | 제곱합 |
|---|---|---|---|
| 항상 5분 | 5, 5, 5 | 4, 0, 4 | 8 |
| ŷ=1+2x | 3, 5, 7 | 0, 0, 0 | 0 |
| ŷ=2+2x | 4, 6, 8 | 1, 1, 1 | 3 |
보통최소제곱법(ordinary least squares, OLS)은 각 관찰에 같은 비중을 두어 관찰값과 예측값의 차이를 제곱한 합을 가장 작게 만드는 값을 고르는 방법이다. 이 자료의 직선 후보에서는 b=1, w=2가 제곱합 0을 만들고, 제곱은 음수가 될 수 없으므로 이 값이 최소다. 실제 도구는 많은 값의 후보를 사람이 표로 나열하지 않고 수치 계산으로 찾는다.
새 작업의 품목 수가 4라면 고정한 식은 1+2×4=9분을 낸다. 이는 예측이지 새 작업의 관찰 정답이 아니다. 세 학습점을 완벽히 맞췄다는 이유로 4개 작업이나 100개 작업의 시간을 보장할 수는 없다.
직선을 잘 맞춰도 없는 정보와 구간 밖 행동은 보장하지 못한다
품목 수가 같아도 포장 재료·작업 숙련도·파손 방지 요구에 따라 시간은 달라질 수 있다. 실제 자료가 한 직선 주위에 있지 않으면 단순 식만으로 필요한 관계를 표현하지 못한다. 몇 건의 잘못 기록한 긴 시간이 제곱 손실에 크게 영향을 주는 문제도 있다.
외삽(extrapolation)은 학습에서 관찰한 입력 범위 밖으로 예측 관계를 연장하는 일이다. 1~3개 작업으로 얻은 직선을 100개에 적용하는 경우다. 묶음 포장이 가능하거나 인력이 추가되면 시간 증가 방식 자체가 달라질 수 있다.
새 자료의 오차, 입력 범위, 음수 시간 같은 불가능한 출력과 집단별 편차를 본다. 예측이 음수이면 그냥 0으로 자르고 문제가 해결됐다고 하지 않는다. 출력 제약과 처리 규칙을 사전에 정하여 평가하며, 계수의 불확실성·가정 검토·인과 해석은 통계 담당 절의 범위와 연결한다.
먼저 되짚기: 가능성과 실제 사건은 다르다
확률은 정한 사건의 가능성을 0과 1 사이 값으로 나타내며, 조건부확률은 주어진 조건으로 분모를 제한한 가능성이었다(확률·확률변수·분포). 지수는 같은 밑의 거듭제곱이고 로그는 그 지수를 되찾는 계산이었으므로, 뒤 식의 지수·로그 기호는 이 규칙을 그대로 사용한다(비율·로그·지수·성장률). 이제 취소 여부의 0·1 라벨과 그 사건의 가능성을 나타내려는 출력값을 구별한다.
로지스틱 회귀: 더한 점수를 0과 1 사이로 바꾼다
이 절에서 다루는 이진 로지스틱 회귀(binary logistic regression)는 특징의 가중합을 로지스틱 함수로 변환하여 두 범주 중 한 결과의 확률을 모델링하는 분류 방법이다. 여기서는 취소를 1로 정했으므로 출력 p는 취소 가능성의 추정값이다. 확률처럼 읽을 수 있게 만든 모델 출력이지 개별 주문의 미래를 확정한 답은 아니다.
로지스틱 시그모이드 함수는 어떤 실수 z를 1÷(1+e^(−z))로 바꾸어 0과 1 사이 값을 내는 함수다. e는 약 2.718인 상수이며, 이 함수는 z=0에서 0.5, 큰 양수에서 1에 가깝게, 큰 음수에서 0에 가깝게 바꾼다.
예를 들어 z=−2+0.5×확정 금액(만 원)이라는 설명용 식을 정했다고 하자. 금액 2·4·6만 원은 z=−1·0·1, p는 약 0.269·0.500·0.731이 된다. 이 식은 계산을 보여주려고 만든 것으로, 앞 절의 네 주문을 실제 학습한 계수나 “금액이 취소의 원인”이라는 결론이 아니다.
라벨을 보고 확신이 잘못된 예측에 더 큰 손실을 준다
취소 라벨이 1인 주문에서 p=0.9를 낸 후보와 p=0.1을 낸 후보를 비교해 보자. 실제 라벨이 1이므로 첫 후보가 덜 틀렸다. 반대로 라벨이 0인데 p=0.9를 냈다면 강한 확신으로 반대 결과를 말한 셈이다.
이진 로그 손실(binary log loss)은 실제 라벨이 1이면 −ln(p), 0이면 −ln(1−p)를 부여하여 확률 예측의 잘못된 확신을 평가하는 손실이다. ln은 밑이 e인 자연로그이며 이 식의 p는 0보다 크고 1보다 작다고 둔다. 라벨 1에서 p=0.9이면 약 0.105, p=0.1이면 약 2.303으로 두 번째 손실이 더 크다.
학습에서는 각 주문의 손실을 더하거나 평균한 목적을 줄이도록 절편과 계수를 정한다. 도구가 계수 크기에 벌점을 더한다면 그 벌점도 학습 목적의 일부이므로 설정을 함께 기록한다. 선형 회귀의 제곱 손실과 로지스틱 분류의 로그 손실은 답의 의미가 다른 문제에 맞춘 선택이지, 이름만 바꾼 같은 계산이 아니다.
확률을 내는 일과 안내 대상을 정하는 일은 별개다
분류 임계값(classification threshold)은 모델 점수를 기준으로 결과 범주나 조치 대상을 나눌 때 사용하는 경계값이다. 이 절에서는 같은 값까지 포함하여 p≥t이면 안내 검토 대상으로 예측한다고 명시한다. t가 임계값이다.
앞 예제에서 t=0.5라면 4만 원과 6만 원 주문이, t=0.7이라면 6만 원 주문만 안내 검토 대상이 된다. 모델의 계수와 각 주문의 p를 바꾸지 않았는데도 대상이 달라졌다. 모델을 학습하는 문제와 업무 조치의 기준을 고르는 문제를 나누어야 하는 이유다.
0.5는 두 범주를 나누는 흔한 기본값일 뿐 모든 업무의 최선은 아니다. 놓친 취소와 불필요한 안내의 비용, 담당자가 확인할 수 있는 건수, 확률 출력의 실제 신뢰성을 보고 검증 자료에서 기준을 정한다. 구체적인 분모와 비용 계산은 이 절 뒤의 평가 부분에서 같은 주문 표로 이어진다.
로지스틱이라는 이름도 참된 확률과 충분한 표현력을 보장하지 않는다
직선의 가중합 하나로 나누기 어려운 관계에서는 로지스틱 회귀의 기본 입력만으로 필요한 경계를 표현하지 못할 수 있다. 앞 절에서 배운 특징 공학으로 관계를 표현하거나 다른 방법과 비교하되, 특징을 고르는 과정까지 학습·검증의 경계 안에 둔다.
또한 p=0.8을 낸 주문들이 실제로 약 80% 취소하는지는 별도로 확인할 일이다. 학습한 시기와 지금의 고객 구성이 달라지거나 라벨·표본이 치우치면 0~1의 출력이라는 형식만으로 확률의 신뢰성을 보장할 수 없다. 뒤에서 같은 점수대의 예측과 관찰 비율을 대조한다.
분류 결과가 안내 우선순위를 돕는다는 범위를 유지한다. 높은 점수만 보고 주문을 자동 취소하거나, 안내 후 취소가 줄었다는 이유만으로 모델이 개입 효과를 입증했다고 하지 않는다.
먼저 되짚기: 나무의 가지는 조건의 경로가 된다
트리는 뿌리에서 가지가 이어지는 계층을 노드와 간선으로 표현한 구조였다(배열·연결·스택·큐·트리·그래프·해시). 여기서는 노드에 질문을 놓고, 뿌리에서 아래로 몇 단계 내려갔는지를 깊이로 읽으며, 마지막 노드에서 답을 얻는다.
의사결정나무: 질문을 순서대로 통과해 끝의 답을 읽는다
의사결정나무(decision tree)는 입력 조건으로 자료를 거듭 나누고 도달한 마지막 구간의 값으로 예측하는 방법이다. “직전 90일 주문 수가 1회 이하인가?” 같은 질문이 분기 조건이 될 수 있다. 리프(leaf)는 더 나누지 않고 예측 결과를 내는 나무의 끝 노드다. 노드·자식·깊이의 구조는 앞의 자료구조에서 배운 트리를 예측에 적용한 것이다.
학습은 사람이 그럴듯한 질문을 임의로 순서에 넣는 일만을 뜻하지 않는다. 현재 모인 학습 자료에서 특징과 나눌 값을 후보로 놓고, 나눈 뒤 목표 값들이 더 비슷해지는 조건을 찾는다. 이 과정을 각 부분에서 반복하다 정한 깊이·최소 사례 수 등의 조건에서 멈춘다.
분류에서는 리프에 도착한 학습 사례들의 결과 범주 비율로 확률을 추정하고 정한 기준에 따라 범주를 고를 수 있다. 회귀에서는 제곱 오차를 줄이는 나무라면 그 리프의 관찰 목표 평균을 예측값으로 쓴다. 같은 모양의 나무여도 어떤 목표와 손실을 사용하는지가 답을 결정한다.
불순도가 줄어드는 분기를 고른다
지니 불순도(Gini impurity)는 한 구간의 범주별 비율을 p₁·p₂·…라 할 때 1−(p₁²+p₂²+…)로 계산하는 섞임의 척도다. 한 범주뿐이면 0이며 두 범주가 반반이면 0.5다. 여기서는 단순 건수 비율을 사용하고 사례별 가중치는 사용하지 않는다.
학습 주문 6건 가운데 취소 3건·미취소 3건이 있다고 하자. 나누기 전 불순도는 1−(3/6)²−(3/6)²=0.5다. 어떤 입력 조건이 이를 다음처럼 나눈다고 가정한다.
| 부분 | 취소 / 미취소 | 지니 불순도 | 전체 6건 중 비중 |
|---|---|---|---|
| 왼쪽 | 0 / 3 | 0 | 3/6 |
| 오른쪽 | 3 / 0 | 0 | 3/6 |
나눈 뒤 가중 평균은 (3/6)×0+(3/6)×0=0으로 감소량은 0.5다. 반대로 각 부분이 취소·미취소를 반반씩 담으면 0.5가 그대로여서 이 기준으로 개선되지 않는다. 부분의 불순도만 단순 평균하지 않고 그 부분의 사례 수 비중을 곱하는 이유는 한 건과 백 건의 부분을 같은 비중으로 평가하지 않기 위해서다.
이 표는 분기 평가 원리의 가상 예다. 실제로 이 구분을 만드는 특징이 있는지 확인해야 하며, 결과 라벨 자체를 분기 입력으로 쓰면 앞 절에서 금지한 누수다.
너무 깊은 나무는 소수 주문을 외우고, 작은 변경에 흔들릴 수 있다
질문을 계속 늘리면 주문번호 같은 식별자나 우연한 조합으로 학습 행을 하나씩 분리할 수 있다. 리프 한 건이 취소였다고 p=1로 출력하면 새 주문에서도 확실한 취소라는 인상을 주기 쉽다. 학습 점수와 리프의 근거 건수, 새 자료의 결과를 함께 본다.
가지치기(pruning)는 만든 나무의 일부 분기를 줄여 복잡도와 일반화 성능을 조절하는 처리다. 만들 때부터 최대 깊이·리프 최소 사례 수를 제한하거나, 만든 뒤 가지를 줄이는 후보를 검증으로 비교할 수 있다. 분기 조건·설정 선택까지 시험 자료를 보지 않는다.
작은 나무는 경로를 설명하기 쉽지만 나무가 커지면 설명도 길어진다. 학습 자료의 작은 변화로 먼저 고르는 조건이 달라질 수 있으며, 나무 하나의 분기 경로를 모든 원인의 설명으로 받아들이지 않는다. 분류용 지니 불순도와 회귀용 제곱 오차를 혼동하지 않고, 결측·범주 지원은 실제 사용하는 도구와 버전의 규칙을 확인한다.
먼저 되짚기: 같은 자로 재야 가까운 이웃이 뜻을 갖는다
벡터는 같은 순서로 묶은 특징값이며 유클리드 거리는 각 특징의 차이를 제곱해 합한 뒤 제곱근을 취하는 거리였다(벡터·행렬·거리·유사도). 금액과 횟수의 단위가 다르면 한 특징이 거리를 지배할 수 있어, 앞 절에서는 학습에서 정한 표준화·범주 표현을 새 자료에도 그대로 적용했다(정형 데이터 준비·특징·학습). 이제 거리를 새로 정의하지 않고 가까운 학습 사례의 답을 이용한다.
k-최근접 이웃: 가까운 학습 사례의 답을 모은다
k-최근접 이웃(k-nearest neighbors, k-NN)은 새 입력과 가까운 학습 사례 k개를 찾아 그 사례의 목표 값을 모아 예측하는 방법이다. 여기의 k는 참고할 이웃 수다. 분류에서는 같은 비중의 이웃이 투표하는 방식이 기본 예이며, 회귀에서는 이웃의 수량 목표를 평균하는 방식이 기본 예다. 더 가까운 이웃에 큰 비중을 주는 규칙도 가능하지만 그 규칙을 함께 정해야 한다.
새 주문의 비교 좌표가 2이고 저장한 학습 좌표가 1·2.5·4·8, 각 취소 라벨이 0·1·1·0이라고 하자. 한 가지 특징을 같은 척도로 표현한 독립 예제에서 거리는 1·0.5·2·6이다. k=3이면 가까운 라벨은 1·0·1이고 1이 두 표이므로 취소 범주로 예측한다.
2/3이라는 이웃 비율을 얻어도 실제 취소 확률이 정확히 2/3이라는 보장은 없다. 거리가 같은 경계 이웃이나 동수 투표를 만나면 선택·동점 규칙을 정하고 재현해야 한다. k가 학습 사례 수보다 많으면 요구한 수의 이웃을 얻을 수 없다.
직선·나무·이웃은 무엇을 기억하고 무엇에 민감한가
| 방법 | 학습 후 예측에 쓰는 것 | 새 입력을 처리하는 방식 | 먼저 살필 한계 |
|---|---|---|---|
| 선형·로지스틱 | 계수·절편과 입력 표현 | 특징을 곱해 더하고 필요하면 시그모이드 변환 | 표현하지 못하는 관계·범위 밖 입력 |
| 나무 | 분기 조건과 리프 결과 | 조건 경로를 따라 끝의 답을 읽음 | 깊은 나무의 과대적합·작은 변화의 영향 |
| k-NN | 비교할 학습 사례와 거리 규칙 | 가까운 사례를 찾고 투표·평균 | 단위·무관한 특징·검색 비용·이웃 부족 |
k를 작게 두면 가까운 소수 사례의 잡음에 민감해지고 크게 두면 지역의 차이를 지나치게 섞을 수 있다. ‘학습 식이 간단하다’고 운영도 무조건 싼 것은 아니다. 사례가 늘면 저장과 이웃 검색 비용이 커질 수 있고, 차원이 많거나 의미 없는 특징이 섞이면 거리의 구별력이 약해진다.
세 방법을 같은 미래 기간과 같은 입력 이용 가능 조건에서 비교한다. 명목형 번호를 임의의 숫자 거리로 읽지 않는 원칙도 유지한다. 어떤 기법이 항상 가장 좋다는 결론보다 목표 성능·설명·처리시간·오류 비용의 근거를 남기는 것이 중요하다.
3. 군집은 정해진 정답을 맞히는 대신 비슷한 대상을 묶는다
군집화(clustering)는 미리 정한 목표 라벨 없이 선택한 특징과 가까움의 기준에 따라 대상을 묶는 분석이다. 고객별 최근 90일 방문 횟수와 평균 구매량을 같은 기준일까지 집계해 구매 습관을 비교할 수 있다. 이때 고객 한 명이 한 점이고 취소 예측의 주문 한 행과는 다르다.
알고리즘이 붙인 ‘군집 0·군집 1’은 묶음의 식별자다. 1이 0보다 우수하거나, 이미 알려진 우수·일반 고객의 정답 라벨을 뜻하지 않는다. 번호만 서로 바뀌었어도 같은 고객끼리 묶였다면 같은 분할일 수 있다.
묶은 뒤 각 집단의 실제 특징과 포함·제외 고객을 읽는다. ‘자주 소량 구매’ 같은 설명은 자료와 대조해 붙이며 고객의 숨은 의도나 고정 성격으로 단정하지 않는다. 라벨이 없다는 이유로 빠진 채널·잘못 집계한 기간·가상 번호의 거리 문제를 무시할 수 없다.
k-평균은 가까운 중심으로 보내고 중심을 다시 평균으로 구한다
k-평균(k-means)은 정한 개수 k의 중심에 대상을 배정하고 각 묶음의 평균으로 중심을 갱신하며, 중심까지의 제곱 거리 합을 줄이는 군집화 방법이다. 앞의 k-NN에서 k는 참고할 이웃 수였지만 여기서는 만들 군집 수다. 기호가 같다고 같은 알고리즘이 아니다.
군집 중심(centroid)은 k-평균에서 한 묶음에 들어온 점들의 특징별 평균 좌표다. 앞에서 배운 평균을 각 좌표에 적용하며 중심이 실제 고객 한 명의 좌표일 필요는 없다.
계산은 ① 시작 중심을 정한다 → ② 각 점을 가장 가까운 중심에 배정한다 → ③ 배정된 점의 평균으로 중심을 옮긴다 → ④ 배정·중심이 충분히 안정되거나 정한 반복 한도에 닿을 때까지 반복한다. 가까움은 이 예제에서 유클리드 거리이고 줄이는 목표는 그 거리의 제곱합이다. k와 시작점·반복 종료 조건을 함께 기록한다.
1·2·8·9를 두 중심으로 나누어 읽는다
네 고객 C11~C14의 같은 90일 동안의 구매 횟수가 각각 1·2·8·9라고 하자. 설명을 위해 이 특징 하나만 쓰고 k=2, 시작 중심을 1과 8로 정한다.
| 차례 | 배정 | 갱신한 중심 |
|---|---|---|
| 시작 중심 1·8과 거리 비교 | 1·2는 첫 중심, 8·9는 둘째 중심 | (1+2)/2=1.5, (8+9)/2=8.5 |
| 중심 1.5·8.5와 다시 비교 | 두 묶음이 그대로 유지됨 | 1.5와 8.5 그대로 |
최종 제곱 거리 합은 (1−1.5)²+(2−1.5)²+(8−8.5)²+(9−8.5)²=1이다. 모든 점을 한 중심 5로 묶으면 제곱 거리 합은 16+9+9+16=50이다. 그러나 1이 50보다 작다는 이유만으로 k=2가 업무상 정답이라고 결론 내릴 수는 없다.
각 고객을 따로 한 군집으로 만들면 네 중심에서 제곱합이 0이 된다. 수만 늘려 작은 제곱합을 얻는 것과 유용한 묶음을 얻는 것은 다르므로, 다른 k·시작점·표본에서의 안정성과 뒤에서 설명할 분리 정도·업무 의미를 함께 본다.
계층적 군집은 가까운 묶음을 합친 이력을 남긴다
응집형 계층적 군집(agglomerative hierarchical clustering)은 각 대상을 작은 군집으로 시작하여 가까운 군집끼리 순차로 합치는 방법이다. 합칠 때 군집 사이 거리를 어떻게 정하느냐에 따라 결과가 달라진다. 연결 기준(linkage)은 군집 두 개를 비교할 때 그 사이의 거리를 정하는 규칙이다.
예를 들어 두 군집의 가장 가까운 점 사이 거리를 쓰는 단일 연결은 1·2를 거리 1에서, 8·9도 거리 1에서 합친다. 두 묶음 사이의 가장 가까운 점은 2와 8이므로 다음 병합 거리는 6이다. 거리를 3까지 허용하고 멈추면 {1,2}와 {8,9}의 두 묶음을 얻는다.
덴드로그램(dendrogram)은 어떤 군집이 어느 거리나 기준값에서 합쳐졌는지 나타내는 나뭇가지 모양의 병합 이력 그림이다. 그리는 높이의 뜻은 사용한 연결 기준에 달려 있다. 다른 연결 기준에서는 두 군집의 가장 먼 점 거리나 점 사이 평균 거리 등을 사용할 수 있다.
가까운 점을 줄줄이 잇는 단일 연결은 길게 이어진 묶음을 만들 수 있다. 합친 이력이 남는다는 장점과 별개로 거리 계산·저장의 비용이 크거나 한 번 합친 결정을 되돌리지 않는 탐욕적 병합에 민감할 수 있어 자료 크기와 연결 기준을 검토한다.
DBSCAN은 촘촘한 이웃을 연결하고 일부 점은 남겨 둔다
DBSCAN은 정한 이웃 거리와 최소 이웃 수로 촘촘한 영역을 연결하여 군집을 찾고, 연결되지 않은 점은 잡음으로 남길 수 있는 방법이다. 전체 이름은 Density-Based Spatial Clustering of Applications with Noise이며 여기서는 밀도 기반 군집화의 한 방법으로 읽으면 된다.
핵심점(core point)은 반경 ε 안에 최소 개수 이상의 점이 있는 점이다. ε는 ‘엡실론’으로 읽는 거리 경계이며, 이 절은 scikit-learn의 DBSCAN 규칙처럼 자기 자신도 개수에 포함하고 거리≤ε인 점을 이웃으로 센다. 경계점(border point)은 스스로는 핵심점이 아니지만 어떤 핵심점의 이웃이어서 그 군집에 속하는 점이다.
서로 이웃인 핵심점들을 연결하고 가까운 경계점을 붙인다. 어느 핵심점의 이웃도 아닌 비핵심점은 어느 군집에도 배정하지 않는 잡음으로 표시한다. 이 잡음은 데이터 처리상의 분류이며 실제 오류·부정행위라는 확정 판정이 아니다.
반경과 자기 포함 여부가 점의 역할을 바꾼다
같은 척도의 1차원 점이 0·0.1·0.2·0.4·2에 있고 ε=0.21, 최소 개수=3이라고 하자. 이는 밀도 계산을 보여주는 별도 가상 표다.
| 점 | 거리≤0.21인 이웃(자기 포함) | 개수 | 역할 |
|---|---|---|---|
| 0 | 0, 0.1, 0.2 | 3 | 핵심점 |
| 0.1 | 0, 0.1, 0.2 | 3 | 핵심점 |
| 0.2 | 0, 0.1, 0.2, 0.4 | 4 | 핵심점 |
| 0.4 | 0.2, 0.4 | 2 | 0.2의 이웃인 경계점 |
| 2 | 2 | 1 | 어느 핵심점에도 닿지 않는 잡음 |
0·0.1·0.2의 핵심점들이 이어지고 0.4가 붙어 한 군집이 된다. 0과 0.4는 ε보다 멀지만 같은 군집이다. 따라서 ε를 “군집 안 모든 점 사이의 최대 거리”로 읽지 않는다.
ε를 너무 작게 정하면 많은 점이 잡음이 되고, 너무 크게 정하면 서로 다른 묶음이 연결될 수 있다. 밀도가 매우 다른 집단에 하나의 ε·최소 개수로 모두 적절한 경계를 만드는 일도 어렵다. 서로 다른 군집의 핵심점에 닿는 경계점은 구현의 탐색 순서에 따라 어느 쪽에 붙는지 달라질 수 있다.
군집의 모양과 근거를 보고 선택한다
| 방법 | 정해야 할 주요 기준 | 잘 드러내는 것 | 확인할 실패 조건 |
|---|---|---|---|
| k-평균 | 군집 수 k·시작 중심·척도 | 중심 주변에 모인 묶음 | 긴 곡선형 묶음·큰 극단값·시작점 민감성 |
| 응집형 계층 | 거리·연결 기준·어디서 자를지 | 단계적 병합 관계 | 단일 연결의 사슬 효과·계산 비용 |
| DBSCAN | ε·최소 이웃 수·척도 | 연결된 고밀도 영역과 미배정 점 | 서로 다른 밀도·ε 민감성·고차원 거리 |
k-평균의 시작 중심을 다르게 두면 서로 다른 국소적인 결과에서 멈출 수 있다. 제곱합이 줄었다는 사실만으로 가능한 모든 군집 분할 중 최선이라고 보장하지 않는다. 여러 시작점과 설정을 비교해 실제 얻은 목적값·묶음·민감도를 남긴다.
어떤 방법도 스스로 ‘VIP 고객’이라는 업무상 정답을 발견했다고 보증하지 않는다. 묶음 수와 각 건수, 특징 분포, 잡음·제외 비율, 기간이나 표본을 바꿨을 때의 재현성, 실제 운영에서 각 묶음을 다르게 다룰 이유를 확인한다.
4. 연관규칙의 화살표는 ‘같이 있었다’는 조건부 관계다
연관규칙(association rule)은 같은 관측 단위에서 항목 집합 X가 포함될 때 다른 항목 집합 Y도 함께 포함되는 관계를 X⇒Y로 나타낸 규칙이다. X와 Y는 겹치지 않는 비어 있지 않은 항목 집합으로 둔다. 왼쪽 X가 조건 부분인 선행부, 오른쪽 Y가 살펴볼 결과 부분인 후행부다.
항목집합(itemset)은 함께 포함되는지를 셀 항목들의 집합이다. 예를 들어 {공책, 펜}은 두 상품을 모두 포함했는지 묻는다. 이 절의 한 거래는 정한 기간의 완료 구매 한 건이며, 데이터베이스의 ACID 트랜잭션과 같은 단위를 반드시 뜻하지 않는다.
공책⇒펜은 공책을 산 거래 중 펜도 들어 있는 비율을 살핀다는 뜻이다. 공책을 산 뒤에 펜을 샀다는 시간 순서나 공책이 펜 구매의 원인이라는 뜻이 아니다. 취소 여부처럼 미리 정한 목표 라벨을 학습하는 문제와 달리 여기서는 여러 항목 사이의 동시 출현 관계를 찾는다.
열 개 장바구니에서 세 분모를 따로 센다
설명용 완료 구매 B01~B10의 상품 포함 여부를 다음처럼 정한다. 같은 거래에 공책이 여러 권이어도 이 예제에서는 ‘공책 포함’ 한 번으로 센다.
| 거래 | 포함한 상품 |
|---|---|
| B01 | 공책, 펜 |
| B02 | 공책, 펜 |
| B03 | 공책, 펜 |
| B04 | 공책 |
| B05 | 공책 |
| B06 | 펜 |
| B07 | 지우개 |
| B08 | 연필 |
| B09 | 풀 |
| B10 | 자 |
전체는 10건, 공책 포함은 5건, 펜 포함은 4건, 둘 다 포함은 3건이다. 이 네 수를 먼저 고정하면 다음 지표의 분모가 어디서 바뀌는지 보인다. 상품 항목 줄의 수나 판매 수량을 거래 수와 섞으면 다른 지표가 된다.
지지도·신뢰도·향상도는 서로 다른 질문에 답한다
지지도(support)는 전체 거래 중 정한 항목집합을 모두 포함한 거래의 비율이다. 공책⇒펜 규칙은 두 항목을 모두 포함한 3건이므로 지지도는 3/10=0.3이다.
신뢰도(confidence)는 선행부를 포함한 거래 중 후행부도 포함한 거래의 비율이다. 같은 규칙의 신뢰도는 3/5=0.6이다. 향상도(lift)는 규칙의 신뢰도를 전체 거래에서 후행부가 나타난 비율로 나눈 값이다. 펜의 전체 포함 비율이 4/10=0.4이므로 향상도는 0.6/0.4=1.5다.
| 질문 | 계산 | 이 표에서의 해석 |
|---|---|---|
| 전체에서 두 상품이 함께 있는가 | 지지도 3/10 | 전체 30% |
| 공책이 있을 때 펜도 있는가 | 신뢰도 3/5 | 공책 거래의 60% |
| 원래 펜이 흔한 정도보다 더 같이 있는가 | 향상도 0.6/0.4 | 전체 펜 비율의 1.5배 |
조건부확률의 분모가 바뀌는 원리를 적용한 것이다. 역방향 펜⇒공책은 신뢰도가 3/4=0.75로 다르다. 이 두 단일 항목의 향상도는 (3/10)÷((5/10)×(4/10))=1.5로 같지만, 신뢰도까지 대칭인 것은 아니다. 선행부나 후행부의 관측 건수가 0이면 해당 나눗셈을 그대로 할 수 없다.
Apriori는 드문 작은 조합을 포함한 큰 후보를 미리 버린다
빈발 항목집합(frequent itemset)은 정한 최소 지지도 이상으로 나타나는 항목집합이다. 위 표에서 최소 지지도를 0.3 이상으로 정하면 {공책}, {펜}, {공책,펜}은 기준을 만족한다. {지우개}는 1/10이므로 만족하지 않는다.
Apriori는 작은 빈발 항목집합으로 더 큰 후보를 만들고, 빈발하지 않은 부분집합을 포함한 후보를 제거하며 단계적으로 세는 방법이다. 이유는 간단하다. 공책과 지우개를 모두 포함한 거래는 지우개를 포함한 거래보다 많을 수 없다. 지우개가 1건뿐이면 {공책,지우개}도 최대 1건이므로 최소 3건을 만족할 수 없다.
① 한 항목씩 센다 → ② 기준을 통과한 항목으로 두 항목 후보를 만든다 → ③ 거래를 읽어 실제 건수를 센다 → ④ 필요한 크기까지 후보 생성·제거·계수를 반복한다. 빈발 집합을 얻은 뒤 선행부·후행부로 나눠 신뢰도 등으로 규칙을 고른다. 지지도의 이 단조 성질을 신뢰도에도 무조건 적용하지 않는다.
상품이 많고 기준이 낮으면 후보가 급증하고 자료를 반복해서 읽는 비용이 커진다. 최소 지지도·최대 항목 수·업무상 볼 항목을 목적에 맞게 정하되, 비용을 줄이려고 드문 중요 패턴을 제외했다면 그 범위도 함께 남긴다.
FP-growth는 공통 앞부분을 공유해 거래를 압축한다
FP-growth는 빈발 항목을 공통 순서로 놓은 거래들을 빈발 패턴 트리(FP-tree)로 압축하고, 특정 항목이 나타난 앞 경로를 모아 작은 조건부 문제로 나누어 빈발 패턴을 찾는 방법이다. FP는 Frequent Pattern의 약어다. 빈발 패턴 트리(FP-tree)는 공통 항목 순서의 앞 경로를 공유하고 그 경로를 지난 거래 건수를 노드에 기록하는 압축 구조다. Apriori처럼 각 크기의 후보 집합을 대량으로 나열해 검증하는 경로와 다르다.
위 표에서 최소 3건인 항목만 남기면 공책 5건·펜 4건이다. 거래마다 공책→펜의 같은 빈도 순서를 적용하면 B01~B03은 공통 경로를 공유하고, B04~B05는 공책까지만 들어가며 B06은 펜만 남는다.
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
B01~B03은 공책→펜 경로를 함께 지나고 B04~B05는 공책까지만 간다. B06의 펜은 다른 경로다. 공책 5와 그 아래 펜 3을 더해 거래 8건이라고 세지 않는다. 숫자는 각 경로를 지난 거래 수이며 최소 3건 항목만 남긴 원래 표의 조건을 유지한다.
펜을 끝 항목으로 살펴보면 공책을 거쳐 펜에 닿은 경로의 수가 3이다. 따라서 {공책,펜}의 건수 3을 읽을 수 있다. 각 노드의 수는 그 경로를 공유한 거래 수이지 상품 판매 수량이 아니다.
이 그림은 앞의 가상 표로 새로 작성한 것이다. 실제 FP-growth는 항목별 경로 연결과 조건부 트리에서 같은 탐색을 반복한다. 모든 자료가 잘 압축된다는 보장은 없으며, 공유 경로가 적거나 빈발 패턴 자체가 매우 많으면 메모리·출력 비용이 커질 수 있다.
높은 신뢰도도 새 시기의 판매 효과를 보장하지 않는다
전체 거래의 90%가 이미 펜을 포함하고, 어떤 상품 X를 포함한 거래의 90%도 펜을 포함한다고 하자. X⇒펜의 신뢰도는 0.9로 높지만 향상도는 0.9/0.9=1이므로 이 자료에서는 원래 흔한 정도를 넘어서는 동시 출현을 보이지 않는다.
반대로 X가 단 1건이고 그 한 건에 드문 상품 Y가 포함되면 신뢰도와 향상도가 커 보일 수 있다. 작은 건수의 우연을 강한 규칙으로 받아들이지 말고 원래 건수·기간·계절·행사·묶음 판매 조건과 다른 기간에서의 재현을 살핀다. 많은 후보 중 잘 나온 규칙만 골랐다면 선택 과정의 과대평가도 고려한다.
동시 구매가 많아도 할인 제안이 추가 구매를 일으킨다는 인과 결론은 아니다. 이미 같이 파는 세트나 행사 때문에 생긴 관계일 수 있다. 반복 구매 규칙을 운영에 쓰기 전에는 이익·재고·과도한 추천과 개인정보 이용 범위를 검토하며 효과의 인과 판단은 통계·실험 담당 범위와 구별한다.
5. 이상탐지는 평소와 다름을 찾지, 잘못임을 확정하지 않는다
이상탐지(anomaly detection)는 정한 정상 기준이나 자료의 일반적인 패턴에서 벗어난 관측을 찾아 추가 확인 대상으로 만드는 분석이다. 이때 이상치(outlier)는 사용한 특징·비교 집단·기준에서 다른 관측과 크게 어긋나 보이는 값이나 관측이다. 큰 금액 자체가 항상 이상인 것은 아니며 도매 주문과 개인 소량 주문은 비교 조건이 다를 수 있다.
신규성 탐지(novelty detection)는 정상으로 간주한 기준 자료로 경계를 학습한 뒤 새 관측이 그 경계에서 벗어나는지 보는 방식이다. 반면 이미 이상치가 섞였을 수 있는 자료 자체에서 어긋난 점을 찾는 경우에는 그 오염을 고려해야 한다. 이 절은 scikit-learn의 두 사용 문맥을 구별한다.
기록 오류, 새 행사, 합법적인 대량 구매와 실제 문제 거래가 모두 드문 점으로 나타날 수 있다. 라벨 없이 찾은 이상 점수를 ‘사기 확률’이라고 바꾸어 부르지 않는다. 확인된 문제·정상 라벨이 충분하다면 지도 분류도 후보이며, 그 라벨의 누락과 확인 편향을 함께 본다.
LOF는 전체 평균보다 주변 이웃에 비해 얼마나 성긴지를 본다
국소 이상치 요인(Local Outlier Factor, LOF)은 한 점 주변의 밀도를 그 점의 이웃들이 가진 밀도와 비교하여 상대적으로 성긴 점에 큰 이상 정도를 부여하는 방법이다. 여기서 밀도는 정한 가까운 이웃들이 작은 거리 안에 얼마나 모였는지를 뜻한다. 같은 거리를 써도 전체 자료가 아니라 각 점의 주변과 비교한다.
예를 들어 한 지역에는 방문 횟수가 비슷한 고객들이 아주 촘촘히, 다른 지역에는 좀 더 넓게 모여 있을 수 있다. 넓은 지역의 한 고객이 주변과 비슷한 간격으로 있다면, 전체의 가장 촘촘한 집단보다 성기다는 이유만으로 반드시 이상점은 아니다. 반대로 촘촘한 이웃들이 있는 곳에서 혼자 떨어진 점은 상대 차이가 크다.
LOF는 단순히 전체 평균에서 몇 배 떨어졌는지를 계산하는 방법도, k-NN 분류처럼 이웃 라벨을 투표하는 방법도 아니다. 다음 표에서 주변 거리로 밀도를 안정적으로 계산하고 그 비율을 읽는 과정을 더 구체적으로 본다.
가까운 두 점 때문에 밀도가 끝없이 커지지 않게 거리를 조정한다
LOF의 계산을 읽기 위해 세 값을 구분한다. k-거리는 자기 자신을 뺀 이웃 중 k번째로 가까운 점까지의 거리다. 경계에서 거리가 같은 점들이 있으면 원 논문의 이웃 집합은 그 동점들을 모두 포함하므로 이웃 수가 k보다 많을 수도 있다.
도달가능거리(reachability distance)는 점 A를 이웃 B와 비교할 때 A–B 실제 거리와 B의 k-거리 중 큰 값이다. A와 B만 지나치게 가까워도 B 주변의 전반적인 간격보다 거리를 작게 보지 않게 한다. 이는 최단 경로를 찾는 네트워크의 도달 가능성과 다른 LOF 계산 용어다.
국소 도달가능밀도(local reachability density)는 그 점에서 이웃들까지의 도달가능거리 평균을 역수로 바꾼 값이다. 평균 거리가 작으면 밀도가 크다. 원 LOF는 각 이웃의 이 밀도를 대상 점의 밀도로 나눈 비율들의 평균으로 이상 정도를 구한다. 1 부근이면 주변과 비슷하고 훨씬 크면 주변보다 성긴 상태이며, 중복점 등으로 평균 거리가 0인 경우에는 위 역수를 그대로 계산할 수 없어 구현의 수치 처리와 데이터 중복을 확인해야 한다.
이미 구한 이웃 밀도와 내 밀도로 LOF를 읽는다
먼저 원자료에서 중간 값을 구하는 작은 예를 끝까지 계산해 보자. 같은 척도의 1차원 위치 0,1,3,10, k=2를 가정하고 자기 자신은 이웃에서 뺀다. 이 자료에서는 둘째 이웃의 경계에 동점이 없다. 거리는 두 위치의 차이의 절댓값이다.
| 점의 위치 | 가까운 두 이웃의 위치 | 둘째 이웃까지의 k-거리 |
|---|---|---|
| 0 | 1, 3 | 3 |
| 1 | 0, 3 | 2 |
| 3 | 1, 0 | 3 |
| 10 | 3, 1 | 9 |
점 10에서 이웃 3으로의 도달가능거리는 max(실제 거리 7, 이웃 3의 k-거리 3)=7, 이웃 1로는 max(9,2)=9다. 여기서 max는 두 수 중 큰 값을 고르라는 표시다. 평균 거리는 (7+9)/2=8, 그 역수인 자기 밀도는 1/8=0.125다. 이웃 3의 두 도달가능거리는 max(2,2)=2, max(3,3)=3이므로 밀도는 1/2.5=0.4다. 이웃 1의 두 도달가능거리는 max(1,3)=3, max(2,3)=3이므로 밀도는 1/3이다. 따라서 점 10의 LOF는 [0.4/0.125+(1/3)/0.125]/2≈2.933이다. 자기 이웃까지의 실제 거리만 평균하면 이웃의 주변 간격을 반영하는 조정 단계가 빠진다.
위치를 바꾸어 먼저 예측하기. 원자료 0,1,3,10에서 점 10만 13으로 옮기고 k=2와 자기 제외·동점 없음 조건을 유지한다. 새 점의 이웃, 도달가능거리, 자기 밀도와 LOF를 차례로 구하고, 원래 2.933보다 커질지 작아질지 이유를 적는다.
LOF의 분모 방향과 이동 결과 보기
점 10만 13으로 옮기고 k=2를 유지하면 주변 세 점의 이웃과 밀도는 그대로지만 새 점의 두 도달가능거리는 10과 12가 된다. 새 자기 밀도는 1/11이고 LOF는 [0.4/(1/11)+(1/3)/(1/11)]/2≈4.033으로 커진다. 가까운 집단에서 더 멀어진 결과를 이웃 대비 성김으로 읽는 것이다. 자기 밀도가 낮아졌으니 LOF도 작아진다고 예상했다면 이웃 밀도/자기 밀도의 방향으로 돌아가 분자와 분모를 확인한다. 아래는 이 계산과 별도로 비율만 간단히 비교하는 예다.
도달가능거리 단계가 끝났다고 가정하고 한 점 A의 국소 도달가능밀도가 1, 두 이웃 B·C의 밀도가 각각 2와 2라고 하자. 모든 값은 같은 거리 기준에서 계산한 설명용 중간 값이며 원자료의 전체 LOF 실행 결과는 아니다.
| 대상 | 자기 밀도 | 이웃 밀도 | 이웃/자기 비율의 평균 |
|---|---|---|---|
| A | 1 | 2, 2 | (2/1+2/1)/2=2 |
| D(별도 비교 점) | 2 | 2, 2 | (2/2+2/2)/2=1 |
A는 그 주변 이웃들보다 성긴 상태이고 D는 주변과 비슷하다. 2가 ‘사기 확률 200%’라는 뜻은 아니다. 이상으로 보고할 점수 경계와 이웃 수는 정상·문제 확인 결과와 업무 검토량을 보며 정한다.
scikit-learn의 LocalOutlierFactor는 학습 자료의 negative_outlier_factor_에 이 요인의 반대 부호 쪽 점수를 두므로 더 작은 값이 더 이상하다. 기본 이상치 탐지와 novelty=True의 새 자료 평가 기능도 구별한다. 후자의 새 자료용 예측을 학습에 사용한 점들에 그대로 적용하여 기본 결과와 같다고 기대하지 않는다.
Isolation Forest는 적은 분기로 고립되는 점을 찾는다
아이솔레이션 포리스트(Isolation Forest)는 특징과 나눌 값을 무작위로 골라 자료를 나누는 여러 나무에서, 각 점이 따로 고립되기까지의 경로 길이를 이용하는 이상탐지 방법이다. 나무의 ‘숲’이라는 이름은 서로 다른 무작위 분할 나무들을 함께 사용한다는 뜻이다.
값이 1·2·3·20인 독립 예제에서 먼저 10으로 나누면 20은 한 번에 혼자 남는다. 1·2·3은 아직 함께 있어서 2.5로 나누고, 남은 1·2를 1.5로 나누는 등의 추가 단계가 필요하다. 이는 한 가지 설명용 분할 경로이며 실제 무작위 선택을 실행한 결과가 아니다.
여러 나무의 경로를 모아 점수를 만든다. 일반적으로 고립되기 쉬운 드문 점은 짧은 경로를 가지지만 나무 하나의 깊이만으로 단정하지 않는다. 라벨을 더 순수하게 나누도록 질문을 고르는 앞의 분류 나무와 학습 목적이 다르며, 점수의 부호·경계와 실제 자료의 희귀 집단을 확인한다.
드물다는 이유만으로 삭제하거나 정상이라고 학습하지 않는다
| 관찰 상황 | 먼저 확인할 일 | 피할 결론 |
|---|---|---|
| 갑자기 매우 큰 주문 | 원 단위 변경·중복·정당한 대량 구매·실제 문제 여부 | 큰 값이므로 곧바로 사기 확정 |
| 새로운 행사로 주문 양상 변화 | 기준 기간·행사 조건과 조치 영향을 분리 | 경보가 많으니 새 값을 전부 정상으로 재학습 |
| 담당자가 경보 건만 확인 | 미경보 표본도 적절히 확인할 계획 | 경보의 적중률만으로 놓친 문제까지 없다고 주장 |
| 도구 설정에 이상 비율 1% 입력 | 점수 경계를 정한 가정과 실제 확인 결과 | 실제 문제 비율이 1%임을 검증했다고 표시 |
동일한 기준에서 어느 방향의 점수가 더 이상한지, 몇 건을 사람이 확인할 수 있는지, 확인 지연과 잘못된 차단의 비용을 정한다. 경보 기준을 더 민감하게 조정해도 알려지지 않은 모든 유형의 문제를 잡을 수는 없다. 이상으로 표시된 원본은 근거 없이 지우지 않고 실제 확인 결과와 판정 이유를 남긴다.
이후 성능을 평가할 때도 관찰이 끝나지 않은 사례와 아직 확인하지 않은 사례를 정상으로 채우지 않는다. 앞 절의 ‘모르는 라벨은 0이 아니다’가 취소 예측뿐 아니라 이상탐지의 확인 과정에도 적용된다.
먼저 되짚기: 계산 규칙과 사용할 기준을 나눈다
앞에서 선형식·로지스틱·나무·이웃은 목표 값을 예측했고, 군집·연관·이상탐지는 정한 가까움·동시 출현·어긋남을 계산했다. 같은 모델 점수라도 임계값을 바꾸면 선택 대상이 달라졌으며, 그 기준은 학습과 별도로 검증에서 정했다. 이제 예측을 어떤 분모의 오류로 평가하고 어떤 비용까지 받아들일지를 연결한다.
6. 평가는 목적에 맞는 분모와 조치 경계를 고정하는 일이다
데이터마이닝 평가·판정은 고정한 대상·기간·정답 확인 조건에서 결과의 오류와 유용성을 측정하고, 업무 비용·처리 능력에 맞는 적용 기준을 정하는 과정이다. 수치 하나의 크기를 비교하기 전에 어떤 사건을 맞히려는지, 어떤 자료로 후보를 선택했는지, 잘못 판단한 한 건이 무슨 결과를 만드는지 정한다.
이 부분은 분류와 회귀의 지표, 군집 결과의 분리 정도, 이상 경보의 확인 범위와 임계값을 다룬다. 데이터 분리·누수의 정식 정의는 앞 절을 재사용한다. 여기서 얻은 가상 계산값을 실제 성능이나 사람의 검수 승인으로 표시하지 않으며, 표본 밖 일반화와 인과 효과의 통계적 증명까지 끝났다고 주장하지 않는다.
먼저 되짚기: 전체 중 비율과 조건 안의 비율은 다르다
조건부확률은 분모를 주어진 조건에 맞는 사건으로 제한하여 읽는 가능성이었다(확률·확률변수·분포). 실제 취소 가운데 찾은 비율과, 안내 대상으로 고른 주문 가운데 실제 취소인 비율은 분모가 다르므로 값이 같을 필요가 없다. 다음 표는 앞에서 정한 7일 관찰과 기록 완전성이 모두 확인된 주문만 포함한다.
양성과 음성은 좋고 나쁨이 아니라 먼저 정한 두 이름이다
양성(positive)은 이진 분류에서 찾아내려는 결과로 지정한 범주다. 문구점에서는 취소를 양성 1로 정한다. 음성(negative)은 그와 반대의 범주다. 여기서는 관찰을 마친 미취소 0이다. 양성이 좋은 결과라는 뜻은 아니다.
혼동행렬(confusion matrix)은 실제 결과 범주와 예측 결과 범주를 교차하여 각 조합의 건수를 센 표다. 행과 열의 방향은 표에 명시해야 한다. 이 절은 행을 실제 결과, 열을 예측 결과로 두며 실제 취소는 항상 라벨 1이라는 약속을 지킨다.
취소라는 사실과 안내라는 조치는 구별한다. ‘양성으로 예측했다’는 말은 여기서 안내 검토 대상으로 골랐다는 뜻이지 실제 주문이 취소되었다는 업무 상태 변경이 아니다.
맞힌 두 종류와 틀린 두 종류를 네 칸에 둔다
진양성(true positive, TP)은 실제 양성을 양성으로 올바르게 예측한 건수다. 위양성(false positive, FP)은 실제 음성을 양성으로 잘못 예측한 건수다. 위음성(false negative, FN)은 실제 양성을 음성으로 놓친 건수다.
문구점에서는 TP가 찾아낸 취소, FP가 불필요한 안내 후보, FN이 놓친 취소다. 첫 글자 T/F는 예측의 참·거짓, P/N은 예측한 양성·음성을 가리킨다.
마지막 칸까지 채워 전체 건수를 맞춘다
진음성(true negative, TN)은 실제 음성을 음성으로 올바르게 예측한 건수다.
| 실제\예측 | 양성: 안내 검토 대상 | 음성: 이번 기준에서 제외 |
|---|---|---|
| 양성: 실제 취소 | TP: 취소를 찾아냄 | FN: 취소를 놓침 |
| 음성: 실제 미취소 | FP: 불필요한 안내 후보 | TN: 미취소를 맞힘 |
행은 실제 결과이고 열은 예측 결과다. 이 네 칸을 같은 평가 단위에서 빠짐없이 세면 전체 주문 수가 된다.
같은 8건에 기준 0.5를 적용한다
이제 앞의 네 칸을 실제 숫자로 채운다. 다음 점수는 가상으로 주어진 고정 후보의 출력이며 어떤 방법의 실측 성능도 아니다.
| 평가 주문 | 취소 점수 p | 관찰 완료 라벨 | p≥0.5의 예측 | 칸 |
|---|---|---|---|---|
| E01 | 0.9 | 1 | 양성 | TP |
| E02 | 0.8 | 0 | 양성 | FP |
| E03 | 0.7 | 1 | 양성 | TP |
| E04 | 0.6 | 0 | 양성 | FP |
| E05 | 0.4 | 1 | 음성 | FN |
| E06 | 0.3 | 0 | 음성 | TN |
| E07 | 0.2 | 0 | 음성 | TN |
| E08 | 0.1 | 0 | 음성 | TN |
TP=2, FP=2, FN=1, TN=3으로 전체는 8건이다. 실제 취소는 3건, 실제 미취소는 5건, 고른 안내 후보는 4건이다. 뒤의 분류 계산은 별도 언급이 없는 한 이 같은 표를 사용한다.
정확도·정밀도·재현율의 분모를 말로 먼저 읽는다
정확도(accuracy)는 전체 평가 대상 중 맞힌 비율이다. 식은 (TP+TN)/(TP+FP+FN+TN)이므로 이 표에서는 5/8=0.625다.
정밀도(precision)는 양성으로 예측한 대상 중 실제 양성의 비율이다. 식은 TP/(TP+FP)이므로 안내 후보 4건 가운데 실제 취소 2건, 즉 2/4=0.5다. 데이터베이스 숫자 자료형의 정밀도와는 다른 분류 지표다.
재현율(recall)은 실제 양성 중 양성으로 찾아낸 비율이다. 식은 TP/(TP+FN)이므로 실제 취소 3건 가운데 2건, 즉 2/3≈0.667이다. 재현율을 진양성률(true positive rate, TPR)이라고도 한다.
정확도만 보면 ‘8건 중 5건을 맞힘’이지만 안내 담당자의 입장에서는 4건을 검토해 2건이 맞았고 실제 취소 1건은 놓쳤다. 앞 절의 취소 1건·미취소 99건에서 모두 미취소라고 한 후보는 정확도 99%여도 재현율 0이라는 문제가 여기의 분모로 설명된다.
두 지표 중 작은 쪽이 가려지지 않게 평균한다
조화평균(harmonic mean)은 양수 두 값 a·b에 대해 2ab/(a+b)로 계산하는 평균이다. 한 값이 크고 다른 값이 작으면 단순 산술평균보다 작은 쪽에 더 민감하다.
예를 들어 1과 1/3의 산술평균은 2/3이지만 조화평균은 2×1×(1/3)/(1+1/3)=1/2이다. 다음 F1은 정밀도와 재현율을 이 방식으로 묶되, 0을 포함한 분류 건수에서는 별도의 0 분모 조건을 함께 확인한다.
F1과 거짓경보 비율은 비용 그 자체가 아니다
F1 점수는 정밀도와 재현율을 같은 비중의 조화평균으로 묶은 지표다. 분류 건수로 쓰면 F1=2TP/(2TP+FP+FN)이므로 이 표에서는 4/7≈0.571이다.
위양성률(false positive rate, FPR)은 실제 음성 가운데 양성으로 잘못 고른 비율이다. 식은 FP/(FP+TN)이며 이 표에서는 2/5=0.4다. 정밀도 0.5의 반대인 ‘고른 대상 중 틀린 비율’과 분모가 다르다. 특이도(specificity)는 실제 음성 가운데 음성으로 맞힌 비율로, TN/(FP+TN)이며 위양성률의 1−FPR이다.
F1에는 TN이 직접 들어 있지 않고, 어떤 오류가 몇 원인지나 담당자의 처리 한도도 반영되지 않는다. F1이 같아도 오류 종류별 건수와 비용이 다를 수 있다. 지표를 업무 목적에 연결하되 이름 하나를 만능 점수로 쓰지 않는다.
분모가 0이거나 정답이 덜 모였으면 완벽한 점수로 채우지 않는다
양성으로 고른 주문이 한 건도 없으면 TP+FP=0이므로 정밀도를 그 비율식으로 계산할 수 없다. 실제 양성이 없는 평가 자료에서는 TP+FN=0이라 재현율도 그 식으로 정의되지 않는다. 라이브러리가 정한 0·1·경고·누락값 처리 규칙을 결과와 함께 기록하고, ‘오류가 없으니 100%’라고 임의로 채우지 않는다.
같은 정확도라도 실제 양성 수가 3건인 표와 3천 건인 표의 근거 크기는 다르다. 전체 건수, 양성·음성 건수와 네 칸을 함께 보고 기간·채널·신규/기존 고객별 오류를 살핀다. 작은 집단의 높은 점수를 집단 전체의 확정 성능으로 해석하지 않는다.
여러 범주를 평가할 때는 범주마다 하나를 양성으로 놓고 본 뒤 평균 방식도 정한다. 매크로 평균(macro average)은 범주별 지표를 범주마다 같은 비중으로 평균하는 방식이다. 마이크로 평균(micro average)은 범주별 판단 건수를 먼저 합친 뒤 지표를 계산하는 방식이다. 따라서 큰 범주의 건수가 작은 범주의 실패를 가릴 수 있는지 확인하며, 이진 취소 예제의 단일 지표와 평균된 다범주 지표를 그대로 섞지 않는다.
임계값을 낮추면 같은 점수에서 더 많은 주문을 고른다
같은 8건에서 기준만 p≥0.3으로 낮추면 E05와 E06이 새로 양성이 된다. E05는 놓쳤던 취소이므로 FN→TP, E06은 미취소이므로 TN→FP로 이동한다.
| 기준 | TP / FP / FN / TN | 안내 후보 수 | 정확도 | 정밀도 | 재현율 | F1 |
|---|---|---|---|---|---|---|
| p≥0.5 | 2 / 2 / 1 / 3 | 4 | 5/8 | 2/4 | 2/3 | 4/7 |
| p≥0.3 | 3 / 3 / 0 / 2 | 6 | 5/8 | 3/6 | 3/3 | 6/9 |
이 표에서는 정확도가 같고 재현율은 늘었지만 안내 건수와 FP도 늘었다. 정밀도는 두 기준에서 0.5로 같다. 따라서 ‘임계값을 낮추면 정밀도가 반드시 일정하게 내려간다’고 외우지 않는다. 동일 점수·동일 자료에서 기준을 낮추면 선택 집합이 넓어지므로 TP·FP는 줄지 않지만, 정밀도라는 비율은 새로 포함된 구성에 따라 달라진다.
이는 두 후보 기준의 비교이지 가능한 모든 임계값 중 0.3이 최적이라는 증명이 아니다. 검증에서 기준 후보와 비용·처리 한도를 비교한 뒤 고정하고, 마지막 시험의 답을 보며 기준을 반복 수정하지 않는다.
ROC는 위양성률과 재현율의 여러 기준점을 잇는다
ROC 곡선(receiver operating characteristic curve)은 임계값을 바꾸면서 가로축의 위양성률과 세로축의 진양성률, 즉 재현율을 나타내는 곡선이다. 위 표의 0.5 기준은 (2/5, 2/3), 0.3 기준은 (3/5, 1)에 놓인다. 아무것도 고르지 않으면 (0,0), 전부 고르면 (1,1)이다. 양성과 음성이 모두 있는 평가 자료라는 전제가 필요하다.
ROC-AUC는 ROC 곡선 아래의 면적으로, 큰 점수가 더 양성을 뜻할 때 양성을 음성보다 높은 점수로 순위 매기는 능력을 요약하는 지표다. AUC는 Area Under the Curve의 약어다. 동점은 반만 맞힌 것으로 세는 통상적인 순위 해석에서, 이 예제의 실제 양성 점수 0.9·0.7·0.4는 실제 음성 5건보다 각각 5·4·3번 높다. 따라서 총 3×5쌍 중 12쌍, AUC=12/15=0.8이다.
AUC 0.8은 개별 취소 확률이 80% 맞는다는 뜻도, 어느 임계값에서 80%를 찾아낸다는 뜻도 아니다. 같은 점수의 순위를 보존한 채 확률 숫자를 왜곡해도 AUC는 같을 수 있다. 실제 사용할 한 기준점의 FP·FN·검토량과 확률의 신뢰성을 별도로 확인한다.
PR은 고른 대상의 품질과 실제 양성의 포착을 함께 본다
PR 곡선(precision–recall curve)은 임계값을 바꾸면서 재현율과 정밀도를 함께 나타내는 곡선이다. 음성이 매우 많으면 작은 위양성률도 큰 FP 건수가 될 수 있으므로, 실제 검토 대상 중 몇 건이 맞는지 보려는 업무에서는 ROC와 함께 PR을 본다. 양성 비율이 바뀌면 정밀도의 조건도 달라지므로 서로 다른 기간의 곡선을 분모 없이 비교하지 않는다.
평균 정밀도(average precision, AP)는 재현율이 증가한 크기만큼 그 단계의 정밀도를 가중하여 더한 순위 요약 지표다. 동점이 없는 이 표에서 점수 순으로 내려오다 양성을 만나는 순위는 1·3·5번째다. 각각 정밀도가 1/1·2/3·3/5이고 양성 한 건마다 재현율이 1/3씩 증가하므로 AP는 (1+2/3+3/5)/3=34/45≈0.756이다.
AP는 PR 곡선 아래를 사다리꼴로 선형 연결해 구한 면적과 항상 같지 않다. 보고서에 ‘PR-AUC’만 쓰지 않고 어떤 계산을 사용했는지 남긴다. 8건의 설명용 결과가 실제 순위 품질을 검증한 자료로 바뀌는 것은 아니며, 작은 양성 수와 경보 처리량을 같이 본다.
0.8이라는 숫자가 믿을 만한지 같은 점수대의 실제 비율을 본다
확률 보정(calibration)은 예측 확률의 수준과 실제 사건 발생 비율이 맞도록 점검하고 필요하면 별도 자료로 대응 관계를 학습하여 조정하는 과정이다. 이미 정한 예측값을 단순히 0~1에 넣는 일과 다르다.
예를 들어 다른 충분한 평가 자료에서 점수 0.8 부근의 주문들을 모았더니 평균 예측 확률이 0.8, 관찰 완료 취소 비율이 0.5였다고 하자. 그 구간은 실제 관측보다 더 높은 확신을 보이는 증거다. 점수 구간별로 평균 예측 확률과 실제 양성 비율, 건수를 나란히 읽는다. 구간이 거칠거나 사례가 적으면 차이를 제대로 보기 어려우며 전체 구간이 맞아도 특정 고객군에서는 어긋날 수 있다.
수정이 필요하면 원 모델을 학습한 답을 그대로 외우는 자료와 분리한 보정 자료나 적절한 교차검증으로 점수→확률의 변환을 배운다. 변환 방법도 후보 선택의 일부이고, 마지막 시험 자료로 보정까지 맞추지 않는다. 보정 후 순위나 임계값 결과가 달라질 수 있으므로 전체 절차를 다시 평가한다.
비용을 붙이면 같은 정확도에서도 선택이 달라진다
불필요한 안내 후보 한 건의 오류 비용을 1단위, 취소를 놓친 한 건의 오류 비용을 5단위로 가정하자. 여기서는 올바른 판단의 비용을 0으로 놓고 다른 운영 비용을 제외한 설명용 오류 비용 모형이다.
| 기준 | FP 비용 | FN 비용 | 합계 |
|---|---|---|---|
| p≥0.5 | 2×1=2 | 1×5=5 | 7 |
| p≥0.3 | 3×1=3 | 0×5=0 | 3 |
두 기준만 비교하면 0.3의 오류 비용이 작지만 안내 후보는 6건이다. 담당자가 같은 기간에 4건만 확인할 수 있다면 그대로 실행할 수 없으므로 처리 능력·대기·놓칠 사건의 손실을 함께 정해야 한다. 비용 1·5도 현실에서 확정한 값이 아니라 비교 원리를 보여주는 가정이다.
단순한 비용 식을 쓰려면 먼저 확률 p가 적용 집단에서 믿을 만해야 한다. 두 오류의 비용 C_FP·C_FN은 모든 주문에서 각각 일정하며, 둘 다 0 이상이고 합은 0보다 커야 한다. 올바른 판단의 비용까지 0으로 놓으면 양성 판단의 기대 오류 비용은 (1−p)C_FP, 음성 판단은 pC_FN이다. 전자가 작거나 같은 조건을 풀면 p≥C_FP/(C_FP+C_FN)이다. 위 가정에서는 1/6이지만 실제 8건에서 최선인 기준을 계산했다는 뜻은 아니다.
확률이 보정되지 않았거나 주문별 비용·용량·조치 효과가 다르면 이 단순 식만으로 운영 기준을 정하지 않는다. 취소 예측의 FP·FN 비용과 실제 안내가 취소를 얼마나 줄이는지의 효과는 다른 근거가 필요하다.
처리 한도를 만족하는 후보끼리 비용을 비교해 보기
같은 E01~E08의 점수·라벨을 유지하고, 검증에서 비교할 후보에 p≥0.7도 넣었다고 하자. 이 기준은 E01·E02·E03 세 건을 고르므로 TP=2, FP=1, FN=1, TN=4다. 앞의 FP 1·FN 5단위 가정에서는 비용이 1×1+1×5=6이다.
| 검증에서 비교할 기준 | 검토 건수 | 오류 비용 | 같은 기간에 최대 4건 처리할 때 |
|---|---|---|---|
| p≥0.3 | 6 | 3 | 한도를 넘으므로 이 규칙 그대로는 실행 불가 |
| p≥0.5 | 4 | 7 | 실행 가능한 후보 |
| p≥0.7 | 3 | 6 | 실행 가능한 후보이며 이 두 가능 후보 중 비용이 작음 |
먼저 실행 가능한 후보를 남긴 뒤 비용을 비교하면, 제시한 세 후보 중에서는 0.7 기준을 고른다. 남는 처리 자리 하나를 반드시 채울 필요는 없다는 조건이다. 이는 검증 후보 세 개에 한정한 판단이며 모든 가능한 정책 중 최적이라는 주장이나 실제 운영 성과가 아니다. 뒤의 답안 도식은 0.5·0.3 두 기준의 비교를 그대로 보여주고, 이 예제는 그 비교에 용량 제약과 세 번째 후보를 더한 별도 연습이다. 제한 없이 0.3으로 먼저 고른 뒤 일부를 임의로 버리면 처음 계산한 비용 3도 그대로 유지된다고 볼 수 없다. 버릴 순서와 동점 처리까지 새로운 선택 규칙으로 정해 다시 평가해야 한다.
회귀 오차는 원래 수량의 단위를 놓치지 않는다
평균 절대 오차(mean absolute error, MAE)는 실제값과 예측값 차이의 절댓값을 평균한 값이다. 평균 제곱 오차(mean squared error, MSE)는 그 차이의 제곱을 평균한 값이다. 평균 제곱근 오차(root mean squared error, RMSE)는 MSE의 제곱근이다. 여기의 평균은 각 작업에 같은 비중을 주며 별도 가중치를 사용하지 않는다.
포장 작업 세 건의 실제 시간이 2·5·9분이고 고정한 후보의 예측이 3·5·7분이라고 하자. 학습용 R11~R13과 별도로 만든 평가 예제다.
| 실제 / 예측(분) | 실제−예측 | 절댓값 | 제곱 |
|---|---|---|---|
| 2 / 3 | −1 | 1 | 1 |
| 5 / 5 | 0 | 0 | 0 |
| 9 / 7 | 2 | 2 | 4 |
MAE=(1+0+2)/3=1분, MSE=(1+0+4)/3=5/3분², RMSE=√(5/3)≈1.291분이다. 제곱 오차는 큰 차이를 더 강하게 반영하고 MSE의 단위는 원래 단위의 제곱이다. 분 단위 허용 오차와 MSE 숫자를 단위 없이 비교하지 않는다.
R²는 같은 평가 표의 평균 예측보다 얼마나 나은지를 본다
결정계수(R²)는 예측의 제곱 오차 합을 같은 평가 자료의 목표 평균에서 벗어난 제곱합과 비교한 지표다. 식은 R²=1−Σ(y−ŷ)²/Σ(y−ȳ)²이며 ȳ는 이 평가 자료 목표의 평균, Σ는 해당 작업들의 값을 모두 더한다는 뜻이다. 이 공식은 분모가 0이 아닌 경우에 적용한다.
위 실제 시간 2·5·9의 평균은 16/3분이다. 평균 주위 제곱합은 (2−16/3)²+(5−16/3)²+(9−16/3)²=74/3이다. 예측 오차 제곱합이 5이므로 R²=1−5/(74/3)=59/74≈0.797이다. 이는 정의된 점수 계산에 평가 라벨을 사용하는 것이며 그 평균을 예측 모델의 학습값으로 되먹이는 것이 아니다.
평가에서 R²는 음수가 될 수 있다. 예측 오차 합이 이 평균 기준의 오차 합보다 크면 평균으로만 예측한 비교 기준보다 못하기 때문이다. R²가 높다고 원인 설명이 옳거나 개별 작업 오차가 작다는 보장은 없고, 모든 실제 값이 같으면 위 분모가 0이므로 도구의 예외 처리와 실제 값을 함께 보고한다.
평가 작업이 두 건 이상일 때 scikit-learn 1.9의 r2_score는 기본 설정 force_finite=True, 즉 ‘유한한 점수로 바꾸기 켬’에서 상수 목표를 모두 정확히 예측하면 1, 하나라도 틀리면 0을 반환한다. 이 치환을 False로 끄면 전자는 숫자로 정의되지 않았다는 표식 NaN, 후자는 음의 무한대를 나타내는 −Inf로 반환된다. 평가가 한 건뿐이면 이 비교점수를 계산할 수 없어 설정과 관계없이 NaN을 반환한다. 앞 수치 계산에서 본 ‘숫자가 아님’처럼 둘 다 보통의 유한한 점수와 구별할 출력이다(조건수·안정성·오차분석). 이 설정은 계산 결과를 다루는 도구 규칙이지, 분모 0인 비율식 자체가 갑자기 정의된다는 뜻은 아니다.
몇 퍼센트 틀렸는지도 0과 방향의 비용 앞에서 다시 본다
평균 절대 백분율 오차(mean absolute percentage error, MAPE)는 실제값 대비 절대 오차의 비율을 평균한 지표다. 백분율로 표시하면 100×평균(|y−ŷ|/|y|)이다. 실제 시간이 0이면 이 식으로 나눌 수 없고 0에 가까운 실제값에서는 작은 절대 오차도 큰 비율이 된다. 구현이 아주 작은 양수로 대신 나누어 큰 수를 반환하는 처리도 실제 0의 의미를 해결한 것은 아니다.
같은 MAE라도 예정 시간보다 길어져 고객이 기다리는 오차와 짧아져 인력이 남는 오차의 비용이 다를 수 있다. 양쪽을 절댓값으로 합친 지표만 보고 차이를 지우지 말고, 과소·과대 예측 건수와 업무상 큰 지연을 따로 본다.
시간 단위·대상 작업·완료 기록·비교 기간을 고정하고 단순 평균 예측 같은 기준 후보와 새 자료에서 비교한다. 오래 걸린 정상 작업을 점수를 높이기 위해 임의 삭제하거나, 아직 끝나지 않은 작업을 빠르게 끝난 작업으로 넣으면 지표가 좋아져도 업무를 설명하지 못한다.
scikit-learn 1.9의 mean_absolute_percentage_error는 100을 곱하지 않은 상대값을 반환하므로, 반환값 0.2는 0.2%가 아니라 20%로 읽는다.
군집은 안쪽 거리와 다른 묶음까지의 거리를 비교한다
실루엣 계수(silhouette coefficient)는 한 점의 같은 군집 안 평균 거리 a와 가장 가까운 다른 군집까지의 평균 거리 b를 (b−a)/max(a,b)로 비교한 값이다. a를 구할 때 자기 자신은 제외하며 b는 다른 군집 각각에 대해 그 군집의 모든 점까지 평균 거리를 구한 뒤 가장 작은 값을 택한다. 보통 1에 가까울수록 안쪽은 가깝고 바깥은 멀다는 뜻이며 0 부근은 경계가 가깝고 음수는 다른 군집 쪽이 더 가까울 수 있음을 뜻한다.
앞의 {1,2}, {8,9}에서 점 1은 a=1이고 다른 군집까지 b=(7+8)/2=7.5다. 실루엣은 (7.5−1)/7.5=13/15≈0.867이다. 점 2는 a=1, b=(6+7)/2=6.5이므로 11/13≈0.846이며 점 8·9도 대칭이다. 전체 평균은 (13/15+11/13)/2=167/195≈0.856이다.
이 계산은 비어 있지 않은 군집이 적어도 두 개이고, 각 예제 군집에 두 점이 있다는 조건이다. scikit-learn의 전체 점수는 군집 수가 2 이상·표본 수보다 작아야 정의되며, 혼자 있는 군집의 개별 점수는 0으로 처리한다. 모든 점을 각자 군집으로 나누어 k-평균 제곱합이 0이 되어도 이 점수까지 완벽해지는 것은 아니다.
실루엣은 사용한 거리와 볼록하게 모인 묶음에 유리한 성질이 있다. DBSCAN으로 얻은 길게 굽은 집단이나 잡음 처리까지 한 수치로 단정하지 않고, 군집 크기·안정성·업무 의미·제외 건수와 함께 읽는다.
지표의 수치를 운영의 결정으로 바꾸는 마지막 순서
| 목적 | 수치로 확인할 것 | 함께 남길 적용 경계 |
|---|---|---|
| 취소 분류 | 네 칸·정밀도·재현율·ROC/PR·확률 수준 | 7일 관찰·시간 분할·기준값·상담 한도·오류 비용 |
| 포장 시간 회귀 | MAE/RMSE·R²·방향별 오차 | 완료 작업·분 단위·범위 밖 입력·긴 지연 비용 |
| 고객 군집 | 안팎 거리·크기·재현성 | 기준일·척도·군집 수·잡음·해석 가능한 업무 차이 |
| 동시 구매 | 지지도·신뢰도·향상도와 건수 | 거래 단위·기간·행사·인과 주장 제외 |
| 이상 확인 | 검토 수·확인된 적중·놓친 사례의 조사 | 점수 방향·확인 지연·미경보 표본·자동 차단 제한 |
검증으로 방법·설정·변환·보정·임계값을 고른 뒤, 고정한 전체 경로를 마지막 시험으로 확인한다. 운영에서는 실제 이용 가능한 입력과 같은 변환을 적용하고 나중에 완결된 라벨·확인 결과로 다시 본다. 그 사이 고객·행사·특징 의미·비용이 바뀌면 기준도 재검토하되, 본 시험을 반복해서 고른 결과를 계속 독립 평가라고 부르지 않는다.
출력은 업무 결정을 돕는 근거다. 좋은 군집 번호가 좋은 고객을 확정하거나, 높은 연관도가 할인 효과를 증명하거나, 이상 점수가 부정행위를 확정하지 않는다. 설명 가능한 계산과 정직한 경계를 함께 제시해야 기법 이름이 실제 기술사 논점으로 바뀐다.
공식 범위에 연결하기: 기법·평가·통제를 한 판단 경로로 묶는다
이 절은 공식 ‘정형 데이터마이닝’ 범위의 기법 적용과 평가 판단을 지원한다. 전체 준비·학습 과정은 앞 절 정형 데이터 준비·특징·학습에서 읽고, 여기서는 그 정보 경계 안에서 각 기법을 적용하고 평가한다.
- 질문을 나눈다. 범주·수량·묶음·동시 출현·드문 정도 중 무엇을 얻을지, 라벨과 관측 단위가 무엇인지 고정한다.
- 작동원리를 제시한다. 계수의 가중합·분기·이웃 투표, 중심 갱신·밀도 연결, 빈발 패턴·고립 경로를 목적에 맞게 설명한다.
- 같은 분모로 평가한다. 분류 네 칸·회귀 오차 단위·군집 거리·규칙 건수와 실제 확인된 결과를 사용한다.
- 결정 조건을 정한다. 임계값·보정·처리 능력·오류 비용을 검증에서 선택하고 마지막 시험에서 전체 경로를 확인한다.
- 실패와 과잉 해석을 막는다. 시간 누수·미완결 라벨·척도·희귀 사례·범위 밖 적용·인과 오해와 운영 변화를 통제한다.
10점 문제: 분류 지표를 실제 조치의 비용으로 연결한다
이진 분류의 정밀도·재현율·F1을 설명하고, 취소 예측의 임계값 변경이 오류 비용과 업무 처리량에 미치는 영향을 제시하시오.
이 문제는 지표 세 개의 공식을 나열하는 데서 끝나지 않는다. 양성·음성을 먼저 정하고, 분모가 다른 지표를 네 칸과 연결하며, 같은 점수에서 기준만 바꾼 효과를 실제 건수와 비용으로 설명해야 한다. 다음은 자체 작성 예상문제의 학습용 답안이며 실제 기출 원문이나 채점자가 검증한 만점 답안은 아니다.
분류 지표·오류 비용 풀이 보기
10점 답안 목차
- 대상·정답·네 칸: 취소=양성, 7일 관찰 완료, TP·FP·FN·TN과 전체 8건.
- 세 지표의 분모: 정밀도 TP/(TP+FP), 재현율 TP/(TP+FN), F1=2TP/(2TP+FP+FN).
- 동일 점수의 기준 변경: 0.5→0.3에서 TP/FP/FN/TN과 검토량·지표 변화.
- 비용과 검증 경계: FP 1·FN 5단위의 비용 비교, 처리 능력, 검증 선택 후 시험 고정.
10점 답안 도식
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
실제 라벨은 관찰이 완결됐고 두 경로의 점수는 같다. p≥0.5와 p≥0.3의 별도 비교 결과를 합산하지 않는다. FP 1·FN 5단위와 올바른 판단 비용 0의 설명용 가정이다. 비용이 작은 기준도 처리 한도와 검증 경계를 확인해야 한다.
비용은 FP 1단위·FN 5단위, 올바른 판단 비용 0인 설명용 가정이다. 도식은 모델을 다시 학습한 결과가 아니라 같은 점수에서 두 기준을 비교한다.
10점 모범답안
1. 대상·정답·네 칸. 취소를 양성으로 정하고 확정 후 7×24시간의 관찰·기록 완전성을 확인한 주문만 평가한다. TP는 실제 취소를 찾은 건수, FP는 미취소를 취소 후보로 고른 건수, FN은 취소를 놓친 건수, TN은 미취소를 맞힌 건수다. 가상 8건의 0.5 기준에서 TP=2·FP=2·FN=1·TN=3이다.
2. 세 지표의 분모. 정밀도는 양성 예측 중 맞힌 비율 TP/(TP+FP)=2/4, 재현율은 실제 양성 중 찾은 비율 TP/(TP+FN)=2/3이다. F1은 두 지표의 조화평균이며 2TP/(2TP+FP+FN)=4/7이다. F1은 TN·금전 비용을 직접 반영하지 않으며 분모가 0인 경우를 임의의 완벽한 점수로 바꾸지 않는다.
3. 동일 점수의 기준 변경. 같은 8건에서 p≥0.3으로 낮추면 TP=3·FP=3·FN=0·TN=2이고 검토량은 4→6건이다. 정확도는 둘 다 5/8, 정밀도는 1/2로 같고 재현율은 2/3→1, F1은 4/7→6/9로 바뀐다. 기준을 낮추면 선택 대상은 넓어지지만 정밀도가 언제나 일정 방향으로 변하는 것은 아니다.
4. 비용과 검증 경계. FP 1·FN 5단위, 올바른 판단 비용 0을 가정하면 두 기준의 오류 비용은 각각 7과 3이다. 0.3은 두 기준 비교에서 비용이 작지만 6건의 처리 능력과 실제 비용 가정을 확인해야 하며 전체 임계값 중 최적이라는 뜻은 아니다. 방법·보정·기준은 검증에서 선택하고 고정한 전체 절차를 마지막 시험으로 확인한다.
25점 문제: 이름이 아니라 원리·지표·업무 경계를 설계한다
문구점의 주문 취소 예측, 포장 시간 예측, 고객 집단 분석, 동시 구매 분석과 이상 주문 확인에 적합한 정형 데이터마이닝 기법을 비교하고, 작동원리·평가지표·실패 통제를 포함한 적용 방안을 설명하시오.
질문별 관측 단위와 답의 모양을 나눈 뒤 대표 원리를 제시한다. 이어 각 원리에 맞는 지표와 잘못된 해석·운영 조건을 묶는다. 모든 알고리즘을 한 답안에 길게 복사하기보다 본문에서 배운 대표 방법을 골라 구체적인 처리 경로와 비교 이유를 제시하는 자체 작성 예상문제다.
다섯 업무 질문의 기법 선택 풀이 보기
25점 답안 목차
- 목표·자료 계약: 분류·회귀·군집·연관·이상탐지의 답, 관측 단위·라벨·예측 시점.
- 지도 예측 원리와 선택: 선형식·이진 로지스틱, 나무의 불순도 분기, k-NN의 거리·투표와 한계.
- 군집의 원리와 검증: k-평균 배정·평균, 계층 병합·밀도 연결의 비교, 실루엣·안정성·업무 의미.
- 연관규칙의 원리와 경계: 거래 포함, 지지도·신뢰도·향상도, Apriori·FP-growth, 인과·희귀 건수 주의.
- 이상탐지의 원리와 확인: LOF의 이웃 상대 밀도와 Isolation Forest의 고립 경로, 점수 방향·미확인 사례.
- 목표별 지표와 기준: 분류 네 칸·ROC/PR·보정·오류 비용, 회귀 MAE/RMSE·R²·0 분모.
- 독립 검증과 운영 통제: 시간·라벨 완결·학습 안 변환, 검증 선택→시험, 단위·비용·처리량·변화 재점검.
25점 답안 도식
앞의 목표 유무 갈림길에서 업무 질문·한 단위·정답의 유무를 먼저 고정한다. 각 목적은 다음 계산과 평가를 연결한다.
| 얻을 답 | 대표 계산 원리 | 평가·확인 범위 |
|---|---|---|
| 범주·수량 | 가중합·분기·이웃 | 분류 네 칸 / 회귀 오차 |
| 고객 묶음 | 중심·병합·밀도 | 분리·안정성·업무 의미 |
| 동시 구매 | 빈발 항목·규칙 | 건수·지지도·신뢰도·향상도 |
| 이상 확인 | 상대 밀도·고립 | 확인 결과·검토량·미경보 점검 |
FP-growth의 공통 앞 경로는 앞의 실제 트리 그림을 사용한다. 같은 정보 경계에서 검증으로 선택→고정한 전체 절차를 마지막 시험→같은 입력 의미·비용·용량으로 운영하고 변화 재검토를 연결한다.
본문의 선택·평가·운영 흐름을 자체 작성한 요약 도식이다.
25점 모범답안
1. 목표·자료 계약. 취소는 주문 확정 직후의 특징으로 이후 7일의 범주를 예측하는 분류이고, 포장 시간은 시작한 작업의 완료까지 분 수를 예측하는 회귀다. 고객 군집은 고객별 같은 기간의 특징을 라벨 없이 묶으며, 연관 분석은 완료 구매 안의 상품 동시 포함을 센다. 이상탐지는 정한 정상·주변 패턴에서 어긋난 주문을 확인 대상으로 삼는다. 각 단위·기간·라벨의 완결과 당시 이용 가능한 정보를 먼저 고정한다.
2. 지도 예측 원리와 선택. 선형 회귀는 계수·절편의 가중합으로 수량을 내고 보통최소제곱법은 동일 비중의 제곱 오차 합을 줄인다. 이진 로지스틱은 가중합을 시그모이드로 바꾸고 로그 손실로 확률 출력을 학습한다. 나무는 자료를 나눈 뒤 불순도나 회귀 손실이 줄어드는 분기를 반복하며 깊이·리프 사례 수를 제한한다. k-NN은 같은 척도의 가까운 학습 사례를 찾아 분류 투표·회귀 평균을 낸다. 표현하지 못하는 관계·외삽, 깊은 나무의 과대적합, 거리의 단위·검색 비용을 비교한다.
3. 군집의 원리와 검증. k-평균은 가까운 중심에 배정하고 평균 중심을 갱신한다. 구매 횟수 1·2·8·9에서 k=2이면 1.5·8.5 중심의 제곱합 1을 얻지만 k를 늘려 제곱합만 줄이는 것으로 정답을 고르지 않는다. 응집형은 연결 기준으로 가까운 군집을 합치고 DBSCAN은 ε·자기 포함 최소 이웃 수의 핵심점을 이어 경계점을 붙이며 잡음을 남긴다. 실루엣의 안팎 거리, 군집 크기·시작점/기간 안정성·업무 차이를 함께 확인한다.
4. 연관규칙의 원리와 경계. 같은 구매에서 공책 5/10·펜 4/10·동시 포함 3/10이면 공책⇒펜의 지지도 0.3, 신뢰도 0.6, 향상도 1.5다. Apriori는 빈발하지 않은 부분집합을 가진 큰 후보를 제거하며 세고, FP-growth는 공통 경로를 압축하고 항목별 조건부 경로에서 빈발 패턴을 찾는다. 규칙의 방향은 조건부 비율이지 시간·인과가 아니며, 작은 건수·행사·다중 후보 선택의 영향을 검토한다.
5. 이상탐지의 원리와 확인. LOF는 도달가능거리로 구한 자기 밀도를 이웃 밀도와 비교하고, Isolation Forest는 무작위 분할의 여러 나무에서 적은 경로로 고립되는 점을 찾는다. 정상 기준 자료로 새 관측을 보는 신규성 탐지와 오염 가능 자료의 이상치 탐지를 구별한다. 점수의 부호·경계·이웃 수·확인 지연을 기록하며 이상 점수를 사기 확률로 부르거나 미확인 사례를 정상 라벨로 채우지 않는다.
6. 목표별 지표와 기준. 분류는 양성을 취소로 정하고 TP·FP·FN·TN으로 정밀도·재현율·F1을 계산한다. ROC-AUC·AP는 순위 요약이고 실제 임계값의 비용이나 확률 보정을 대신하지 않는다. 8건에서 기준 0.5→0.3은 검토량 4→6건, FP 1·FN 5단위 가정의 오류 비용 7→3을 만들므로 처리 한도와 비용 근거를 함께 본다. 회귀는 MAE·RMSE의 원래 단위와 R²의 비교 분모를 확인하고 실제 0의 백분율 오차, 과소·과대 예측의 다른 비용을 분리한다.
7. 독립 검증과 운영 통제. 학습 안에서 결측·표현·척도를 정하고 적용 목적의 시간·그룹 경계와 7일 라벨 완결을 지킨다. 방법·설정·보정·임계값을 검증으로 정한 뒤 마지막 시험으로 전체 경로를 확인한다. 운영에서도 같은 입력 의미·변환을 유지하고 집단별 오류·확인되지 않은 사례·처리량·비용과 시기 변화를 재검토한다. 예측 성능·연관·군집·이상 점수를 원인이나 개입 효과의 증명으로 확대하지 않는다.
다시 읽을 때 남길 연결
- 답이 범주인지 수량인지, 라벨 없이 묶음·규칙·어긋남을 찾는지 먼저 정한다.
- 가중합·분기·거리·중심·빈발 경로·고립이라는 실제 계산을 특징의 뜻과 연결한다.
- 분류 지표의 분모·회귀 오차의 단위·오류 비용과 처리 능력을 나누어 읽고 임계값은 검증한다.
- 좋은 점수는 미완결 라벨·누수·인과 오해를 지우지 못하며 같은 의미의 전체 경로를 새 자료에서 확인해야 한다.
근거와 현행성의 범위
이 절은 scikit-learn 1.9 경로의 공식 문서에서 선형모형·나무·이웃·군집·이상탐지·평가 경계를 확인하고, Google 공식 학습 문서의 이진 분류 설명, Oracle Database 19c 공식 Data Mining Concepts의 연관 분석과 알고리즘 원저자 문헌을 대조한다. 이번 재확인일은 2026-10-06이며 scikit-learn 문서는 1.9.1로 표시된다. 공개일·최종 수정일·관찰일을 같은 날짜로 바꾸지 않는다.
- scikit-learn 선형모형, 나무, 이웃
- 군집, DBSCAN API의 자기 포함 조건, 이상탐지
- 분류 임계값, 평가지표, 확률 보정
- Google 이진 분류 지표, Oracle 연관규칙, Oracle Apriori
- Han·Pei·Yin·Mao(2004), Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach; 2000년 발표본과 구별한 확장 저널 문헌.
- Breunig·Kriegel·Ng·Sander(2000), LOF: Identifying Density-Based Local Outliers; 이웃·거리·밀도 식은 보존 PDF의 물리 3~4쪽을 대조했다.
Google for Developers의 설명은 CC BY 4.0 등 표시 조건과 예외를, scikit-learn은 1.9.0 BSD 조건을 확인했다. 이 교재의 한국어 설명·숫자·그림은 독립 작성이며, 이 확인이 제3자 그림이나 표식의 재사용 허가를 뜻하지 않는다.
모든 작은 데이터 표·식의 적용 예·답안 도식은 이 원고를 위해 새로 작성했다. 공식 문서의 그림·예제 데이터를 복제하지 않으며, 원문 보존과 인용·재배포의 권리는 구별한다. 원문의 판본·설정과 적용 조건을 함께 읽는다. 작은 가상 자료의 계산 일치는 실제 고객 성능이나 독립 검증의 완료를 뜻하지 않는다.
연습: 숫자가 바뀐 것과 결정이 바뀐 것을 구별하기
- 별도 검증 주문 A·B·C·D의 점수는
0.8,0.7,0.7,0.2, 관찰 완료 라벨은1,0,1,0이다. 같은 점수까지 포함하는p≥t만 사용하며 검토 한도는 최대 2건이다. t=0.7과 t=0.8의 선택 대상·TP·FP·FN·TN을 구하라. 어떤 단일 임계값으로 정확히 2건을 고를 수 있는지, 동점인 B·C 중 실제 취소인 C를 골라 채우는 방법이 정당한지도 설명하라. - 본문 회귀 평가의 실제
2,5,9분과 예측3,5,7분을 모두 초로 바꾸었다. 같은 세 작업·같은 예측이며 새 학습을 하지 않는다. MAE·MSE·RMSE의 새 값과 단위를 구하고, R²가 바뀌는지도 판단하라. 초 단위 MSE가 분 단위 MSE보다 커졌다는 이유로 예측이 악화되었다고 할 수 있을까? - 고객 C11·C12·C13·C14의 구매 횟수는
1,2,8,9다. 첫 실행의 군집 번호는 순서대로0,0,1,1, 다른 실행은1,1,0,0이다. 각 실행의 같은 번호 고객 집합과 중심을 적어라. 번호가 네 개 모두 달라졌다는 사실만으로 고객 네 명의 묶임이 달라졌다고 보고해도 되는지 설명하라.
동점·단위·군집 식별자의 조건부 풀이
- t=0.7은 A·B·C를 골라
TP=2, FP=1, FN=0, TN=1이며 검토 3건으로 한도를 넘는다. t=0.8은 A만 골라TP=1, FP=0, FN=1, TN=2이며 한도 안이다. B·C는 같은 0.7이므로 이 임계값 규칙으로 둘 중 하나만 넣을 수 없다. 가능한 선택 건수는 0·1·3·4여서 정확히 2건인 임계값은 없다. 실제 라벨을 보고 C만 추가하면 새 주문에는 아직 없는 답을 선택에 사용한 것이다. 두 건을 채우는 별도 정책이 필요하다면, 당시 이용 가능한 정보에 따른 순위·동점 규칙을 먼저 정하고 그 정책 자체를 검증해야 한다. - 실제는
[120,300,540]초, 예측은[180,300,420]초이므로 절대 오차는[60,0,120]초다. MAE는180÷3=60초, 제곱 오차 합은3600+0+14400=18000초²여서 MSE는6000초², RMSE는√6000≈77.46초다. 이는 기존 MAE·RMSE의 60배, MSE의 60²배다. R²의 분자와 분모가 모두 60²배이므로 비율은 같고59/74≈0.797을 유지한다. 단위를 바꾼 수치의 크기만으로 같은 예측이 나빠졌다고 할 수 없다. - 첫 실행은 군집 0이
{C11,C12}·중심 1.5, 군집 1이{C13,C14}·중심 8.5다. 다른 실행은 군집 1이{C11,C12}·중심 1.5, 군집 0이{C13,C14}·중심 8.5다. 번호만 교환되었고 함께 묶인 고객과 중심은 같다. 군집 번호는 범주의 등급이나 영구 고객 속성이 아니므로, 실행 사이 결과를 비교할 때 번호 자체 대신 구성원·특징·중심을 대응시켜 읽는다.