top of page
검색
  • 윤서윤

생활습관에 따른 비만 예측 머신러닝

비만은 만병의 근원이라고 할 정도로 각종 합병증을 불러옵니다. 이제는 비만을 질병으로 바라보는 시각 또한 많아졌으며 비만인구가 늘어나고 있는 것이 사회 문제로 대두되고 있습니다. 생활습관에 따라 비만도 예측이 가능하다면 비만인 고객은 본인의 생활습관을 개선하는 데 도움을 받을 수 있고 비만이 아닌 고객도 건강한 생활습관을 유지하며 비만을 예방하는 데 도움을 받을 수 있습니다. 이 비만도 예측 모델은 생활습관이 비만도에 영향을 끼칠 것을 가정하고 적용되었습니다.


데이터셋은 성별, 나이, 키, 몸무게, 비만가족력, 고칼로리 음식 소비빈도, 채소 소비 빈도, 섭취 끼니 수, 간식 섭취량, 흡연 여부, 물 섭취량, 칼로리 모니터링 여부, 운동 빈도, 스마트기기 사용 시간, 알콜 섭취량, 사용하는 교통수단, 비만정도 로 구성되어 있습니다. 총 2111열에 17행의 데이터이며 입력이 누락된 결측치는 없는 것으로 확인됐습니다.


예측 타겟은 비만정도로 설정하고 비만정도의 범주를 살펴봤습니다. 총 7개의 범주로 이진형 분류 모델로는 정확도가 떨어지는 예측을 할 수 있었습니다.



데이터에 있는 키와 몸무게 정보를 이용하여 새롭게 BMI지수 행을 추가했습니다. 그리고 BMI지수 30이상일 경우 비만으로 1로 표기하고 30미만일 경우 비만이 아닌 것으로 0으로 표기했습니다. 그래프로 확인해 본 결과 균형있는 타겟으로 확인 되어 BMI 라벨링을 한 행을 타겟으로 정해주었습니다. BMI 행을 추가할때 사용했던 키, 몸무게 행은 모델에 부정적 영향을 끼칠 수 있기때문에 삭제해주었습니다. 그리고 원래 타겟값으로 사용하려고 했던 비만정도 행도 동일하게 삭제해 주었습니다.

로지스틱 회귀


XGBoost

로지스틱 회귀의 경우 acc 0.78, XGBoost의 경우 acc 0.88의 성능을 보여 최종 모델은 XGBoost를 사용했습니다.

특성중요도를 살펴봤을 때 나이가 유독 높게 나왔지만 이는 나이의 범주가 많아서 나온 결과입니다.

퍼뮤테이션 중요도를 확인해보니 가족력이 가장 높은 영향을 끼치는 것으로 나타났습니다.

나이 컬럼을 그룹화 후 다시 퍼뮤테이션 중요도를 확인해 봤을때 나이의 중요도가 일정수준 내려간 것으로 나타났습니다.

SHAP 밸류를 확인해 봤을 때도 가족력이 가장 큰 영향을 끼치는 것으로 나타났습니다.

영향도 확인 후 하이퍼파라미터만 조정한 후 모델에 적용해봤습니다. 총 423개의 테스트 데이터에서 비만이 아닐 때 비만이 아니라고 정확히 예측한 수가 215개, 비만일때 비만이라고 정확히 예측한 수가 180개로 총 395개를 정확히 예측했습니다.

최종적으로 모델 적용 결과 acc 0.93으로 아주 높은 정확도를 보여줬습니다.

모델 해석 중에 확인되었던 특성 중요도가 낮은 흡연여부, 성별, 칼로리 모니터링 여부 컬럼을 삭제후 모델을 적용한 결과 맞게 예측한 정도가 423개중 386개로 조정 전보다 오히려 성능이 떨어진 것을 확인했습니다. 이는 비만도에 따른 생활습관 설문조사를 기반으로 한 데이터이기때문에 모든 행들이 타겟에 유효한 영향을 끼치는 것으로 해석할 수 있습니다.


생활습관에 따라 비만도를 예측할 수 있다고 세웠던 가설이 맞다고 볼 수 있으며 해당 지표로 고객들의 비만도를 예측할 수 있습니다. 비만인 고객에게 생활 습관 개선 가이드를 제공할 수 있고 비만이 아닌 고객에게는 비만 예방을 위한 생활 습관 가이드 제공이 가능합니다.


전체코드



조회수 35회댓글 0개

최근 게시물

전체 보기

Comentarios


게시물: Blog2_Post
bottom of page