어느 영어 공부 앱의 2주 무료체험 사용자 데이터이다. 체험 기간에 앱을 쓴 날 수·실행 횟수·알림 동의 여부 등으로 그 사용자가 체험 후 유료 구독으로 전환할 확률을 예측하는 이진 분류 문제이다. 학습용 데이터 trial_train.csv로 모델을 학습하고, 평가용 데이터 trial_test.csv의 각 사용자에 대한 유료 전환(paid=1) 확률을 예측하여 result.csv 파일을 생성하는 코드를 작성하여 제출하시오.
[제출 형식]
result.csv (별도 디렉토리 지정 금지)pred (유료 전환일 확률, 0~1 사이 실수)pred 1개 (자동 생성되는 index 컬럼 제거)[변수 설명]
| 컬럼명 | 설명 | 값 |
|---|---|---|
| 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 파일명: 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())파이썬 실행환경 불러오는 중 · 보통 3초