프로젝트/kt나스미디어 현장실습 인턴

광고 데이터 CVR 예측 모델링 - (퀄리티 체크)

macbook2 2026. 4. 6. 11:44

1. 캠페인 정보

CAMP_ID 캠페인명 시작일 종료일
5221 - 2025-05-28 2025-07-01

 

 

2. 확인 데이터

테이블 명 시작일 종료일
cvr_adpk_5221_sample 2025-06-26 2025-07-01

 

 

3. 퀄리티 체크용 SQL 코드

 

- 연속형

SELECT ROUND(MIN(컬럼), 2) AS MIN, ROUND(MAX(컬럼), 2) AS MAX, ROUND(AVG(컬럼), 2) AS AVG, ROUND(STDDEV(컬럼), 2) AS STD, ROUND(APPROX_PERCENTILE(컬럼, 0.5), 2) AS MID
FROM 스키마. 테이블
WHERE (BASE_YM >= '202503' AND BASE_YM <= '202505')

 

- 범주 갯수

SELECT COUNT(DITINCT )
FROM 스키마. 테이블
WHERE (BASE_YM >= '202503' AND BASE_YM <= '202505'

 

- 범주 종류

SELECT DISTINCT 컬럼 
FROM 스케마. 테이블
WHERE BASE_YM >= '202503' AND BASE_YM <= '202505'
ORDER BY 컬럼

 

- 최빈값

SELECT camp_id
FROM NAS_IF.DMP_SUM_ADID_MART
WHERE BASE_YM BETWEEN '202503' AND '202505'
GROUP BY camp_id
ORDER BY COUNT(*) DESC
LIMIT 1;

 

- 적재건수 및 널 값

SELECT
  COUNT(*) - COUNT(index_score) AS NULL_NUM,  -- NULL 값 개수
  ROUND(100.0 * (COUNT(*) - COUNT(index_score)) / COUNT(*), 2) AS PERCENT_NULL,  -- NULL 비율 %

  COUNT(index_score) AS DATA_NUM,  -- 값이 있는 데이터 개수
  ROUND(100.0 * COUNT(index_score) / COUNT(*), 2) AS PERCENT_DATA  -- 적재 비율 %
FROM 스키마.테이블
WHERE BASE_YM BETWEEN '202503' AND '202505';

 

- BOOLEAN 범주 비율

SELECT 
  ROUND(100.0 * COUNT(*) FILTER (WHERE 컬럼 = 'TRUE') / COUNT(*), 2) AS true_pct,
  ROUND(100.0 * COUNT(*) FILTER (WHERE 컬럼 = 'FALSE') / COUNT(*), 2) AS false_pct,
  ROUND(100.0 * COUNT(*) FILTER (WHERE 컬럼 IS NULL) / COUNT(*), 2)  AS null_pct
FROM 스키마. 테이블
WHERE BASE_YM >= '202503' AND BASE_YM <= '202505'

 

- VARCHAR 타입 범주 비율 

SELECT 컬럼, ROUND(100.0 * COUNT(*) / total. total_count, 2) as percentage
FROM 스키마. 컬럼,
	(SELECT COUNT(*) AS total_count
	 FROM 스키마. 컬럼
     WHERE BASE_YM >= '202503' AND BASE_YM <= '202505'
     ) AS total
WHERE BASE_YM >= '202503' AND BASE_YM <= '202505'
GROUP BY 컬럼, total_count
ORDER BY 컬럼;

 

 

4. 퀄리티 체크

cvr_5221_qc.csv
0.00MB

 

5. 결론

 

대부분의 컬럼은 NULL 0건, 적재율 100% 로 정상

  • camp_id: 5221 단일값 → 해당 캠페인 데이터만 정상 적재
  • bm_type: 1(NORMAL) 단일값 → 정상
  • dev_ip_country: KOR 단일값 → 정상
  • log_type: 입찰(55.8%) > 낙찰(42.78%) > 클릭(1.19%) > 전환(0.09%) 순으로 정상 분포
  • base_hh: 20~23시 트래픽이 높게 분포 (각 9~12%) → 저녁 피크 시간대 정상 반영
  • 확인 필요 : bid_price  QC 통계 누락
  • 개선 권고 :  dev_model NULL 15% 허용 기준 검토, ads_type 값 0 의미 확인, app_inv_type 미분류 비율 과다)
  • kakao_imp_tagid 99.3% NULL은 설계상 자연스러운 결과

데이터 전반의 적재율 및 분포를 고려할 때, 모델 학습을 위한 기본적인 완전성 및 무결성 요건은 충족된 것으로 판단