본문 바로가기

정형 데이터 준비·특징·학습

문구점은 주문이 취소되면 포장 준비와 재고 배정이 헛일이 된다고 보았다. 주문이 확정되는 순간에 앞으로 7일 안에 취소될 가능성을 살펴, 안내가 필요한 주문을 먼저 확인하려 한다. 여기서 컴퓨터가 할 일은 취소를 이미 기록한 표에서 취소 주문을 찾는 것이 아니다. 아직 결과를 모르는 주문을, 그 순간까지 알 수 있던…

좋은 점수보다 먼저, 무엇을 언제 맞히려는지 정한다

문구점은 주문이 취소되면 포장 준비와 재고 배정이 헛일이 된다고 보았다. 주문이 확정되는 순간에 앞으로 7일 안에 취소될 가능성을 살펴, 안내가 필요한 주문을 먼저 확인하려 한다. 여기서 컴퓨터가 할 일은 취소를 이미 기록한 표에서 취소 주문을 찾는 것이 아니다. 아직 결과를 모르는 주문을, 그 순간까지 알 수 있던 정보로 판단하는 일이다.

지난 주문을 무작정 섞고 최종 취소 상태까지 입력하면 높은 점수를 얻기 쉽다. 하지만 실제 새 주문에는 그 답이 아직 없으므로 쓸 수 없는 결과다. 이 절은 한 행의 뜻과 시간 → 사용할 정보 → 자료 분리 → 변환과 학습 → 독립 평가를 같은 사례로 연결한다. 숫자는 설명용으로 만든 것이며 실제 고객 자료나 실험 결과가 아니다.

앞의 데이터·메타데이터는 값과 그 값의 뜻·단위·시각을 함께 읽게 했고, 자료형은 가능한 값과 연산을 구분했다(데이터·정보·메타데이터·모델, 값·변수·자료형·연산). 모집단은 알고 싶은 전체이고 표본은 관찰한 일부였으므로, 과거 주문의 성질을 앞으로의 모든 주문에 그대로 일반화할 수는 없다(평균·분산·표본·추정). 이제 이 기초를 사용해 어떤 과거 주문과 어떤 값을 학습에 쓸지 정한다.

1. 데이터에서 쓸 수 있는 규칙을 찾되, 새 자료로 확인한다

데이터마이닝(data mining)은 정한 목적에 따라 데이터에서 반복되는 관계나 패턴을 찾고, 그것이 설명·예측·판단에 쓸 만한지 검증하는 과정이다. 이미 정한 조건으로 자료를 조회하는 일보다 범위가 넓다. 취소가 잦은 주문의 특성을 찾았더라도 우연히 그럴듯한 관계인지, 나중 주문에도 통하는지 확인해야 한다.

정형 데이터는 행·열과 각 항목의 의미·자료형 같은 구조를 미리 정해 기록한 데이터다. 주문번호, 확정 시각, 금액, 취소 여부를 일정한 열로 기록한 표가 예다. 표 모양이라는 사실만으로 값이 정확하거나 학습에 적합한 것은 아니다.

이 절은 정형 자료를 문제에 맞게 준비하고 학습·평가하는 공통 과정을 담당한다. 예측뿐 아니라 비슷한 대상을 묶거나 함께 나타나는 항목을 찾는 목적도 있지만, 개별 기법의 상세 원리와 지표 선택은 다음 절에서 다룬다. 통계적 추정·가설검정의 정식 이론을 다시 정의하지 않는다.

전체 과정에서 평가 자료는 답을 고르는 재료가 아니다

다음 그림의 학습·검증·시험 구분은 자료가 이동하는 길뿐 아니라 어느 자료로 규칙을 정할 수 있는가를 표시한다.

자료의 역할은 사용할 수 있는 결정으로 구분한다

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

자료의 역할은 사용할 수 있는 결정으로 구분한다학습은 변환과 모델을 맞추고 검증은 후보를 고른다. 시험은 이미 고정한 절차를 평가하며 그 답을 후보 선택으로 되돌려 쓰지 않는다. 아래 적용 선은 미리 정한 수용 조건을 통과한 경우다. 실패한 시험 뒤 수정과 새 독립 평가가 필요하다는 본문의 조건도 함께 읽는다.contract → records: 정보 시점records → train: 학습records → validation: 검증records → test: 시험train → validation: 비교validation → test: 고정test → apply: 통과 뒤정보 시점학습검증시험비교고정통과 뒤개발 자료최종 평가업무 결정·예측 시점업무 결정·예측시점시점에 맞춘 과거 기록시점에 맞춘 과거기록학습 부분: 변환·모델 적합학습 부분변환·모델 적합검증 부분: 후보 비교·선택검증 부분후보 비교·선택시험 부분: 고정한 절차 평가시험 부분고정한 절차 평가새 주문의 판단: 고정한 전체 규칙 적용새 주문의 판단고정한 전체 규칙 적용
자료의 역할은 사용할 수 있는 결정으로 구분한다학습은 변환과 모델을 맞추고 검증은 후보를 고른다. 시험은 이미 고정한 절차를 평가하며 그 답을 후보 선택으로 되돌려 쓰지 않는다. 아래 적용 선은 미리 정한 수용 조건을 통과한 경우다. 실패한 시험 뒤 수정과 새 독립 평가가 필요하다는 본문의 조건도 함께 읽는다.contract → records: 정보 시점records → train: 학습records → validation: 검증records → test: 시험train → validation: 비교validation → test: 고정test → apply: 통과 뒤정보 시점학습검증시험비교고정통과 뒤개발 자료최종 평가업무 결정·예측 시점업무 결정·예측 시점시점에 맞춘 과거 기록시점에 맞춘과거 기록학습 부분: 변환·모델 적합학습 부분변환·모델 적합검증 부분: 후보 비교·선택검증 부분후보 비교·선택시험 부분: 고정한 절차 평가시험 부분고정한 절차 평가새 주문의 판단: 고정한 전체 규칙 적용새 주문의 판단고정한 전체 규칙적용

학습은 변환과 모델을 맞추고 검증은 후보를 고른다. 시험은 이미 고정한 절차를 평가하며 그 답을 후보 선택으로 되돌려 쓰지 않는다. 아래 적용 선은 미리 정한 수용 조건을 통과한 경우다. 실패한 시험 뒤 수정과 새 독립 평가가 필요하다는 본문의 조건도 함께 읽는다.

검증 점수를 보고 후보를 바꾸는 일은 가능하지만, 시험 결과를 보고 계속 고르면 시험 부분도 선택 자료가 된다. 학습·검증·시험의 정확한 역할은 뒤에서 구분한다. 한 번의 자료 분리는 대표성·시간·중복 문제까지 자동으로 해결하지 않는다.

한 행은 주문 하나이고, 판단 시각은 확정 직후다

관측 단위는 자료의 한 행이 표현하는 대상이나 사건의 단위다. 이 사례는 상품 한 개나 고객 한 명이 아니라 확정 주문 한 건을 한 행으로 한다. 한 주문에 연필과 공책이 들어 있어도 취소 판단은 주문 단위이므로 두 학습 행으로 늘리지 않는다.

예측 시점은 새 대상에 대해 결과를 내야 하며 입력 정보의 이용 가능성을 판단하는 기준 시각이다. 여기서는 주문 확정 직후다. 이후 7×24시간 안에 취소된 주문을 찾는 것이 과제이며, 확인 담당자는 예측을 참고해 안내 순서를 정한다.

정할 항목이 사례의 계약
적용 대상확정 시점에 정상 접수된 배송 주문
한 행주문 한 건
입력 시간 경계확정 직후까지 시스템이 실제 이용할 수 있던 값
예측할 결과확정 후 7×24시간 안에 취소되었는지
업무 활용안내 순서의 참고 자료; 자동 취소·거절의 근거로 사용하지 않음

취소 가능성을 잘 맞힌다는 사실만으로 안내가 취소를 줄인다고 결론 내릴 수는 없다. 예측 결과와 개입의 효과는 다른 질문이다. 무엇을 할지 먼저 정해야 잘못된 대리 목표를 빠르게 맞히는 일을 피할 수 있다.

입력할 값과 나중에 확인할 답을 나눈다

특징(feature)은 대상의 상태나 성질을 학습·예측에 사용할 수 있게 표현한 입력 항목이다. 확정 금액과 그 고객의 직전 90일 확정 주문 수를 후보로 삼을 수 있다. 금액은 원 단위인지 만 원 단위인지까지 정해야 한다.

목표변수(target)는 예측하려는 결과 항목이다. 이 사례의 목표변수는 ‘7일 안의 취소 여부’다. 라벨(label)은 과거 대상에 대해 정한 판정 규칙으로 확인하여 붙인 목표변수의 실제 값이다. 취소된 주문에 1, 관찰 기간을 끝까지 확인했지만 취소되지 않은 주문에 0을 붙인다.

주문확정 금액(만 원)직전 90일 주문 수나중에 확인한 라벨
A01100
A02301
A03미기록20
A04521

