홈 PLAY 온라인 지원터수학교육수학영상 자료실 중고등학교
  • 인쇄하기
  • 스크랩

중고등학교

<고등수학, 생각넓힘> 빅데이터 분석2-데이터 전처리과정 게시글 상세정보
<고등수학, 생각넓힘> 빅데이터 분석2-데이터 전처리과정
작성자 융합인재부 이메일
조회 692 등록일 2021/11/17
첨부 빅데이터 분석2-데이터 전처리과정 대본.hwp 빅데이터 분석2-데이터 전처리과정 대본.hwp


<고등수학, 생각넓힘> 빅데이터 분석2-데이터 전처리과정
 
지금부터는 빅데이터분석을 하기 전에 데이터 전 처리과정에 대해 알아보겠습니다.

1. 타이타닉 호 침몰 사건 당시의 사망자와 생존자를 구분하는 요인 분석을 통해, 승객들의 생존 여부를 예측해보겠습니다. 생존여부, 객실등극, 이름, 성별, 나이, 형제와 배우자, 자식과 부모, 티켓, 요금, 선실번호, 탑승한 곳 과 같은 요인들을 분석을 해보겠습니다.

2. 먼저 첨부파일로 올려준 타이타닉 데이터를 살펴보겠습니다.
첫행에는 생존여부, 티켓의 클래스, 성별, 나이, 함께 탑승한 형제와 배우자의 수, 함께 탑승한 부모, 아이의 수, 티켓요금, 티켓 번호, 탑승료, 객실 번호, 탑승항구 등등이 있습니다. 두 번째 행부터는 한 사람의 정보들이 담겨있네요.

3. 다음으로는 데이터 변수 유형을 확인해봅시다.
생존여부는 정수타입으로 되어 있고 생존했으면 1, 죽었으면 0으로 표시되어 있습니다. 티켓의 클래스는 정수타입으로 되어 있고 1이면 퍼스트 클래스, 2는 세컨클래스, 3은 떨드 클래스를 의미합니다. 성별은 남성은 male, 여성은 female로 문자열로 되었습니다. 나이, 함께 탑승한 형제와 배우자의 수, 함께 탑승한 부모, 아이의 수는 정수타입으로 되어 있으며 탑승료는 실수타입으로 되어있습니다. 마지막으로 탑승항구는 지역에 따라 C, Q, S로 되어 있는 문자열타입으로 되어있습니다.

4. 본격적으로 데이터 분석하기 전에 필요한 라이브러리를 불러오겠습니다.
전 강의에서 설명해줬듯이 import 는 라이브러리를 불러들어오고 as는 as뒤에 오는 단어로 라이브러리를 이야기 하겠다는 의미입니다. 첫 번째에 있는 import numpy as np 는 넘파이를 가져오고 넘파이를 np라고 하겠다 라는 의미입니다.

5. 라이브러리를 불렀고 데이터를 불러오겠습니다. 891개의 행과 15개의 열로 구성되었습니다.

6. 데이터 분석을 하기 앞서 저번시간에 배운 데이터 전처리 과정을 해보겠습니다. 우선 데이터의 전체 정보를 살펴보기 위해 data.info()을 입력해서 데이터의 전체 정보를 살펴봅니다.

7.우선 첫 번째로 열의 이름을 출력해봅시다. data.columns survived 와 alive는 둘다 생존여부를, pclass와 class는 둘다 티켓클래스를 . sex와 who는 둘다 성별을 의미하고 있어 중복되고. 또 갑판을 의미하는 deck은 필요없으므로 alive, class, who, deck을 삭제하겠습니다.

8. drop 함수를 이용하여 alive, class, who, deck을 삭제합니다. data를 입력하면 alive, class, who, deck이 삭제 되어 열이 15개에서 11개로 준 것을 알 수 있습니다.

9. columns를 입력하면 4개의 항목이 삭제 되었고 영어로 써져 있는 요인들을 한국어로 바꿔보겠습니다.

10. rename 함수를 이용하여 survived를 생존으로 와같이 분석에 필요한 열 이름들을 바꾸겠습니다. 다시 columns을 입력하면 한국어로 바뀐 열 이름이 나옵니다.

11. 다음으로는 그래프에서 한국어 폰트가 깨지는 오류가 발생하는데 오류를 해결하기 위해서 다음과 같이 입력을 해주면 해결할 수 있습니다.

12. Null데이터가 있는지 matrix 시각화를 통해 알아봅시다. color는 그래프의 색, figsize는 그래프의 크기를 의미합니다. 다음과 같이 입력을 하면 null데이터가 있는 곳에는 빈 곳으로 표시가 됩니다. 나이에서 null데이터가 많이 존재하는 것을 알 수 가 있네요.

13. 이번엔 막대그래프로 알아볼까요? bar 시각화 함수를 이용하면 null데이터 개수를 정확하게 알 수 있습니다. 나이에서 null 데이터는 177개, 탑승항구등급은 2개가 존재하는 것을 알 수 있습니다.

14. 그럼 null데이터를 dropna함수를 이용하여 삭제를 해봅시다. 삭제를 하고 data를 확인하면 행이 712개로 줄어든 것을 알 수 있습니다.

15. 막대그래프를 다시 봐보면 null데이터는 삭제가 되었고 결측치가 없는 712개의 데이터가 존재하는걸 알수 있네요.

16. 또 null데이터가 없는 걸 isnull()함수를 이용해서도 알 수 있습니다. data.isnull()을 입력하면 모든 데이터가 False가 나오는 것 학인할 수 있습니다.

17. null데이터를 찾고 삭제를 하였는데요 이번엔 중복데이터를 찾아보겠습니다. duplicated()함수를 이용하여 중복데이터를 찾아보면 다음과 같이 중복데이터들이 나옵니다.

18. 중복데이터를 찾았으니 삭제를 해줘야겠죠? drop()함수를 이용하여 중복데이터를 삭제해줍니다. data.drop_duplicated(inplace=True)를 입력하고 data를 입력하면 중복데이터가 삭제된 데이터 674개를 확인할 수 있습니다. 여기까지 우리는 데이터 전처리과정을 하였습니다. 다음시간에는 전처리한 데이터를 이용하여 본격적으로 데이터 분석을 하도록 하겠습니다.

지금까지 데이터 전처리과정에 대해 알아보았습니다. 분석을 위한 의미있는 데이터를 만드는 데이터 전처리 과정은 데이터 분석의 80%정도 시간이 걸린다고 합니다. 데이터를 바르게 처리해야 분석 결과도 올바르게 나오겠죠? 자신이 분석하고 싶은 빅데이터를 찾아 데이터 전처리과정을 연습해봅시다. 다음시간에는 타이타닉 데이터 분석에 대해 알아보겠습니다.
다음글 <고등수학, 생각넓힘> 빅데이터 분석3-데이터 분석
이전글 <고등수학, 생각넓힘> 빅데이터 분석1-빅데이터
자료관리 담당자
  • 담당부서 : 융합인재부
  • 담당자 : 김영주
  • 전화번호 : 043-229-1824