미래내일 일경험 인턴 기록05
Intro
이 글은 미래내일 일경험 인턴십에서 근무하면서
겪거나 배우고 느낀 것을 기록하고자 작성한 포스트입니다.
최근의 일들
최근에 정처기 실기 시험이랑 인턴이 겹치면서 바빠지게 되었다.
그래서 깃허브에 1일 1커밋도 못하게 되었다….
아무튼! 최근에 데이터분석을 하면서 데이터의 신빙성(?)에 많은 생각을 하게 되었다.
일단 데이터가 고령자 분들의 데이터이다 보니 편차가 심하다는 특징이 있었다.
그리고 일부 데이터의 경우 측정 방식에 문제가 있어서 잘못된 데이터라고 대표님께 얘기도 들었다.
ARIMA에 학습을 시켰는데, aic score가 높게 나와서 정확도도 상당히 떨어지는 것 같았고…
(모델의 문제라기 보다는 데이터셋의 부족으로 인한 과적합이 원인이 아닐까라는 생각을 해보았다.)
대표님께서는 아직 우리의 능력이 데이터 예측까지 이르지는 못한다고 생각한 것인지,
현재 가진 데이터에 대한 특징을 분석해보라 하셨다.
그리고 데이터에 이상치에 대해서는 어떤 것이 이상치인지 판단을 할 수 있는 도메인 지식이 있어야 하니,
활력 징후 데이터에 대한 부분에 대해 읽어보라고 하셨다.
해결책에 대한 모색
일단 이번주는 데이터에 대한 이상치를 어떻게 판단할 것인지에 대해 생각을 해 보았다.
일단 위의 글을 참고해보면서 예전에 경영통계 시간에 배웠던 Z-score에 대해서 다시 한 번 생각해 볼 수 있었고,
이를 이용해 평균에서 많이 벗어난 값을 이상치로 간주해 데이터 프레임을 편집하는 코드를 작성했다.
# 각 열의 Z-점수 계산
z_scores = (data['수축기혈압'] - data['수축기혈압'].mean()) / data['수축기혈압'].std()
# 이상치 제거를 위한 임계값 설정 (예: Z-점수가 3보다 큰 경우 이상치로 간주)
threshold = 3
# 임계값을 초과하는 Z-점수를 가지는 행 제거
cleaned_data = data[data['수축기혈압'] & (np.abs(z_scores) < threshold)]
이렇게 데이터 프레임을 편집하니, 정규분포 그래프를 그렸을 때 좌우가 대칭에 가까운 데이터셋으로 변환이 되었다.
추가 과제
대표님께서 금요일에 과제 비슷한 것을 내주셨는데, 바로 현재 데이터 셋에서 혈압을 중심적으로 판단해서
가장 평균치가 낮은 남성, 여성 고령자를 3명씩 리스트를 추출해 특징을 분석해오라는 과제였다.
다행히 팀원 중 한 분이 금방 보고서 초안을 완성해주셨고, 나는 여기에 그래프 같은 자료를 조금 첨부해드리는 도움을 드렸다.
보고서에는 각 고령자 분들의 특이사항 데이터와 호흡, 혈당 등의 데이터를 추가적으로 넣어서
다양한 각도로 분석할 수 있는 근거와 레퍼런스를 첨부했다.
다음주도 잘 지나가기를 바란다….