표의 네 행은 뒤 계산을 위한 작은 학습 부분이다. 주문번호는 행을 대조하는 식별자이며 여기서는 예측 입력으로 사용하지 않는다. 라벨 열은 과거 학습의 답으로 사용하지만 새 주문을 판단할 때 특징에 넣지 않는다.

아직 7일이 지나지 않은 주문은 ‘취소 안 됨’이 아니다

오늘까지 취소되지 않았다는 사실과 7일 동안 취소되지 않았다는 사실은 다르다. 예를 들어 6월 1일 10시에 확정한 주문을 6월 3일 10시에 모았다면, 아직 남은 5일의 결과를 알 수 없다. 이를 곧바로 라벨 0으로 넣으면 관찰이 덜 끝난 주문을 성공 사례처럼 가르친다.

라벨 관찰 기간은 목표 값을 판정하기 위해 결과를 확인하는 시간 범위다. 이 사례에서는 확정 시각 다음부터 7×24시간이 끝날 때까지다. 완전한 기록을 확보한 범위에서 취소가 있으면 1, 기간이 끝났고 취소가 없으면 0이며, 기록이 끊겼거나 기간이 덜 지났으면 판정 보류다.

나중에 들어온 취소 기록의 실제 발생 시각과 시스템에 도착한 시각도 구분한다. 자료 수집 기준일과 기록 완전성을 확인한 뒤 라벨을 확정하고, 아직 모르는 값은 0으로 채우지 않는다. 취소 사유가 바뀌거나 취소 상태가 잘못 입력되면 라벨 자체의 품질을 먼저 검토한다.

기록된 값이 아니라 그때 알 수 있던 값을 쓴다

확정 당시 금액은 사용할 수 있지만 최종 취소 사유는 그때 알 수 없다. 고객의 누적 주문 수도 오늘까지의 전체 합계가 아니라 해당 주문의 예측 시점 직전까지 실제 알 수 있던 기록으로 계산한다. 현재 주문은 과거 90일 주문 수에 다시 더하지 않는다.

특징 후보예측 시점의 이용 가능성판단
확정 금액확정 직후 이미 확정됨사용 후보
직전 90일 확정 주문 수그때 도착한 과거 주문만 집계사용 후보
이번 주문의 최종 취소 사유취소 뒤에 생김입력에서 제외
나중에 수정한 고객 등급확정 당시 값과 다를 수 있음당시 버전·이용 가능 시각 확인

사건이 먼저 발생했더라도 시스템에 늦게 도착했다면 예측 당시에는 이용할 수 없었을 수 있다. 따라서 발생 시각만 과거라는 이유로 사용하지 않고 실제 접근 가능한 시점까지 확인한다. 과거의 입력을 재현할 수 없으면 그 특징을 빼거나 과거 버전을 확보하는 방법부터 정한다.

표를 합치며 같은 주문을 여러 번 배우지 않는다

주문 A01에 항목이 세 줄이라면 주문 표와 항목 표를 그대로 연결했을 때 세 행이 나올 수 있다. 한 행을 주문으로 정해 놓고 이 결과를 그대로 학습하면 A01을 다른 주문보다 세 배 많이 반영할 수 있다. 동일 주문의 일부 줄이 학습에, 나머지가 시험에 들어가면 이미 본 대상을 새 대상처럼 평가하는 문제도 생긴다.

먼저 항목 수·합계 같은 주문 단위 특징을 정의하고, 예측 시점까지 알 수 있는 항목을 주문별로 모아 한 행으로 만든다. 연결 전후에 주문번호의 개수와 행 수, 금액 합계, 빠진 주문과 중복 주문을 대조한다. 자료를 나눈 뒤에도 주문 식별자가 다른 부분에 겹치지 않는지 확인한다.

식별자를 특징에서 지우는 것만으로 중복이 사라지는 것은 아니다. 같은 사건의 복제 행, 같은 고객의 반복 주문처럼 서로 관련된 기록이 남을 수 있으므로 다음 분리 기준에서 그 관계도 검토한다.

2. 배우는 자료, 고르는 자료, 마지막으로 확인할 자료

학습 데이터는 결측값을 채우거나 입력을 바꿀 때 배울 통계와 예측 규칙의 값을 정하는 데 쓰는 자료다. 앞 표의 금액을 어떤 값으로 채울지, 입력과 취소 사이에서 어떤 규칙을 얻을지 정하는 데 사용한다.

검증 데이터는 학습한 후보의 성능을 비교하고 특징·설정·후보를 고르는 데 쓰는 자료다. 같은 학습 자료로 만든 두 후보 가운데 어느 쪽을 선택할지 판단할 수 있다. 시험 데이터는 선택에 쓰지 않고 따로 남겨, 정해진 최종 절차를 새 자료에 적용했을 때의 성능을 평가하는 자료다. 여기서 시험은 기술사 시험 문제가 아니라 분석 절차의 최종 평가를 뜻한다.

부분할 수 있는 일하면 평가가 흐려지는 일
학습결측 대치값·변환 통계·예측 규칙 결정자기 점수만으로 새 주문 성능 보장
검증후보·특징·설정 비교와 선택여러 번 고른 최댓값을 독립 성능처럼 보고
시험고정한 후보의 마지막 평가결과를 보고 후보를 계속 수정

세 부분의 비율에는 모든 업무에 맞는 고정 정답이 없다. 전체 건수뿐 아니라 취소 사례 수, 시간 변화, 반복 고객과 실제 적용 대상을 보아야 한다. 중요한 것은 ‘세 이름이 있다’가 아니라 자료마다 허용한 의사결정이 실제로 분리되는 것이다.

미래 주문과 처음 보는 고객은 서로 다른 시험이다

같은 고객의 예전 주문이 학습에 있고 나중 주문이 시험에 있는 상황은 그 자체로 항상 잘못은 아니다. 실제 서비스가 기존 고객의 다음 주문을 판단한다면 그 과거 이력을 이용할 수 있다. 반대로 처음 보는 고객에게 통할지를 묻는 시험에서 같은 고객이 양쪽에 들어가면 질문에 맞지 않는다.

그룹 분할은 같은 고객처럼 묶어야 할 단위가 서로 다른 자료 부분에 걸치지 않게 나누는 방법이다. 시간 분할은 앞 시점의 자료로 준비하고 뒤 시점의 자료로 평가하도록 시간 순서를 지켜 나누는 방법이다. 두 조건이 모두 필요한 문제라면 한 방법의 이름만 선택하지 않고 함께 만족하는 분리 계획을 만든다.

실제로 답할 질문분리에서 우선 지킬 조건
독립적으로 뽑힌 같은 조건의 새 주문에 통하는가관련 기록·중복이 없는지 먼저 확인한 무작위 분할
기존 고객을 포함한 미래 주문에 통하는가과거→미래 시간 순서와 당시 이용 가능 정보
처음 보는 고객에게 통하는가고객 단위 그룹 분리
미래의 처음 보는 고객에게 통하는가시간 경계와 고객 비중복을 함께 적용

scikit-learn은 Python에서 데이터 변환·학습·평가를 지원하는 라이브러리다. 이 라이브러리의 GroupKFold는 그룹을 나누지만 시간 순서를 자동으로 보장하지 않는다. TimeSeriesSplit은 시간 순서를 따르는 분할 도구지만 주문 시각의 불규칙 간격이나 라벨의 미래 관찰 기간을 스스로 이해하지 않는다. 도구 이름보다 자료의 행 순서·단위·관찰 기간을 먼저 확인한다.

7일 뒤 답을 알아야 하므로 학습 종료와 평가 시작 사이를 비운다

미래 주문에 적용할 절차를 2026년 4월 1일에 준비한다고 가정하자. 3월 31일까지 발생한 주문을 모두 학습에 쓰면 일부 주문의 7일 결과는 4월에도 계속 관찰해야 한다. 그 결과를 미리 알아야만 만들 수 있는 모델로 4월 1일을 예측하면 시간 순서가 뒤집힌다.

역할예측 대상 주문의 확정일결과 기록의 확보 시점
초기 학습1월 1일~3월 24일3월 31일까지 7일 관찰 완료
후보 검증4월 1일~4월 23일4월 30일까지 7일 관찰 완료
마지막 시험5월 1일~5월 24일5월 31일까지 7일 관찰 완료

날짜 표는 각 날의 주문이 가진 실제 시각에도 7×24시간을 적용하고, 기록이 늦게 도착하지 않았음을 확인한다는 가정이다. 학습과 검증에서 후보를 정한 뒤 5월 1일 전에 이용 가능했던 자료로 최종 절차를 고정한다. 시험 결과는 5월의 관찰이 끝난 뒤 확인하며 후보 선택에 되먹이지 않는다.

