배경
이 프로젝트는 복부수술 환자의 간호감시를 지원하기 위한 자동 ICD 코딩 문제를 다뤘다. 의사 판독문이나 퇴원기록처럼 나중에 작성되는 문서가 아니라, 간호 실무 중 바로 접근 가능한 핵심 EMR 데이터만으로 환자 상태를 분류할 수 있는지를 확인하는 것이 핵심 목표였다.
문제
간호사는 환자를 지속적으로 관찰하며 위험을 식별해야 하지만, 실제 현장에서는 검사결과, IO, BST, 활력징후, 환자정보, 간호기록, 회복실 기록이 서로 다른 형식으로 흩어져 있어 이를 실시간으로 종합해 판단하기 어렵다. 기존 자동 ICD 코딩 연구도 의사 중심 텍스트나 추가 자원에 의존하는 경우가 많아, 간호감시 지원에 바로 연결되기에는 한계가 있었다.
구현
복부수술 환자 8,587명의 EMR을 환자 ID 기준으로 통합하고, 수치형 데이터는 표준화 또는 Min-Max scaling으로 정리했으며 텍스트 데이터는 KM-BERT 입력으로 구성했다. 이후 두 개의 KM-BERT를 독립적으로 학습해 얻은 raw logits를 평균하여 앙상블 효과를 만들고, PCA로 차원을 축소한 뒤 XGBoost를 메타 분류기로 사용하는 스태킹 구조를 적용했다. 또한 stratified split과 WeightedRandomSampler를 사용해 클래스 불균형 문제도 함께 다뤘다.
결과
최종 제안 모델인 Double KM-BERT + XGBoost + PCA는 정확도 0.9245, 가중 정밀도 0.9107, 가중 F1-score 0.9157로 가장 높은 성능을 기록했다. 희소 클래스에서도 높은 재현율을 보여, 간호 현장에서 바로 활용 가능한 EMR 핵심 데이터만으로도 안정적인 자동 진단명 분류가 가능함을 확인했다.