🏷️ 이슈 유형
💡기능
#77에서 "동일 문장의 숫자만 변경해 개수를 늘리는 방식은 지양한다"고 정했으나, 데이터셋에 11개 그룹 101행(전체의 9.3%) 이 남아 있습니다.
fingerprint 중복 제거는 숫자가 다르면 걸러내지 못하고, template 그룹화는 묶기만 할 뿐 행을 줄이지 않기 때문입니다.
| 행수 |
label / 유형 |
문장 (숫자 마스킹) |
| 19 |
phishing / 지인가족사칭 |
"장모님 저 급히 송금할데가… [금액]이에요" |
| 16 |
normal / 기타정상 |
"오늘 당일 하루! 아르바이트 모집… 일급 [금액]" |
| 14 |
phishing / 채용부업사기 |
"취업비서 인쿠르트의 김[N]입니다…" |
| 13 |
phishing / 금융기관사칭 |
"마스크하고 손소독제를… [금액] 보내줘" |
| 9 · 8 |
phishing / 지인가족사칭 |
"형수님 진짜 죄송한데 일본에…" |
| 8 |
normal / 정상광고프로모션 |
"환급금 분석결과… 예상환급액 [금액]" |
| 4 · 4 · 3 · 3 |
normal / 정상카드결제알림 |
"[은행] 소비쿠폰… 사용 [금액]" |
#84에서 test의 정상광고프로모션 오탐 8/8이 실은 환급금 문자 한 템플릿이었습니다.
이 그룹이 통째로 test에 가면서 train에는 표기 없는 광고가 2건만 남았고, 한 문장이 유형 전체 지표를 좌우했습니다.
모델은 변경하지 않고 데이터 중복만 정리합니다.
🛠️할 일 목록
📌 참고 사항 / 제약 조건
- 목적은 데이터 무결성이지 지표 개선이 아니다. 정리 후 지표가 나빠져도 그대로 기록한다.
- 이진 label과 원문은 변경하지 않는다. 행을 줄일 뿐 내용을 고치지 않는다.
- 특징을 함께 바꾸지 않는다. 그래야 데이터 정리 효과만 분리 측정된다.
- 데이터가 9% 줄어 클래스 균형이 기울면 임계값이 이동한다.
#83에서 정상 120건 추가 시 임계값이 0.30→0.16으로 밀린 사례가 있어, #85 임계값 정책을 함께 반영할지 검토한다.
- 임계값은 validation에서만 선정하고 test·holdout으로 재조정하지 않는다.
sms_split_v2.csv·v3.csv와 기존 artifact는 모두 보존한다.
🏷️ 이슈 유형
feat: 새로운 기능 추가fix: 버그 수정refactor: 동작 변경 없는 구조 개선docs: README 등 문서 추가/수정chore: 설정, 빌드, 의존성 패키지 변경💡기능
#77에서 "동일 문장의 숫자만 변경해 개수를 늘리는 방식은 지양한다"고 정했으나, 데이터셋에 11개 그룹 101행(전체의 9.3%) 이 남아 있습니다.fingerprint 중복 제거는 숫자가 다르면 걸러내지 못하고, template 그룹화는 묶기만 할 뿐 행을 줄이지 않기 때문입니다.
#84에서 test의정상광고프로모션오탐 8/8이 실은 환급금 문자 한 템플릿이었습니다.이 그룹이 통째로 test에 가면서 train에는 표기 없는 광고가 2건만 남았고, 한 문장이 유형 전체 지표를 좌우했습니다.
모델은 변경하지 않고 데이터 중복만 정리합니다.
🛠️할 일 목록
prepare_template_groups에 반영해 이후 데이터도 지속적으로 걸러지게 한다.sms_split_v3.csv를 보존한 채 새 split을 생성하고EXPECTED_*가드를 갱신한다.#84와 동일한 구조 특징 구성(14개)으로 재학습하고run_error_analysis.py로 전후를 비교한다.#84의 관문 기준으로 재판정한다(1차 ROC-AUC ≥ 0.95 · 2차 FPR 5%에서 Recall ≥ 0.85).📌 참고 사항 / 제약 조건
#83에서 정상 120건 추가 시 임계값이 0.30→0.16으로 밀린 사례가 있어,#85임계값 정책을 함께 반영할지 검토한다.sms_split_v2.csv·v3.csv와 기존 artifact는 모두 보존한다.