이 표의 빈 날짜를 모든 문제에 그대로 복사하지 않는다. 목표를 30일 뒤 결과로 바꾸거나 기록 도착이 지연되면 필요한 간격도 달라진다. scikit-learn의 시간 분할에서 gap은 날짜 수가 아니라 학습 끝에서 제외할 행 수이므로, 불규칙 주문 자료에 ‘7’을 넣었다고 7일이 확보되는 것은 아니다.

평균은 관찰한 값을 더해 개수로 나눈 대푯값이었고, 분산과 표준편차는 값들이 평균 주위에 얼마나 퍼져 있는지 나타냈다(평균·분산·표본·추정). 이제 평균을 새로 정의하지 않고, 어느 자료에서 구했는지가 다른 두 계산을 비교한다.

누수는 정답 열을 빼는 것만으로 막히지 않는다

데이터 누수(data leakage)는 실제 예측 때 이용할 수 없거나 평가를 위해 따로 분리해야 할 정보가 학습·선택 과정에 들어가는 문제다. 취소 사유를 특징으로 넣는 일은 눈에 잘 띄지만, 시험 자료까지 평균을 계산해 결측값을 채우거나 가장 잘 맞는 특징을 고르는 일도 평가 정보를 사용하는 것이다.

누수가 생기는 경로이 사례의 반례막을 경계
미래 결과가 입력에 포함최종 취소 사유로 취소 예측예측 시점의 이용 가능 정보
평가 자료로 변환 규칙 결정시험 주문까지 포함한 금액 평균분리 뒤 학습 부분에서만 통계 결정
관련 사건이 양쪽에 포함A01의 여러 항목 줄을 각각 분할관측 단위·중복·그룹 점검

한 번에 모든 데이터를 바꾼 뒤 나누는 처리부터 의심해야 한다. 다만 ‘원 단위 금액을 만 원 단위로 바꾼다’처럼 자료의 값을 보고 배우지 않는 사전에 정한 단위 변환과, 자료에서 평균을 계산해 얻는 변환은 구분한다. 후자의 통계 계산·선택은 학습 자료의 범위 안에서만 이루어져야 한다.

빠진 값은 0도, 자동으로 지워도 되는 행도 아니다

결측값은 관측하거나 기록해야 할 항목의 값이 없는 상태다. A03의 금액이 미기록이라고 해서 무료 주문이라는 뜻은 아니다. 값이 없는 이유가 기록 실패인지, 적용 대상이 아닌지, 수집을 거부한 것인지 구분해야 해석할 수 있다.

결측 대치(imputation)는 정한 규칙으로 결측 위치에 계산 가능한 값을 채우는 처리다. 전체 주문을 버리는 대신 학습 부분에서 정한 금액 대푯값으로 채우는 것이 한 후보다. 그러나 채운 숫자가 원래 실제 금액으로 복구된 것은 아니다.

대치 전에는 빠진 열·행의 비율, 특정 기간·채널·결과에 치우친 결측을 본다. 결측 행을 지우면 그 집단이 분석에서 빠질 수 있고, 평균으로 채우면 금액 차이가 줄어들 수 있다. 관찰하지 못한 라벨까지 특징 대치와 같은 방식으로 0이나 평균으로 채워 정답처럼 사용하지 않는다.

평균 3과 4.5의 차이는 계산 실력이 아니라 정보 경계다

학습 주문 A01~A04의 금액은 1, 3, 미기록, 5만 원이다. 관측한 학습 금액만 더하면 9이고 개수는 3이므로 대치값은 9÷3=3만 원이다. 채운 뒤 네 값은 1, 3, 3, 5가 된다.

자료원래 금액(만 원)학습에서 정한 값으로 처리원래 결측 여부
학습 A01110
학습 A02330
학습 A03미기록31
학습 A04550

결측 지시자는 어떤 항목이 원래 결측이었는지 표시하는 입력 항목이다. A03에 1을 남기면 ‘실제 금액이 3이었다’와 ‘금액을 몰라 3으로 채웠다’를 구별할 재료가 된다. 지시자가 항상 성능을 높인다는 뜻은 아니며, 결측 사유가 미래에도 같은 의미인지 검증한다.

시험 주문의 관측 금액 9만 원까지 평균에 넣으면 (1+3+5+9)÷4=4.5만 원이 된다. 아직 채우지 않은 A03의 대치값이 시험 주문 때문에 달라진 것이다. 계산식은 맞아도 시험 자료가 규칙 결정에 참여했으므로 평가 경계를 어겼다. 시험 주문의 금액도 미기록이라면 그때 새 평균을 구하지 않고 앞서 저장한 3만 원을 적용한다.

규칙을 배우는 fit과 그대로 적용하는 transform

전처리는 수집한 자료의 오류·결측·표현·척도 등을 다루어 학습과 예측에 사용할 입력으로 준비하는 처리다. 문구점에서는 금액 대치와 채널의 숫자 표현이 여기에 속한다. 모든 처리가 반드시 필요하거나 원자료를 덮어써야 하는 것은 아니다.

적합(fit)은 지정한 자료에서 변환 통계나 모델의 값을 정하는 과정이다. 금액 평균 3을 구하여 저장하는 단계가 전처리 적합이다. 변환(transform)은 정해진 처리 규칙을 자료에 적용해 입력 표현을 바꾸는 과정이다. 저장한 3으로 학습·검증·시험의 결측 금액을 채우는 단계가 변환이다.

학습 부분에서 fit한 뒤 그 규칙으로 각 부분을 transform한다. 검증이나 시험에서 다시 fit하면 그 자료가 규칙을 바꾼다. 반대로 새로운 자료로 모델을 다시 학습하기로 정식 결정한 경우에는 학습 자료의 범위와 버전을 새로 명시하고 적합할 수 있다. 평가 중 몰래 규칙을 바꾸는 일과 계획한 재학습은 다르다.

벡터는 순서가 있는 값의 묶음이며, 거리는 두 값 묶음이 얼마나 다른지 수로 나타내는 방법이었다(벡터·행렬·거리·유사도). 평균과 표준편차를 이용하면 숫자들의 중심과 퍼짐을 비교할 수 있었지만, 단위가 다른 값의 크기를 그대로 섞으면 큰 단위의 특징이 거리를 지배할 수 있었다(평균·분산·표본·추정). 이제 금액과 주문 횟수의 숫자 크기를 어떤 기준으로 맞출지 살펴본다.

채널 번호 1·2·3에 크기와 거리를 부여하지 않는다

명목형 범주는 값 사이에 본래의 크기 순서가 없는 분류다. 주문 채널 웹·앱·제휴는 이름이 다른 종류이지 제휴가 웹의 세 배라는 뜻이 아니다. 번호 1·2·3은 저장 표지로 쓸 수 있어도 그 차이를 실제 거리로 해석하면 안 된다.

순서형 범주는 값 사이에 의미 있는 순서가 있으나 간격이 같다고 자동으로 보장되지 않는 분류다. 예를 들어 만족도 낮음·보통·높음에는 순서가 있지만 보통→높음의 차이가 낮음→보통과 꼭 같지는 않다. 순서를 사용하려면 뜻을 확인하고 처리 기법이 그 숫자를 어떻게 사용하는지 살핀다.

따라서 자료형이 정수라고 해서 모두 수량 특징인 것은 아니다. 고객번호 102가 101보다 한 단위 더 우수한 고객을 뜻하지 않는다는 점은 앞의 자료형과 의미 구별을 이 사례에 적용한 것이다.

범주마다 자리를 만들고, 새 범주를 만날 때의 규칙도 정한다

원-핫 인코딩(one-hot encoding)은 범주별 표시 열을 만들고 해당 범주의 위치를 1, 나머지를 0으로 나타내는 표현 방법이다. 학습에서 웹과 앱만 관측했고 두 열을 모두 유지한다고 하자.

주문 채널웹 열앱 열읽는 뜻
웹10웹에서 들어옴
앱01앱에서 들어옴
새 채널 제휴미정미정학습 때 없던 값의 처리 규칙 필요

새 채널을 만났다고 입력 열을 즉석에서 하나 늘리면 이미 학습한 모델의 열 수·순서와 달라진다. 미리 정한 오류 처리, 별도 기타 범주, 지원되는 미지 범주 처리 중 하나를 검증하여 적용한다. scikit-learn 1.9.0의 OneHotEncoder는 처음 보는 범주에 기본적으로 오류를 내고, handle_unknown='ignore'로 정하면 해당 특징의 표시 열을 모두 0으로 만든다.

이때 [0, 0]은 웹이나 앱 어느 쪽에도 해당하지 않는 입력 표현이지 새로운 의미를 스스로 학습한 결과가 아니다. 결측과 미지 범주를 같은 표현으로 합칠지 구별할지도 명시한다. 범주가 매우 많으면 열도 많아지므로 저장·처리 비용과 드문 범주의 검증 사례 수를 함께 본다.

3. 척도를 바꿔도 없던 정보가 생기지는 않는다

