구매 예측 모델의 학습 데이터에 붙이는 라벨은 무엇을 의미할까 관련 이미지

구매 예측 데이터

구매 예측 모델의 학습 데이터 라벨 의미와 구매 판정 기준

발행

구매 예측에서 라벨은 사용자의 성향을 붙여 놓은 이름이 아니라 정해진 기준으로 확인한 구매 결과입니다. 학습 데이터의 1행에서 입력 정보와 결과값을 구분하면 모델이 무엇을 배우는지, 예측을 어디까지 해석하는지 이해하기 쉬워집니다. 실제 구매 여부를 기록한 라벨과 모델이 계산한 구매 확률은 서로 다릅니다. 실무에서는 구매로 인정하는 사건을 먼저 정하고 결과를 관측하는 구간과 미확정 기록의 처리 규칙을 함께 고정합니다.

입력 정보와 구분되는 구매 결과값

학습 데이터의 라벨은 모델이 맞히려는 결과값이며 사용자 행동처럼 예측에 사용하는 입력 정보와 구분됩니다. 정답 역할입니다. 구매 여부를 분류하는 작업에서는 결제 완료를 1, 정해진 조건에서 구매하지 않은 경우를 0으로 표현하는 방식이 쓰이며 이 숫자는 사용자의 등급이나 선호 점수를 의미하지 않고 정의한 구매 사건이 관측됐는지 구분하는 코드입니다. 상품 화면의 방문 기록이 입력이라면 관측 구간의 결제 완료 여부는 라벨이고, 구매 금액을 예측하는 작업에서는 해당 구간의 금액 자체가 결과값이 됩니다. 모델이 계산한 구매 확률은 예측값이므로 실제 결과를 기록한 라벨과 같은 열에 섞지 않습니다. [기계학습 용어집](https://developers.google.com/machine-learning/glossary#label)

구매 판정을 고정하는 라벨 정의

결제 버튼을 누른 행동과 결제가 승인된 사건은 서로 다른 결과입니다. 기준은 문장으로 남깁니다. 먼저 학습 데이터의 1행이 사용자 단위인지 가격 제안 단위인지 정한 뒤, 예측을 시작하는 시점과 결과를 관측하는 종료 조건을 명시하고 어떤 결제 상태를 구매로 인정하는지 같은 규칙 안에 적습니다. 예를 들어 가격 제안을 받은 사용자가 정해진 관측 구간 안에 해당 상품의 결제를 완료했는지를 목표로 삼으면 다른 상품의 결제는 그 목표의 구매 결과에 포함하지 않습니다. 신규 결제와 구독 갱신도 목적에 따라 따로 정의하며 체험 시작을 유료 구매와 같은 결과로 묶지 않습니다.

미구매와 미확정 기록의 구분

구매 기록이 없다는 이유만으로 라벨에 0을 넣으면 아직 결과가 확정되지 않은 기록까지 미구매로 처리합니다. 빈칸은 미구매가 아닙니다. 정해진 관측 구간이 끝났고 결제 기록의 수집도 완료됐을 때만 사용자를 미구매 판정 대상으로 삼습니다. 수집 지연이나 연결 실패로 결과를 확인하지 못한 기록은 별도의 상태로 분리해 이진 라벨 학습에서 제외합니다. 같은 결제의 재전송 기록은 거래 식별자로 중복을 제거하고 기기 사이에서 사용자를 연결할 때도 다른 사람의 결제가 합쳐지지 않는지 점검합니다. 환불된 거래는 승인 결제를 예측하는지 환불 반영 매출을 예측하는지에 따라 처리하며 서로 다른 목표의 규칙을 섞지 않습니다.

결과가 입력으로 새는 데이터 누수

예측 시작 시점과 구매 결과 확인 시점은 2개의 다른 경계입니다. 입력의 기준은 예측 시점입니다. 결제 완료 전에 구매를 예측할 때 해당 결제의 영수증 발급 여부처럼 결과를 드러내는 정보가 입력에 들어가면 데이터 누수가 발생합니다. 예측 시점 뒤에 확정된 결제 금액이나 구매 후에 바뀐 회원 상태를 학습 입력에 넣는 경우에도, 실제 예측 순간에는 알 수 없던 결과를 이용하게 되므로 평가 결과를 그대로 운영 성능으로 받아들이지 않습니다. 각 입력 열은 값이 생성된 시점과 실제로 시스템에 도착한 시점을 함께 대조하고 과거 구매 이력도 예측 시점까지 이용 가능한 기록으로 계산합니다. [데이터 누수의 정의](https://developers.google.com/machine-learning/glossary#label-leakage)

동적 가격과 지불의사 해석의 경계

구매 라벨 1개는 제시된 조건에서 결제가 일어났는지를 설명하며 사용자가 지불할 의사가 있는 최대 금액을 직접 알려 주지는 않습니다. 가격은 조건입니다. 동적 가격에 구매 예측을 활용하려면 사용자가 실제로 본 가격과 제안 조건을 입력에 연결하고 구매가 발생했다는 사실만으로 더 높은 가격에서도 같은 사용자가 결제했을 것이라고 해석하지 않도록 결과의 범위를 제한합니다. 미구매에는 가격 거부 외에도 결제 오류나 구매 필요가 없던 상황이 포함됩니다. 가격 민감도 분석에서는 가격별 구매 결과의 차이와 가격 변경이 만든 영향을 구분하고 노출 대상을 무작위로 배정한 실험 등 비교 가능한 설계로 가격 효과를 평가합니다.

라벨 생성 규칙의 점검 순서

실무 점검은 목표를 설명하는 1개의 문장에서 시작합니다. 변경에는 버전을 붙입니다. 먼저 대상과 구매 판정 조건을 적고 관측 종료 기준을 고정한 뒤, 결제 기록을 연결하는 규칙과 중복 제거 방식을 확인하고 미확정 기록을 제외하는 조건까지 문서와 처리 코드에 같은 의미로 반영합니다. 관측 종료 경계의 결제와 중복 전송 사례를 직접 대조하며 환불 사례는 정해 둔 목표의 처리 규칙과 일치하는지 별도로 검사합니다. 평가용 데이터에도 같은 라벨 정의를 적용하고 예측값을 실제 결과와 비교하며 규칙이 바뀌면 서로 다른 정의로 계산한 성능을 같은 기준처럼 비교하지 않습니다.

핵심 요약

  • 라벨이 답하는 질문을 1개의 문장으로 고정하면 구매 여부와 구매 금액을 서로 다른 목표로 관리하게 됩니다.
  • 관측이 끝나지 않았거나 수집이 실패한 결과를 미구매 코드인 0으로 채우지 않습니다.
  • 학습 입력 열을 1개씩 시간 기준으로 대조하면 구매 후 정보가 섞이는 경로를 찾아냅니다.
  • 구매 반응 예측과 가격 효과 분석을 2개의 작업으로 구분하면 라벨을 지불의사로 확대하는 해석을 피하게 됩니다.

자주 묻는 질문

구매 라벨과 구매 확률은 같은 값인가요?

서로 다릅니다. 이진 분류의 라벨은 2개 범주 중 확인된 결과에 해당하는 값이고 구매 확률은 입력 정보를 바탕으로 계산한 예측입니다. 같은 사용자에 관한 기록이어도 실제 결과와 예측값은 별도 필드에 저장합니다.

구매 기록이 없으면 모두 미구매 라벨인가요?

관측 구간이 끝났고 결제 기록이 정상적으로 수집됐다는 조건부터 충족해야 합니다. 결과 확인 전의 기록이나 수집 실패 기록에 미구매 코드인 0을 붙이지 않습니다. 미구매라는 결과와 결과를 모른다는 상태는 구분합니다.

구매 예측 라벨은 사람이 직접 붙여야 하나요?

결제 완료 상태처럼 판정 조건이 명확한 결과는 SQL 등의 데이터 처리 방식으로 거래 기록에서 생성합니다. 사람은 구매의 정의를 정하고 예외 처리가 그 정의와 일치하는지 점검합니다. 기준이 다른 수작업 판정과 자동 생성 결과를 같은 라벨로 묶지 않습니다.

구매 라벨만으로 적정 가격을 알 수 있나요?

구매 라벨 1개만으로 가격 최적화 결과를 정하지는 않습니다. 실제 제시 가격을 비롯한 제안 조건과 가격에 따른 반응을 함께 분석합니다. 매출 목표와 운영 제약도 별도로 정하며 구매 결과 자체를 사용자의 최대 지불의사로 해석하지 않습니다.

— Monetai · calendly.com