Index

Data

날씨 기반 질병 위험 예측

2025.03 - 2025.06전공 · 머신러닝

날씨 기반 질병 위험 예측은 기상 정보, 인구통계, 증상과 건강 상태 변수를 함께 넣어 질병 클래스를 예측한 개인 프로젝트입니다. 모델 성능은 높게 나왔지만, 저는 이 결과를 진단 모델이 아니라 데이터 누수와 shortcut을 의심해야 하는 사례로 해석했습니다.

처음 세운 질문

출발 질문은 날씨 변화가 질병 위험 신호와 연결될 수 있는지였습니다. 5,200개 사례와 11개 질병 클래스를 두고, 기상 변수와 사용자 특성, 증상 관련 변수를 함께 사용했습니다. Logistic Regression, Decision Tree, Random Forest, XGBoost, LightGBM 같은 모델을 비교하며 어떤 모델이 분류 문제에 잘 맞는지 확인했습니다.

날씨와 질병을 연결하는 문제는 겉으로는 흥미롭지만, 바로 위험해질 수도 있습니다. 실제 의료 판단은 훨씬 복잡하고, 개인의 증상과 건강 상태는 민감합니다. 그래서 저는 이 프로젝트를 질병을 판정하는 모델이 아니라, 위험 신호를 어떻게 다룰 수 있는지 보는 학습용 모델링으로 제한했습니다.

성능이 너무 좋을 때

결과만 보면 일부 모델은 매우 높은 성능을 보였습니다. 하지만 의료나 건강 데이터를 다룰 때 성능이 지나치게 좋으면 먼저 의심해야 합니다. 증상 변수가 이미 질병 라벨을 강하게 암시하거나, 데이터 생성 과정에서 라벨과 입력이 가까이 붙어 있을 수 있기 때문입니다. 그래서 저는 이 프로젝트를 "날씨만으로 질병을 예측했습니다"라는 식으로 말하지 않습니다.

오히려 제게 중요한 질문은 어떤 변수가 모델을 이끌었는지였습니다. 기상 변수가 실제로 의미 있는지, 아니면 증상 변수가 대부분을 설명하는지 구분해야 합니다. 만약 증상 정보가 라벨을 거의 직접 알려 주는 구조라면, 모델의 높은 성능은 날씨 기반 예측의 성과가 아니라 데이터 구성의 결과일 수 있습니다.

제가 정리한 방향

더 적절한 해석은 건강 알림이나 사전 주의 신호입니다. 예를 들어 특정 날씨 조건과 사용자 상태가 겹칠 때 조심하라는 안내는 가능할 수 있습니다. 하지만 질병명을 직접 판단하거나 의료적 결정을 대신하는 것은 전혀 다른 문제입니다. 저는 모델 비교와 변수 중요도를 보면서, 정확한 예측보다 데이터가 어떤 정보를 이미 품고 있는지 읽는 일이 더 중요하다고 느꼈습니다.

이 프로젝트에서 모델링은 끝이 아니라 검증 질문의 시작이었습니다. 높은 점수가 나오면 왜 높은지, 낮으면 무엇을 놓쳤는지 확인해야 합니다. 특히 건강 영역에서는 "맞췄습니다"라는 말보다 "어떤 조건에서 믿을 수 있는가"가 더 중요했습니다.

남은 배움

이 프로젝트는 머신러닝 모델을 여러 개 돌려 보는 연습이면서, 동시에 높은 성능이 좋은 모델이라는 뜻은 아니라는 것을 배운 사례입니다. 특히 건강 영역에서는 데이터 정의, 변수 선택, 검증 방식, 실제 사용 맥락이 모두 중요합니다. 이후 모델링 프로젝트에서 저는 성능표를 먼저 자랑하기보다, 그 성능이 어디서 나왔는지를 더 많이 묻기 시작했습니다.