표준화는 특징에서 정한 평균을 빼고 정한 표준편차로 나누어 중심과 퍼짐의 척도를 바꾸는 변환이다. 학습에서 평균 μ와 표준편차 σ를 정하면 σ가 0이 아닌 경우 z=(x−μ)÷σ로 계산한다. 여기서 x는 변환할 값, z는 바뀐 값이다.

최소–최대 변환은 정한 최솟값과 최댓값을 기준으로 특징의 범위를 선형으로 바꾸는 변환이다. 학습 최솟값 a와 최댓값 b가 다를 때 (x−a)÷(b−a)로 계산하면 학습의 양 끝이 0과 1이 된다. 표준화와 이 변환 모두 기준값은 학습에서 정하고 다른 자료에 그대로 적용한다.

비교표준화최소–최대 변환(0~1 기준)
학습에서 얻는 값평균·표준편차최솟값·최댓값
수치 해석학습 평균에서 표준편차 몇 배 떨어졌는가학습의 두 끝 사이 상대 위치
주의큰 극단값이 평균·표준편차에 영향새 값은 학습 범위 밖으로 나갈 수 있음

이런 척도 조정을 넓게 ‘정규화’라고 부르기도 하지만, 앞에서 배운 관계형 데이터베이스의 정규화와는 다른 뜻이다. 이 절은 혼동을 피하려고 구체적인 변환 이름을 쓴다. 또한 평균과 표준편차의 척도를 맞춰도 자료의 분포 모양 자체를 원하는 모양으로 바꾸는 것은 아니며, 극단값의 오류 여부는 별도로 확인한다.

0·0·2·2를 바꾸고, 처음 보는 4도 같은 자로 잰다

학습 주문 네 건의 과거 주문 횟수가 0, 0, 2, 2라면 평균은 1이다. 평균과의 차이는 −1, −1, 1, 1이고 그 제곱합은 4다. 이 예제는 학습 값 자체의 퍼짐을 나타내므로 분산을 4÷4=1, 표준편차를 1로 계산한다. 이는 모분산의 불편 추정에 n−1을 사용했던 앞 절의 목적과 다르며, scikit-learn의 StandardScaler도 이 계산에서 개수 n으로 나누는 방식을 사용한다.

원래 횟수 x표준화 (x−1)÷1최소–최대 x÷2
학습 0−10
학습 211
새 주문 432

새 값 4를 보고 평균이나 최댓값을 다시 계산하지 않는다. 최소–최대 결과가 2인 것은 계산 실패가 아니라 학습 최댓값 2보다 큰 값이 들어왔다는 뜻이다. 결과를 강제로 1에서 자르는 정책을 선택할 수는 있지만 원래 차이를 잃으며, 새로운 입력 분포 문제까지 해결하지 않는다.

학습 값이 전부 같아 표준편차 또는 최대−최소가 0이면 위 나눗셈을 그대로 할 수 없다. 해당 특징의 유지·제외와 도구의 상수 열 처리 규칙을 확인한다. 단위 조정의 필요성은 뒤에서 배울 학습 기법에 따라 다르므로 모든 열을 무조건 표준화하는 규칙으로 외우지 않는다.

한 새 주문을 고정된 입력까지 준비해 보기

설명을 위해 금액은 만 원 단위를 유지하고, 과거 주문 횟수에만 앞의 표준화를 적용한다고 하자. 금액 대치값은 3, 횟수의 평균과 표준편차는 각각 1이며, 채널은 웹·앱 두 열을 유지하고 미지 범주는 모두 0으로 처리하기로 정했다. 특징을 사용하는 모델에 보낼 열 순서는 [금액, 표준화한 횟수, 원래 금액의 결측 여부, 웹, 앱]으로 고정한다.

새 주문의 원래 값적용할 처리고정된 입력 벡터
금액 미기록·횟수 4·제휴금액 3으로 대치, 횟수 (4−1)÷1=3, 결측 표시 1, 미지 채널 [0,0][3,3,1,0,0]
금액 8만 원·횟수 0·앱금액 유지, 횟수 (0−1)÷1=−1, 결측 표시 0, 앱 [0,1][8,−1,0,0,1]

첫 벡터의 마지막 [0,0]은 제휴의 취소 성향을 배웠다는 뜻이 아니다. 입력을 기존 열에 맞출 수 있다는 것과 그 채널에서 예측을 믿을 수 있다는 것은 별도로 확인한다. 열 개수가 같아도 금액과 횟수의 자리를 바꾸면 모델이 읽는 뜻이 달라진다. 대치값·횟수의 척도·채널 정책·열 순서를 함께 보관해야 새 주문에도 같은 의미의 입력을 만들 수 있다. 뒤의 상수 모델은 특징을 보지 않는 비교용 규칙이므로 이 벡터를 사용해 개별 차이를 학습하는 모델과 구별한다.

원자료의 뜻을 지키며 특징을 만들고 고른다

특징 공학(feature engineering)은 업무 의미와 이용 가능 정보를 바탕으로 학습에 쓸 입력 표현을 만드는 과정이다. 문구점의 과거 90일 주문 횟수, 주문별 항목 수, 원래 결측 여부가 사례다. 집계의 시간창·단위·포함 대상을 함께 남겨야 같은 뜻을 다시 계산할 수 있다.

특징 선택(feature selection)은 준비한 특징 중 정한 기준에 따라 사용할 일부를 고르는 과정이다. 후보 선택에 라벨과의 관계나 성능을 사용하면 그것도 학습·선택 과정이다. 시험 자료를 보며 가장 잘 맞는 열을 고르면, 모델 계산 전이어도 평가 정보가 들어온다.

금액÷항목 수로 평균 항목 금액을 만든다면 항목 수가 0인 주문의 의미와 처리부터 정한다. 과거 취소 비율을 만들 때도 분모가 0인 신규 고객, 아직 관찰이 끝나지 않은 과거 주문, 현재 주문의 제외 조건을 확인한다. 그 비율의 빈 값을 임의로 0% 취소 성향이라고 단정하지 않는다.

특징별로 뜻·단위·계산 시점·원천·결측 처리·선택 근거를 남긴다. 의미가 분명한 소수의 특징도 미래 주문에서 비교해야 하며, 열을 많이 만들었다는 사실 자체가 품질을 보장하지 않는다.

학습은 입력과 결과를 잇는 규칙의 값을 데이터로 정하는 일이다

예측 모델은 새 대상의 특징을 받아 예측 결과를 내도록 정한 계산 규칙이다. 앞의 데이터 모델이 저장할 사실·관계를 정리했다면, 여기의 모델은 입력에서 결과를 얻는 규칙이라는 다른 문맥이다. ‘과거 주문 횟수와 금액을 받아 취소 가능성을 나타내는 수를 낸다’가 한 예다.

모델 학습은 학습 자료와 정한 목적·기법을 사용하여 예측 모델의 값을 정하는 과정이다. 추론(inference)은 학습하여 정한 모델을 새 입력에 적용해 결과를 얻는 과정이다. 이 절의 추론은 통계적 추론 전체가 아니라 모델의 적용을 뜻한다.

라벨을 이용해 결과를 예측하는 방식과 라벨 없이 데이터의 묶임·패턴을 찾는 방식은 필요한 목표와 평가가 다르다. 이 절의 0·1 취소 예측을 모든 데이터마이닝의 유일한 형태로 보지 않는다. 기법의 정식 분류와 선택은 다음 절에서 이어 배우며, 여기서는 학습 자료와 평가 자료를 다루는 공통 경계를 먼저 완성한다.

함수는 입력을 받아 결과나 효과를 만드는 처리단위였고, 손실은 예측과 목표 사이의 차이를 수치화하며 최적화는 정한 목적을 개선하는 값을 찾는 과정이었다(조건·반복·함수·스코프, 미분 직관·최적화·손실). 여기서는 입력에 예측값을 대응시키는 규칙에 한정한다. 이제 이미 배운 제곱 손실을 사용하여 작은 예측 규칙의 값을 고르는 과정을 읽어 본다.

네 라벨로 값 하나를 배우는 가장 작은 모델

모델 매개변수는 학습 과정에서 자료를 이용해 정하는 모델 내부의 값이다. 하이퍼파라미터(hyperparameter)는 모델 구조나 학습 방법을 정하는 설정값으로, 보통 학습 실행의 바깥에서 후보를 정하고 검증으로 선택한다. 함수 호출에 전달하는 매개변수와는 문맥이 다르다. 같은 프로그램 설정 칸에 숫자를 넣더라도 그 수를 자료로 배웠는지, 비교할 설정으로 정했는지 구별한다.

아무 특징도 보지 않고 모든 주문에 같은 수 w를 내는 아주 작은 예측 규칙을 생각하자. 학습 라벨은 0, 1, 0, 1이다. 각 라벨과 w의 차이를 제곱하여 평균을 내면 다음과 같다.

모델 값 w네 제곱 차이평균 제곱 손실
00, 1, 0, 10.5
0.50.25, 0.25, 0.25, 0.250.25
11, 0, 1, 00.5

