Brightics

[삼성 SDS Brightics] #4_개인 의료비 예측 프로젝트💊_(전처리는 내가 할게, 코딩은 누가 할래?)

수망 2022. 8. 23. 16:12

하염! Brighics 서포터즈 3기 수망입니다!

오늘은 저번 포스팅에서 시작한

개인 의료비 예측 프로젝트를 이어서 진행해볼텐데요~!

저는 앞서 블로그 헤드 이미지와 같이,

데이터 분석의 시작이자 가장 중요한 ✨KEY POINT✨인 데이터 전처리를 담당했어용!

#데이터전처리#DataCleaning, #DataPreprocessing 이라고도 쓰이면서

#데이터정제 라고도 칭한다는거 다들 아시죠?!

혹시라도 오늘 포스팅을 보고

이게 뭔 내용인지 도통 모르겠다ㅠㅠㅠ 하는 분들이 계시다면,

아래 링크에서 한번 쭉 읽어보고 오시는걸 추천 드릴게용

https://soomang.tistory.com/9

 

[삼성 SDS Brightics] #4_개인 의료비 예측 프로젝트 (그런데 이제 팀플을 곁들인..)

하염! Brighics 서포터즈 3기 수망입니다! 정말 오랜만에 쓰는 하염이네요ㅎㅎㅎㅎㅎ 지난 한달간 팀원들이랑 대회 준비도 하고 회의도 여러번 하느라 ㅎㅎ 정신이 없었어요! 그치만 이번주부터는

soomang.tistory.com


출처 ; tvN 신서유기

도르마무 도르마무 다시 info 보러 와따

ㅋㅋㅋㅋㅋㅋㅋㅋ

데이터 info를 살펴보기 위해서

저번글에서 실행했던 Profile Table을 다시 불러와볼게요!

'Dataset Info'를 보면 결측치 0%, 변수 타입은 수치형 4개/ 범주형 3개였어용ㅎ

하단의 경고창에서 데이터셋에 중복되는 행이 1개 있는걸 알려줬죠!

그럼 이 내용들을 토대로 결측치, 중복값를 처리해볼게요!

1. 결측치 / 중복값 처리

#missingdata #duplicatevalue #결측치처리 #중복값처리

  • 결측치 처리 : 결측치는 0%였으니 처리는 패쓰!

 

  • 중복값 처리

Distinct 함수는 '중복하는 행을 제거'하는 함수입니다!

특정 변수의 조합을 보는 것은 Cross Table도 있는데 세 개 이상의 변수를 입력값을 넣기에는 불편해요ㅠ

근데 Distinct은 변수 개수와 상관없이 중복인 행을 제거해 변수 하나 입력일 경우 고유한 원소만 출력해주고, 두 개 이상의 변수를 입력으로 할 경우 고유한 조합을 출력해주기 때문에 이걸 쓸거에요

바로 적용해볼까요?

전체 columns이 겹치는 행이 존재하기 때문에 Input Columns에 전체 컬럼을 넣어줬구

삭제된 행은 1개임을 output table로 알 수 있죵!

2. 이상치 확인

#이상치확인 은 수치형 변수만 확인해볼게요!

  • Age

[ Chart Type : Histogram, X-axis : age ]

나이는 17세부터 65세까지 분포하고 있는걸 확인할 수 있죠?

120세, 200세 같은 이상한 나이(?)가 없는걸 볼 수 있어용

그래서 age 변수에는 이상치가 없구요!

  • Bmi

[ Chart Type : Histogram, X-axis : bmi ]

Bmi는 15~54까지 분포하고 있어요.

50 이상도 초고도비만으로 분류되어있기 때문에 이상치로 구분하지 않을게요!

그래서 Bmi 변수에도 이상치가 없구요ㅎㅎ

  • Children

[ Chart Type : Column, X-axis : children, Y-axis : Count(children) ]

전체 응답자의 출산경험수를 살펴보면 그 수는 0명에서 5명까지로 이상치가 없구요.

0명이 가장 많음을 알 수 있어요!

  • Charges

[ Chart Type : Line, X-axis : Row Index, Y-axis : charges ]

Line 그래프로 값을 확인하기엔 어려울 것 같아서 table로 확인해볼게요!

Charges를 내림차순/오름차순으로 정렬하니

최소값 1121, 최대값 63770으로 다소 차이가 나는 분포를 보이죠?

 

하지만 다른 변수들과 같이 살펴보았을 때, 의료비가 낮을수록 나이가 어리면서 비흡연자이고,

의료비가 높을수록 나이가 많으면서 흡연자였기 때문에

상관관계가 있다고 판단해 이상치가 없다고 정의하고 진행했어요!

전체 수치형 변수에 대해 살펴보았을 때에도

이상치가 없어서 이상치 처리 없이 다음 파트로 진행해볼게요?!👍🏻


3. Label Encoder

범주형 변수를 수치형으로 #라벨링 하는 #라벨인코딩 #LabelEncoding 을 진행해볼게요

  • Sex

