제2유형 (작업형2)40점2호선 9역 확률 제출난이도 중

[Lv.4] 제2유형 (40점)앱 유료 전환 · predict_proba로 확률 제출(ROC-AUC)

제공 데이터
  • data/trial_train.csv
  • data/trial_test.csv

어느 영어 공부 앱의 2주 무료체험 사용자 데이터이다. 체험 기간에 앱을 쓴 날 수·실행 횟수·알림 동의 여부 등으로 그 사용자가 체험 후 유료 구독으로 전환할 확률을 예측하는 이진 분류 문제이다. 학습용 데이터 trial_train.csv로 모델을 학습하고, 평가용 데이터 trial_test.csv의 각 사용자에 대한 유료 전환(paid=1) 확률을 예측하여 result.csv 파일을 생성하는 코드를 작성하여 제출하시오.

  • 평가지표: ROC-AUC (값이 높을수록 좋음, 구간별 5점 단위 배점)
  • 제출값은 0/1 라벨이 아니라 유료 전환(paid=1)일 확률이다.
  • 일부 변수가 범주형(문자열)이므로 학습 전 인코딩이 필요하다. 결측치는 없다.

[제출 형식]

  1. CSV 파일명: result.csv (별도 디렉토리 지정 금지)
  2. 예측 결과 컬럼명: pred (유료 전환일 확률, 0~1 사이 실수)
  3. 제출 컬럼 개수: pred 1개 (자동 생성되는 index 컬럼 제거)
  4. 평가용 데이터(test) 행 수와 예측 결과 행 수가 일치해야 함

[변수 설명]

컬럼명설명값
id사용자 번호정수
channel설치 경로검색광고, SNS, 지인추천, 앱스토어
device기기iOS, Android, 태블릿
active_days체험 14일 중 사용한 날 수0 ~ 14
sessions앱 실행 횟수정수
features_used써 본 기능 수1 ~ 8
push_agree알림 수신 동의Y, N
age나이정수
paid유료 전환 여부 (train에만 존재, 예측 대상)1: 전환, 0: 이탈

💡 이렇게 해 보세요

  • model.predict()는 0/1을, model.predict_proba()는 [0일 확률, 1일 확률] 두 칸을 돌려줍니다.
  • 문제는 1일 확률을 원하므로 predict_proba(test)[:, 1] 로 두 번째 칸만 꺼냅니다.
  • 검증도 확률로: roc_auc_score(실제값, 확률)
  • help(RandomForestClassifier.predict_proba) 로 확률 표의 모양(행 = 데이터, 열 = 클래스)을 확인할 수 있어요.
CSV 파일 형식 및 확인 방법

■ CSV 파일명: result.csv · 예측 칼럼명: pred (칼럼 1개)

■ 제출 CSV 파일 형식 예시

pred
0.8123
0.0571
0.4630
……

■ CSV 파일 확인 방법: 생성된 파일을 아래처럼 출력해 확인

import pandas as pd
result = pd.read_csv("result.csv")
print(result.head())
result.csv를 생성하는 코드를 작성하고 '제출'을 누르세요.
에디터 로딩 중…

파이썬 실행환경 불러오는 중 · 보통 3초