0인 라벨이 두 개이므로 그 제곱 차이 합은 2×w², 1인 라벨도 두 개이므로 2×(w−1)²다. 전체 평균은 [2w²+2(w−1)²]÷4 = [w²+(w−1)²]÷2이고, 괄호를 풀면 w²−w+0.5가 된다. (w−0.5)²+0.25도 괄호를 풀면 같은 식이다. 제곱은 음수가 되지 않으므로 앞의 제곱 부분을 0으로 만드는 w=0.5에서 가장 작아진다.

이 상수 모델의 평균 제곱 손실은 (w−0.5)²+0.25이므로 w=0.5에서 최소다. 이처럼 자료의 손실로 정한 w가 모델 매개변수다. 값 0.5는 여기서 선택한 단순 규칙의 출력이지 모든 고객의 참된 취소 확률을 알아냈다는 뜻은 아니다.

반면 이후 복잡한 규칙에서 허용할 분기 수 같은 설정 후보를 2개 또는 4개로 정해 비교하는 일은 하이퍼파라미터 선택에 해당할 수 있다. 설정을 선택할 때 시험 결과를 사용하지 않는다. 상수 모델보다 복잡해졌다면 학습 손실뿐 아니라 검증과 업무 목적에서 얻은 이익을 확인한다.

라벨을 바꾼 중간 연습. 네 라벨이 0,0,0,1로 바뀌었고 같은 상수 출력·제곱 손실을 유지한다면 w=0.25와 w=0.5 중 어느 쪽의 학습 손실이 작은가? 먼저 네 차이를 각각 제곱한 뒤 평균을 낸다.

네 오차의 평균과 출력 규칙 교정 보기

w=0.25이면 (0.0625+0.0625+0.0625+0.5625)÷4=0.1875, w=0.5이면 (0.25+0.25+0.25+0.25)÷4=0.25이므로 두 후보 중 전자가 작다. 취소는 0 또는 1이니 출력도 둘 중 하나여야 한다는 답은 지금 비교하는 상수 수치 출력과 뒤 절에서 배울 분류 판정의 경계를 섞은 것이다. 상수 모델의 가정과 손실표로 돌아가 출력 규칙을 먼저 확인한다. 이 작은 학습 손실 비교만으로 실제 안내 성과나 개별 취소 확률을 확정하지 않는다.

외운 결과와 새 주문에 통하는 결과를 구별한다

과대적합(overfitting)은 학습 자료의 우연한 특성까지 맞추어 새 자료에 대한 성능이 나빠지는 문제다. 과소적합(underfitting)은 필요한 관계를 충분히 표현하거나 학습하지 못해 학습 자료에서도 목적에 맞는 성능을 얻지 못하는 문제다. 복잡한 모델이 항상 과대적합이고 단순한 모델이 항상 과소적합인 것은 아니다.

다음은 설명을 위해 만든 결과이며 실험 성능이나 특정 기법의 우열이 아니다. 두 후보를 같은 학습 100건·검증 100건에서 비교했다고 가정한다.

후보학습에서 맞힌 건수검증에서 맞힌 건수먼저 확인할 판단
단순한 후보90/10070/100새 자료에서 남는 성능과 집단별 오류
학습 행을 세밀하게 맞춘 후보100/10055/100학습 특성에만 맞춘 것은 아닌가

학습 100점을 이유로 두 번째 후보를 고르면 목적과 어긋날 수 있다. 그러나 이 표 하나만으로 원인을 확정하지도 않는다. 누수, 라벨 오류, 시기 변화, 분할의 적절성, 특징과 설정을 차례로 점검한다. 학습·검증이 모두 낮다면 자료 품질이나 학습 실패도 가능한 원인이므로 모델을 크게 만드는 한 가지 처방만 적용하지 않는다.

교차검증은 같은 자료를 여러 역할로 나누되 매번 경계를 지킨다

교차검증(cross-validation)은 학습·검증의 분할을 바꾸어 후보를 여러 차례 평가하고 그 결과를 함께 비교하는 방법이다. 폴드(fold)는 이런 분할에서 나눈 자료 부분을 뜻한다. 독립적으로 모은 12건을 A·B·C 각 4건으로 나눈 3-폴드 예를 보자.

차례학습할 8건검증할 4건
1B+CA
2A+CB
3A+BC

각 차례의 검증 결과와 평균·차이를 살펴 후보를 비교한다. 같은 12건을 역할을 바꾸어 사용했으므로 독립 자료가 36건으로 늘어난 것은 아니다. 이 과정에서 설정까지 고른 점수는 후보 선택에 쓰인 점수이므로 최종 시험 결과와 구별한다.

문구점의 미래 주문 문제에서는 이 무작위 3-폴드를 그대로 적용하지 않는다. 과거 자료로 준비하고 그보다 뒤의 관찰을 마친 라벨을 가진 주문으로 확인하는 시간 순서의 반복 평가를 사용한다. 처음 보는 고객이 목적이면 각 차례에서 그룹 비중복도 지키며, 라벨 관찰 기간과 도착 지연을 고려한 빈 구간을 둔다.

각 분할 안에 대치·표현·선택·학습을 함께 넣는다

학습 파이프라인은 입력 변환과 모델 학습·적용 단계를 정해진 순서로 묶어 같은 규칙을 재현하는 처리 경로다. 문구점에서는 ‘학습 자료에서 대치값 결정→같은 값으로 변환→모델 학습’이 하나의 경로가 된다.

각 차례의 학습 안에서 전체 경로를 새로 적합한다

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

각 차례의 학습 안에서 전체 경로를 새로 적합한다위쪽 학습 부분만 대치값·범주·척도와 특징 선택·모델을 배운다. 아래 검증에는 저장한 동일 규칙과 모델을 적용하며 다시 배우지 않는다. 실선은 자료 처리 순서, 점선은 저장된 변환 규칙·모델의 적용이다. 다음 차례에서는 그 차례의 학습 부분으로 처음부터 적합한다.train → fitfit → selectselect → modelvalidation → transformtransform → evaluatefit → transform: 동일 규칙model → evaluate: 모델동일 규칙모델이번 차례의 학습·선택 경계이번 차례의 검증 — 저장된 규칙 적용한 차례의 학습: 이번 분할의 학습 부분한 차례의 학습이번 분할의 학습 부분변환 규칙 적합: 대치값·범주·척도변환 규칙 적합대치값·범주·척도특징 선택: 하는 경우 경로 안에특징 선택하는 경우 경로 안에모델 학습: 이번 차례의 모델모델 학습이번 차례의 모델한 차례의 검증: 이번 분할의 검증 부분한 차례의 검증이번 분할의 검증 부분고정 규칙으로 변환: 검증에서 다시 fit하지 않음고정 규칙으로 변환검증에서 다시 fit하지 않음검증 평가: 변환·선택·모델 적용 후보 비교에 사용검증 평가변환·선택·모델 적용후보 비교에 사용
각 차례의 학습 안에서 전체 경로를 새로 적합한다위쪽 학습 부분만 대치값·범주·척도와 특징 선택·모델을 배운다. 아래 검증에는 저장한 동일 규칙과 모델을 적용하며 다시 배우지 않는다. 실선은 자료 처리 순서, 점선은 저장된 변환 규칙·모델의 적용이다. 다음 차례에서는 그 차례의 학습 부분으로 처음부터 적합한다.train → fitfit → selectselect → modelvalidation → transformtransform → evaluatefit → transform: 동일 규칙model → evaluate: 모델동일 규칙모델이번 차례의학습·선택 경계이번 차례의 검증 —저장된 규칙 적용한 차례의 학습: 이번 분할의 학습 부분한 차례의 학습이번 분할의 학습부분변환 규칙 적합: 대치값·범주·척도변환 규칙 적합대치값·범주·척도특징 선택: 하는 경우 경로 안에특징 선택하는 경우 경로안에모델 학습: 이번 차례의 모델모델 학습이번 차례의 모델한 차례의 검증: 이번 분할의 검증 부분한 차례의 검증이번 분할의 검증부분고정 규칙으로 변환: 검증에서 다시 fit하지 않음고정 규칙으로변환검증에서 다시fit하지 않음검증 평가: 변환·선택·모델 적용 후보 비교에 사용검증 평가변환·선택·모델적용후보 비교에 사용

위쪽 학습 부분만 대치값·범주·척도와 특징 선택·모델을 배운다. 아래 검증에는 저장한 동일 규칙과 모델을 적용하며 다시 배우지 않는다. 실선은 자료 처리 순서, 점선은 저장된 변환 규칙·모델의 적용이다. 다음 차례에서는 그 차례의 학습 부분으로 처음부터 적합한다.

특징 선택을 했다면 저장한 선택도 검증 적용에 포함한다. 다음 교차검증 차례는 그 차례의 학습 부분에서 처음부터 적합한다. 전체 개발 자료에서 먼저 평균·특징을 고른 뒤 나누지 않는다.