Female=0, male=1로 변경할텐데요!

[ Input Columns : sex, Suffix : _f0m1 ]으로 입력해 열이름을 정의해줄게요.

그럼 output table의 맨 마지막 열에 sex_f0m1 열을 볼 수 있을거예요!

  • Smoker

흡연여부에 해당하는 smoker 열도 같은 방식으로 진행했어요!

[ Input Columns : smoker, Suffix : _y1n0 ]으로 두어

흡연자=1, 비흡연자=0으로 정의했답니당ㅎㅎ

4. One-Hot Encoder

벌써 마지막 파트인 #원핫인코딩 #Onehotencoding입니다!

판다스의 #get_dumies 로 하는 작업과 같은 함수예요!

  • Region

지역은 4개의 값으로 작성되어 있기 때문에 원핫인코딩 사용했어요!!

[ Input Columns : region, Suffix_Type : Label ]을 입력하면

output table의 마지막 열에 regjon_지역명으로 추가된 4개의 열을 볼 수 있답니당~!

그리고 만약에 라벨 인코딩으로 진행한다!! 하면 0,1,2,3으로 각 지역마다 숫자가 부여되겠죵?!

'그럼 region도 Label Encoder 쓰면 안돼?'

라고 질문해주실 수도 있는데,

먼저 답변을 해드리자면 가능합니다!

하지만 저와 팀원들은 binary한 feature 값들로 만들어지는 모델이

더 정확도가 높아지지 않을까?! 생각하여 범주형 변수들은 모두 이진화시켰답니당ㅎㅎㅎ


우왕 이렇게 이번주 포스팅도 마무리가 되었어요!

직접 코딩으로 작성했으면 몇시간이나 걸렸을 작업이지만

#브라이틱스스튜디오 로 작업하니 30분..?도 안 걸린 듯 해요 ㅎㅎㅎㅎㅎㅎ

(이건 뒷 이야기인데여)

(팀원들이랑 역할 분담해서 작업을 하는데, 제가 앞부분을 담당했거덩요?)

(그래서 빨리 해서 넘겨줘야 팀원들이 뒷부분 작업을 할 수 있었어요)

(그래서 저번주에 역할분담 하자마자 바로 작업 30분해서 넘겨줬는데)

(팀원들도 너무 빨리 끝내서 당황했다는 톔아이..)

(우리 담주부터 뭐하냐면숴...ㅋㅋㅋㅋㅋㅋㅋ)

(우리팀원들 다 엄청난 mbti J들...❤)

다음주는 제가 담당한 모델 설명과 함께 성능 평가를 진행해볼텐데요!

어떤 모델을 담당하게 됐는데 벌써 궁금하지 않으신가요(둑흔둑흔)?

그렇다면 다음주 포스팅을 기다려주세욧❤❤

그럼 다음주에 봐요 빠잉~!


(번외)

사실 아직 빠잉 안했음ㅋ(핳)

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

우리 팀원들이 올린 팀프로젝트 2편도 순서대로 링크 달아둘거예요!

저는 제가 담당한 작업만 포스팅했으니,

필요하시다면 팀원들 블로그도 들어가보시는걸 추.천.드릴게요 (반강제)(하투하투)

글은 순서대로 읽으시면 됩니둥ㅎㅎㅎ!!!

올리는건 내가 할게. 읽는건 누가 할래?

출처: 순풍산부인과

 

 

https://blog.naver.com/noonddudung2/222855108856

 

삼성 SDS Brightics_팀 분석 프로젝트(2)] 06. 개인 의료비🏥 예측 프로젝트✨ (피어슨 vs. 스피어만 상

안녕하세요~ 이번 주에는 지난 포스팅에 이어서 팀 분석 관련 내용을 적어보려고 합니다! 지난주 포스팅을 ...

blog.naver.com

 

https://blog.naver.com/beenjune/222856070718

 

[삼성 SDS Brightics 서포터즈] #07_팀 프로젝트_개인 의료비 예측(2)

안녕하세요~! 두 번째 팀 프로젝트로 돌아온 Brightics 서포터즈입니다! 이전 포스팅에서는 데이터 분석 ...

blog.naver.com

https://blog.naver.com/osoomin/222856072049

 

[삼성 SDS Brightics] #4_개인 의료비 예측 프로젝트💊_(2탄. 내 담당은 데이터 전처리!)

하염! Brighics 서포터즈 3기 수망입니다! 오늘은 저번 포스팅에서 시작한 개인 의료비 예측 프로젝트를 ...

blog.naver.com

 

 

https://blog.naver.com/dudtjr4915/222855763188

 

[삼성 SDS Brightics]# 03-2. 팀프로젝트(2) 의료비(보험비) 예측

안녕하세요! 이번에는 저번 주 포스팅에 이어서 팀 프로젝트의 두번째 진행에 대한 포스팅을 가져왔습니다!...

blog.naver.com

 

첫째

 


본 포스팅은 삼성SDS Brightics 서포터즈 3기 활동의 일환으로 작성하였습니다.