전체 개발 자료에서 평균과 특징을 한 번 정하고 난 뒤 교차검증하면, 각 차례의 검증 부분도 이미 규칙 결정에 참여한 셈이다. 각 차례의 학습 부분에서 대치·범주 학습·척도 계산·특징 선택·모델 학습을 다시 수행해야 한다. 특징 선택을 하는 경우 그 선택도 경로 안에 포함한다.

scikit-learn의 Pipeline은 이 순서를 묶는 기능을 제공한다. 다만 미래 취소 사유를 처음부터 입력 열에 넣었거나 같은 주문이 양쪽에 들어간 문제까지 자동으로 고치지는 않는다. 도구로 처리 경로를 묶는 것과 입력·분할의 의미를 검증하는 일을 함께 수행한다.

마지막 시험을 보기 전에 절차와 판정 기준을 고정한다

검증으로 특징·처리·설정과 사용할 후보를 정한 뒤, 계획에 따라 학습과 검증 자료를 합쳐 최종 모델을 다시 학습할 수 있다. 이때 변환 통계도 합친 학습 자료에서 다시 정하며, 마지막 시험은 여전히 어느 결정에도 사용하지 않는다.

앞의 날짜 예에서는 4월 30일까지 결과를 확보한 학습·검증 주문으로 5월 1일 이전에 최종 절차를 고정한다. 고정할 것은 모델 파일 하나만이 아니라 입력 열과 순서, 대치값, 범주 표현, 척도, 특징 선택, 출력의 업무 사용 규칙이다. 시험에서 어떤 결과를 보고 채택·보류할지도 미리 정한다.

시험 결과가 기대에 못 미치면 무조건 배포하지 않는다. 원인을 분석하고 수정할 수 있지만, 이미 본 시험을 반복해서 선택에 썼다면 더 이상 ‘손대지 않은 마지막 평가’라고 부르지 않는다. 새롭게 확보한 독립 평가 자료나 이후 기간의 자료로 수정된 전체 절차를 확인할 계획을 남긴다.

빠진 고객과 잘못 붙인 정답은 변환 함수가 복구하지 못한다

앞에서 표본이 모집단을 제대로 대표하지 못할 수 있음을 배웠다. 웹 주문만 모아 만들었는데 앱 주문에도 곧바로 적용하거나, 결측 행을 모두 지우면서 특정 채널의 주문이 빠진다면 배울 대상과 사용할 대상이 달라진다.

점검 대상문구점에서 남길 사실성능 숫자만 볼 때 놓칠 일
관측 범위기간·채널·신규/기존 고객의 건수관측하지 못한 집단에 근거 없이 적용
정답 품질7일 완결·늦은 기록·취소 판정 규칙미확정 주문을 0으로 처리
처리 결과원본 대비 제외·중복·대치 건수평균 점수 뒤의 특정 집단 손실
업무 사용예측 뒤 안내·취소 처리의 변화안내받은 집단의 결과만 다음 학습에 누적

상담 우선순위를 정한 뒤 취소 비율이 낮아져도 모델의 예측이 정확해서인지, 안내의 효과인지, 시기나 고객 구성이 바뀌어서인지 이 표만으로 분리할 수 없다. 예측 성능과 조치의 인과 효과를 구별하고, 효과의 통계적 판단·실험 설계는 통계 분석과 가설검정에서 이어 배운다.

100건 중 99건을 맞혀도 필요한 취소 한 건을 놓칠 수 있다

클래스 불균형은 예측할 결과 종류별 사례 수가 크게 다른 상태다. 취소 1건·미취소 99건인 자료에서 모든 주문을 미취소라고 하면 99건을 맞히지만 실제 취소 한 건은 놓친다. 맞힌 전체 비율만으로 문구점의 상담 목적을 달성했다고 판단할 수 없는 이유다.

층화 분할은 결과 종류 등의 정한 층별 비율을 고려하여 자료를 나누는 방법이다. 이를 사용하면 드문 결과가 어떤 부분에 아예 없는 문제를 줄일 수 있지만, 원래 빠진 고객을 되살리거나 시간·그룹 경계를 자동으로 보장하지는 않는다. 취소가 1건뿐인 자료를 세 부분 모두에 하나씩 실제 독립 사례로 배치할 수도 없다.

집단·기간별 실제 취소 수와 놓친 취소, 잘못 보낸 안내를 함께 확인한다. 같은 주문을 복제해 건수만 늘리면 독립 사건이 늘어나지 않으며, 복제 행이 학습·평가에 나뉘면 누수가 생긴다. 세부 지표와 오류 비용에 맞는 판정 기준의 계산은 다음 절에서 이어 간다.

같은 뜻의 입력과 같은 변환을 운영에서도 유지한다

학습 때의 과거 90일 주문 횟수와 운영 때의 누적 주문 횟수는 열 이름이 같아도 다른 특징이다. 학습 때 만 원 단위였는데 운영에서 원 단위를 그대로 넣는 경우도 앞서 배운 척도의 뜻을 어긴다. 새 주문은 저장한 대치·범주·척도·특징 순서와 최종 모델로 처리한다.

자료의 추출 시점·관측 단위·라벨 규칙·분할 목록, 변환 통계·설정, 사용한 프로그램과 자료의 버전, 선택 기록·평가 결과를 묶어 남긴다. 무작위 분할이나 학습을 사용했다면 그 무작위 동작을 정한 설정도 기록하여 같은 절차를 다시 확인할 수 있게 한다.

운영에서는 빠진 입력, 미지 범주, 값의 범위와 채널 구성, 나중에 확인한 라벨의 오류 결과를 관찰한다. 자료의 분포가 바뀌었다면 원인과 업무 영향을 검토하되 자동 재학습만으로 해결됐다고 단정하지 않는다. 변경한 특징·규칙을 적용할 때는 다시 평가하고, 확인하지 못한 범위는 적용을 제한하거나 사람에게 판단을 넘긴다.

기술사 답안의 중심은 알고리즘 이름보다 검증 가능한 전체 과정이다

정형 데이터마이닝의 준비·학습 과정은 다음 여섯 판단으로 묶을 수 있다.

  1. 목표를 고정한다. 업무 행동, 관측 단위, 예측 시점, 목표변수와 라벨 관찰 기간을 정한다.
  2. 이용 가능한 자료를 만든다. 당시의 특징만 모으고 주문별 연결·집계 뒤 중복과 라벨 완결을 확인한다.
  3. 평가 경계를 만든다. 적용 목적에 맞게 시간·그룹·종류별 분포를 고려하여 학습·검증·시험의 역할을 나눈다.
  4. 학습 부분에서 준비하고 배운다. 결측·범주·척도·특징 선택을 학습 파이프라인에 넣고 각 분할 안에서 적합한다.
  5. 후보를 선택하고 독립적으로 확인한다. 검증으로 설정을 고르고 고정한 전체 절차를 시험하며, 집단별 오류와 업무 비용을 함께 판단한다.
  6. 같은 의미로 적용하고 재검토한다. 입력·변환·모델·평가의 버전을 연결하고 결측·미지 범주·시간 변화와 실제 결과를 관찰한다.

이 절은 공식 ‘정형 데이터마이닝’ 범위 중 문제 정의와 데이터 준비, 학습·평가의 공통 과정을 설명한다. 분류·회귀·군집·연관·이상탐지의 개별 원리와 지표는 분류·회귀·군집·연관·이상탐지, 통계 검정과 인과 효과 판단은 통계 분석과 가설검정에서 정식으로 다룬다. 준비 과정이 충실해도 개별 기법의 성능이나 해당 공식 범위 전체의 검토 완료를 자동으로 뜻하지 않는다.

4. 10점 문제를 읽고 답안의 범위를 좁힌다

정형 데이터마이닝에서 데이터 누수의 의미와 발생 경로를 설명하고, 학습·검증·시험 데이터 및 전처리의 정보 경계를 구체적인 예로 설명하시오.

‘설명’은 누수의 정의만 적는 것이 아니다. 미래 정보·평가 정보·관련 기록을 구분하고, 자료 역할과 실제 방지 절차를 연결해야 한다. 이 문제는 개별 학습 알고리즘을 나열하는 문제가 아니므로 금액 평균의 작은 반례로 정보 경계를 드러낸다.

누수의 경로와 정보 경계 풀이 보기

10점 답안 목차

  1. 데이터 누수의 정의와 미래·평가·관련 기록 경로
  2. 학습·검증·시험의 역할 및 적용 목적에 맞는 분할
  3. 학습 통계의 적합·고정 변환과 평균 3/4.5 반례
  4. 교차검증 안의 전체 파이프라인과 최종 시험 보호

10점 답안 도식

앞의 자료의 역할은 사용할 수 있는 결정으로 구분한다 그림과 각 차례 파이프라인을 사용한다. 자료를 먼저 분할하고 학습에서 대치·범주·척도·모델을 적합한다. 검증은 같은 규칙을 적용해 후보를 선택하고, 선택 뒤 고정한 전체 절차를 시험으로 최종 확인한다.

금지하는 정보 경로: 시험 자료가 평균·특징·후보 선택으로 되돌아가는 경로. 시험 금액 9를 넣어 평균 3이 4.5로 바뀌는 반례가 이 경계 위반이다.

도식 옆에 ‘각 교차검증 차례에서도 같은 경계’라고 붙이면 전처리 누수와 평가 누수를 함께 설명할 수 있다.

10점 모범답안

1. 데이터 누수의 정의와 미래·평가·관련 기록 경로

데이터 누수는 실제 예측 때 이용할 수 없거나 평가를 위해 따로 분리해야 할 정보가 학습·선택에 들어가는 문제다. 취소 예측에 최종 취소 사유를 넣는 미래 정보, 시험 자료로 평균이나 특징을 정하는 평가 정보, 같은 주문의 복제 행이 양쪽에 놓이는 관련 기록 누수를 구별한다.

2. 학습·검증·시험의 역할 및 적용 목적에 맞는 분할

학습은 변환 통계와 모델 값을 정하고 검증은 특징·설정·후보를 선택하며 시험은 고정한 전체 절차를 독립적으로 확인한다. 미래 주문은 과거→미래 순서를, 처음 보는 고객은 고객 비중복을 지킨다. 7일 취소 라벨은 관찰 완료와 기록 이용 가능성을 확인하여 아직 미확정인 값을 0으로 넣지 않는다.

3. 학습 통계의 적합·고정 변환과 평균 3/4.5 반례

전처리의 적합은 학습 자료에서 규칙을 정하고 변환은 저장한 규칙을 적용한다. 학습 금액 1·3·미기록·5만 원 중 결측값만 관측한 세 값의 평균 3만 원으로 채운다. 시험 금액 9만 원까지 포함하면 대치값이 4.5만 원으로 바뀌어 시험이 학습에 관여한다. 검증·시험에서는 평균·범주·척도를 다시 배우지 않는다.

4. 교차검증 안의 전체 파이프라인과 최종 시험 보호

교차검증에서는 매 차례의 학습 부분 안에서 대치·범주·척도·특징 선택·모델 학습을 수행한다. 전체 자료에서 먼저 변환을 학습한 뒤 나누는 절차는 피한다. 후보를 정한 뒤 전체 처리 규칙을 고정하여 시험하고, 시험 결과로 계속 수정했다면 새로운 독립 평가가 필요함을 기록한다. 파이프라인 도구만으로 미래 열이나 잘못된 관측 단위가 교정되는 것은 아니다.

25점 문제는 전체 절차와 실패 통제를 연결한다

문구점이 주문 확정 시점에 향후 7일 이내 취소를 예측하여 상담 우선순위를 정하려 한다. 주문·항목·고객 기록에는 결측값과 반복 주문이 있으며 향후 새로운 채널도 들어올 수 있다. 업무목표를 학습문제로 정의하고, 정형 데이터 준비·특징 구성·학습·검증·시험·운영 적용 절차와 실패 통제 방안을 설계하시오.

문제는 취소 결과를 빨리 맞히는 코드가 아니라 그 성능을 믿고 사용할 수 있는 조건을 묻는다. 한 주문과 7일 결과의 의미에서 시작해 당시 입력, 자료 분리, 변환·학습, 후보 선택, 시험·운영까지 연결한다. 수치 예시는 이미 읽은 금액·횟수·상수 모델을 사용하며, 실제 조사나 성능 실험을 수행한 것처럼 표현하지 않는다.

취소 예측 전체 절차의 풀이 보기

25점 답안 목차

  1. 업무목표·관측 단위·예측 시점·라벨 정의
  2. 시점 일치 특징과 연결·집계·라벨 품질 확보
  3. 미래·그룹 경계와 라벨 관찰 완료를 반영한 자료 분할
  4. 결측·범주·척도 처리와 새 값의 실패 조건
  5. 특징 구성·선택 및 모델 값·설정의 구별
  6. 교차검증 파이프라인과 과대·과소적합 판단
  7. 고정 절차의 시험과 불균형·대표성·인과 한계
  8. 동일 입력·변환의 운영 적용과 재현·재검토

25점 답안 도식

앞의 자료 역할 그림에 한 주문·확정 시각·7일 라벨 계약을 넣어 읽는다. 당시 이용 가능한 특징, 라벨 완결, 주문별 집계를 확인하고 시간·고객 기준으로 분할한다. 각 학습 경계에서 대치·원-핫·척도·특징 선택→모델 학습을 수행하며, 검증은 동일 변환으로 후보·설정을 선택한다.

시험은 고정한 전체 절차로 집단·오류·업무 판단을 확인한다. 수용한 절차를 같은 입력 의미·변환·모델로 적용한 뒤 변화 관찰·제한·후속 독립 평가를 연결한다. 교차검증 차례의 경계는 바로 앞 파이프라인 그림을 사용한다.

자료의 흐름마다 ‘언제 알 수 있는가’를 확인하고, 시험에서 학습·선택으로 되돌아가는 선을 허용하지 않는다.

25점 모범답안

1. 업무목표·관측 단위·예측 시점·라벨 정의

정형 데이터마이닝은 목적에 맞는 패턴을 찾고 판단에 쓸 만한지 검증하는 과정이다. 상담 우선순위 결정이 목적이므로 관측 단위를 한 주문, 예측 시점을 주문 확정으로 고정한다. 목표변수는 이후 7×24시간 이내 취소 여부로 두고, 완료된 기간에 취소가 확인되면 1, 완료된 기간에 취소가 없고 기록이 확보되면 0으로 판정한다. 관찰 미완료나 기록 누락은 0으로 대치하지 않고 보류한다.

2. 시점 일치 특징과 연결·집계·라벨 품질 확보

특징은 확정 당시 금액, 현재 주문을 제외한 과거 90일 주문 횟수 등 실제 이용 가능 정보로 구성한다. 최종 취소 사유나 미래 고객 등급을 제외하고 늦게 도착한 기록의 당시 접근 가능성을 확인한다. 주문·항목을 연결해 여러 줄이 되면 주문별로 집계한 후 주문 수·행 수·금액·중복·누락을 대조한다. 식별자 열을 빼는 것만으로 복제 행이나 관련 기록의 문제가 없어지지는 않는다.

3. 미래·그룹 경계와 라벨 관찰 완료를 반영한 자료 분할

미래 주문의 평가는 과거 학습→이후 검증→마지막 시험의 시간 순서로 설계한다. 예시로 3월 24일까지의 주문은 3월 31일까지 7일 라벨을 확보하여 4월 검증에 사용하고, 4월 23일까지의 검증 결과를 4월 30일까지 확보한 뒤 5월 시험 절차를 고정한다. 실제 시각과 도착 지연도 확인한다. 처음 보는 고객이 별도 목적이면 고객 비중복을 추가하며, 행 수를 제외하는 도구 설정을 일수로 오해하지 않는다.

4. 결측·범주·척도 처리와 새 값의 실패 조건

결측 사유·비율과 제외되는 집단부터 조사한다. 금액 1·3·미기록·5만 원 중 결측값만 학습에서 정한 평균 3으로 채우되 원래 결측 여부를 남길 수 있다. 웹·앱은 각 표시 열로 표현하고 미지 채널의 오류·기타 처리 규칙을 미리 정한다. 학습 횟수 0·0·2·2는 평균 1·표준편차 1이므로 새 값 4의 표준화 결과는 3, 최소–최대 결과는 2다. 새 값으로 통계를 다시 구하지 않고 상수 열·극단값·범위 초과를 별도로 검토한다.

5. 특징 구성·선택 및 모델 값·설정의 구별

과거 집계의 시간창·단위·포함 범위를 기록하며 현재 주문과 미확정 과거 결과를 제외한다. 금액÷항목 수나 과거 취소 비율은 0인 분모와 빈 이력의 뜻을 먼저 정한다. 특징 선택에 성능을 사용하면 선택도 학습 경계 안에 둔다. 모델 매개변수는 자료의 손실로 배우고 하이퍼파라미터는 후보 설정으로 검증한다. 네 라벨 0·1·0·1에 상수 w를 내는 규칙은 평균 제곱 손실 (w−0.5)²+0.25를 최소화하는 w=0.5를 배우지만, 이것이 개별 고객의 참된 확률을 증명하지는 않는다.

6. 교차검증 파이프라인과 과대·과소적합 판단

각 교차검증 차례에서 그 차례의 학습 부분만으로 대치값·범주·척도·특징 선택·모델을 적합하고 저장한 규칙으로 검증한다. 전체 자료에서 먼저 평균과 특징을 정하는 누수를 피한다. 미래 주문이면 시간 순서와 라벨 관찰 완료를 지키는 반복 평가를 사용한다. 학습 100/100·검증 55/100인 후보가 학습 90/100·검증 70/100인 후보보다 좋다고 단정하지 않고, 과대적합·자료 오류·시기 변화 등을 조사한다.

7. 고정 절차의 시험과 불균형·대표성·인과 한계

검증으로 선택한 뒤 계획에 따라 학습·검증 자료로 다시 적합할 수 있으나 시험은 결정에 쓰지 않는다. 입력·변환·모델·업무 판정 기준을 고정한 뒤 시험한다. 취소 1건·미취소 99건에서 모두 미취소라고 한 99/100 결과는 취소 한 건을 놓치므로 실제 취소 수, 놓친 취소와 잘못 보낸 안내, 채널·신규 고객별 결과를 함께 본다. 대표되지 않은 집단으로 근거 없이 일반화하지 않고, 예측 성능과 상담의 인과 효과를 구별한다.

8. 동일 입력·변환의 운영 적용과 재현·재검토

운영에서도 같은 시간창·단위·열 순서와 저장한 대치·범주·척도·모델을 사용한다. 추출 시점·자료 분할·라벨 규칙·변환 통계·프로그램과 자료의 버전·선택 및 평가 기록을 연결한다. 결측·미지 채널·입력 범위·실제 결과의 변화를 관찰하고 확인하지 못한 범위는 적용을 제한하거나 사람의 판단으로 넘긴다. 시험을 본 뒤 수정했다면 그 결과를 새 독립 평가로 주장하지 않고 후속 평가 계획을 남긴다.

다음에 다시 읽을 세 문장

무엇을 언제 예측할지 정한 뒤 그때 이용 가능한 특징과 완결된 라벨을 한 관측 단위로 준비한다. 학습·검증·시험을 목적에 맞게 나누고, 각 학습 경계 안에서 대치·표현·척도·특징 선택·모델을 배우며 다른 부분에는 고정한 규칙을 적용한다. 좋은 학습 점수보다 독립 평가와 대표성·실패 조건을 확인하고, 운영에서도 같은 뜻의 입력과 변환을 유지한다.

출처와 현행성·검증 경계

이번 재확인일은 2026-10-06이며 1.9 경로의 문서는 1.9.1로 표시된다. 제품 동작은 아래에서 확인한 문서의 규칙으로 한정하며, 원문 코드·그림·표를 복제하지 않고 문구점 자료와 모든 계산·도식을 새로 구성했다. 이 절의 사례·점수는 설명용 가정이지 관측한 성능, 사람 검수 또는 출제 적중 근거가 아니다.

이 절은 데이터 준비·학습·평가의 공통 경계를 설명한다. 개별 기법의 선택과 지표 계산은 다음 절에서, 통계 검정·인과 효과는 통계 장에서 이어 배운다. 작은 예제의 계산을 실제 운영 성능이나 독립 외부검증으로 확대하지 않는다.

연습: 정보 시각과 저장한 변환을 함께 확인하기

  1. 모델을 2026년 4월 1일 09:00에 준비하며 목표는 확정 후 7×24시간 안의 취소다. Q는 3월 27일 10:00 확정되어 준비 시각까지 취소가 없었다. R은 3월 24일 08:00 확정되었고 3월 31일 08:00까지 취소가 없으며 해당 기간의 완전한 기록을 준비 시각 전에 확보했다. S는 3월 20일 12:00 확정되어 3월 25일 14:00에 취소되었지만, 그 기록은 4월 1일 10:00에 도착했고 준비 시각에는 기록 완결 여부를 확인하지 못했다. 모델 준비 시각에 확정하여 학습에 사용할 수 있는 라벨과 보류할 주문을 구분하라. 사건 발생 시각만으로 판단하지 않는다.
  2. 바로 앞 입력 벡터 예제의 변환·열 순서를 그대로 쓴다. 새 주문의 금액은 미기록, 과거 주문 횟수는 2, 채널은 앱이다. 처리 순서를 설명하고 다섯 값을 적어라. 다른 주문이 금액 8만 원·횟수 0·앱일 때, 같은 다섯 값을 정렬해 [-1,0,0,1,8]로 보내도 되는지도 판단하라.
  3. 첫 교차검증 차례의 학습 금액은 1,3,미기록,5여서 평균 대치값 3을 저장했다. 다음 차례의 학습 금액은 5,미기록,9, 검증 금액은 100,미기록이며 관측한 학습 값의 평균으로만 대치한다. 다음 차례의 대치값과 변환한 검증 금액을 구하라. 이전 차례의 3을 재사용하는 방법과 검증의 100도 평균에 넣는 방법이 각각 왜 잘못인지 설명하라.
라벨 시각·입력 순서·차례별 적합 풀이
  1. Q의 관찰 종료는 4월 3일 10:00이므로 아직 취소가 없다는 이유로 0을 붙일 수 없다. R은 7일 관찰과 기록 완결을 준비 시각 전에 확인했으므로 라벨 0을 사용할 수 있다. S의 취소는 목표 기간 안에서 발생했지만 모델 준비 당시에는 그 기록을 이용할 수 없었고 완결 여부도 미확인이다. 그 시점의 학습에서는 보류해야 하며, 10:00 이후 확인한 라벨 1을 09:00 모델이 이미 알았던 답처럼 넣으면 시간 경계를 어긴다. 따라서 이 조건에서 확정해 사용할 수 있는 것은 R의 라벨 0이다.
  2. 금액은 저장한 3으로 대치하고 원래 결측 표시 1을 남긴다. 횟수는 (2−1)÷1=1, 앱 표시는 [0,1]이므로 고정 순서의 입력은 [3,1,1,0,1]이다. 두 번째 주문의 올바른 입력은 [8,−1,0,0,1]이다. 값들을 정렬하면 금액 칸에 −1, 앱 칸에 8이 들어가 원래 특징의 뜻을 잃는다. 입력의 값뿐 아니라 열 순서도 계약이다.
  3. 다음 차례는 관측한 학습 값만으로 (5+9)÷2=7을 새로 적합한다. 검증의 100은 그대로 두고 미기록을 7로 채워 [100,7]을 얻는다. 이전 차례의 3은 이번 학습 부분으로 다시 적합한 값이 아니므로 ‘각 차례에서 처음부터 평균을 학습한다’는 절차와 다르다. 검증의 100까지 넣으면 (5+9+100)÷3=38이 되어 검증 정보가 변환 규칙에 들어간다. 이번 차례의 평균 7을 고정해 적용하는 것이 올바르다.

이 페이지 목차

이 페이지 목차

좋은 점수보다 먼저, 무엇을 언제 맞히려는지 정한다1. 데이터에서 쓸 수 있는 규칙을 찾되, 새 자료로 확인한다전체 과정에서 평가 자료는 답을 고르는 재료가 아니다한 행은 주문 하나이고, 판단 시각은 확정 직후다입력할 값과 나중에 확인할 답을 나눈다아직 7일이 지나지 않은 주문은 ‘취소 안 됨’이 아니다기록된 값이 아니라 그때 알 수 있던 값을 쓴다표를 합치며 같은 주문을 여러 번 배우지 않는다2. 배우는 자료, 고르는 자료, 마지막으로 확인할 자료미래 주문과 처음 보는 고객은 서로 다른 시험이다7일 뒤 답을 알아야 하므로 학습 종료와 평가 시작 사이를 비운다누수는 정답 열을 빼는 것만으로 막히지 않는다빠진 값은 0도, 자동으로 지워도 되는 행도 아니다평균 3과 4.5의 차이는 계산 실력이 아니라 정보 경계다규칙을 배우는 fit과 그대로 적용하는 transform채널 번호 1·2·3에 크기와 거리를 부여하지 않는다범주마다 자리를 만들고, 새 범주를 만날 때의 규칙도 정한다3. 척도를 바꿔도 없던 정보가 생기지는 않는다0·0·2·2를 바꾸고, 처음 보는 4도 같은 자로 잰다원자료의 뜻을 지키며 특징을 만들고 고른다학습은 입력과 결과를 잇는 규칙의 값을 데이터로 정하는 일이다네 라벨로 값 하나를 배우는 가장 작은 모델외운 결과와 새 주문에 통하는 결과를 구별한다교차검증은 같은 자료를 여러 역할로 나누되 매번 경계를 지킨다각 분할 안에 대치·표현·선택·학습을 함께 넣는다마지막 시험을 보기 전에 절차와 판정 기준을 고정한다빠진 고객과 잘못 붙인 정답은 변환 함수가 복구하지 못한다100건 중 99건을 맞혀도 필요한 취소 한 건을 놓칠 수 있다같은 뜻의 입력과 같은 변환을 운영에서도 유지한다기술사 답안의 중심은 알고리즘 이름보다 검증 가능한 전체 과정이다4. 10점 문제를 읽고 답안의 범위를 좁힌다10점 답안 목차10점 답안 도식10점 모범답안25점 문제는 전체 절차와 실패 통제를 연결한다25점 답안 목차25점 답안 도식25점 모범답안다음에 다시 읽을 세 문장출처와 현행성·검증 경계