17 Thu

TIL

프로그래머스 AI 스쿨 1기

3주차 DAY 4

4. Exploratory Data Analysis

탐색적 데이터 분석을 통해 데이터를 통달해봅시다. with Titanic Data

  1. 라이브러리 준비

  2. 분석의 목적과 변수 확인

  3. 데이터 전체적으로 살펴보기

  4. 데이터의 개별 속성 파악하기

방법론에 집중하다보면 데이터의 본질적 의미를 훼손하거나 망각할 수 있음 EDA는 데이터 그 자체만으로 인사이트를 얻어내는 접근법!

Titanic : Machine Learning from Disaster

  • EDA 관점에서 좋은 데이터

1. 분석의 목적과 변수 확인

I. 분석의 목적 확인

  • 살아남은 사람들은 어떤 특징을 가지고 있었을까?

II. 변수 확인

  • 변수는 총 10개

  • Variable : col name

  • Definition : col information

  • Key : encoding

survival : 1 생존, 0 사망 pclass : ticket class sex : sex age : age in years and fractional(분수) less than 1 and estimated is .5 sibsp : sibling or spouses aboard the titanic parch : parents or children aboard the titanic ticket : ticket number fare : fare cabin : cabin number embarked : port of Embarkation(승선지)

  • C : Cherbourg, Q : Queenstown, S = Southampton

0. 라이브러리 준비

1. 분석의 목적과 변수 확인

  • 타이타닉 호에서 생존한 생존자들은 어떤 사람들일까?

PassengerId

Survived

Pclass

Name

Sex

Age

SibSp

Parch

Ticket

Fare

Cabin

Embarked

0

1

0

3

Braund, Mr. Owen Harris

male

22.0

1

0

A/5 21171

7.2500

NaN

S

1

2

1

1

Cumings, Mrs. John Bradley (Florence Briggs Th...

female

38.0

1

0

PC 17599

71.2833

C85

C

2

3

1

3

Heikkinen, Miss. Laina

female

26.0

0

0

STON/O2. 3101282

7.9250

NaN

S

3

4

1

1

Futrelle, Mrs. Jacques Heath (Lily May Peel)

female

35.0

1

0

113803

53.1000

C123

S

4

5

0

3

Allen, Mr. William Henry

male

35.0

0

0

373450

8.0500

NaN

S

결측치를 메꿔야 할 수도 있고 제거하거나 특정 방법으로 처리해야 할 수도 있음

2. 데이터 전체적으로 살펴보기

  • 데이터간의 상관관계가 있는지

  • NA(결측치)가 없는지

  • DATA SIZE가 적절한지(일반화 가능?)

PassengerId

Survived

Pclass

Age

SibSp

Parch

Fare

count

891.000000

891.000000

891.000000

714.000000

891.000000

891.000000

891.000000

mean

446.000000

0.383838

2.308642

29.699118

0.523008

0.381594

32.204208

std

257.353842

0.486592

0.836071

14.526497

1.102743

0.806057

49.693429

min

1.000000

0.000000

1.000000

0.420000

0.000000

0.000000

0.000000

25%

223.500000

0.000000

2.000000

20.125000

0.000000

0.000000

7.910400

50%

446.000000

0.000000

3.000000

28.000000

0.000000

0.000000

14.454200

75%

668.500000

1.000000

3.000000

38.000000

1.000000

0.000000

31.000000

max

891.000000

1.000000

3.000000

80.000000

8.000000

6.000000

512.329200

passenger id : 큰 의미가 있을까? survived : mean을 보니 생각보다 죽은 사람이 많다 pclass : 큰 의미가 있을까? age : min = 0.42인 아기가 탑승했다 sibsp : max = 8인 대가족이 탑승했다 parch : max = 6인 대가족이 탑승했다 fare : min = 0, max = 512 => mean = 32인데 max = 512이므로 outlier 일 가능성이 크다.(outlier : 데이터 분포도에서 많이 벗어난 데이터)

PassengerId

Survived

Pclass

Age

SibSp

Parch

Fare

PassengerId

1.000000

-0.005007

-0.035144

0.036847

-0.057527

-0.001652

0.012658

Survived

-0.005007

1.000000

-0.338481

-0.077221

-0.035322

0.081629

0.257307

Pclass

-0.035144

-0.338481

1.000000

-0.369226

0.083081

0.018443

-0.549500

Age

0.036847

-0.077221

-0.369226

1.000000

-0.308247

-0.189119

0.096067

SibSp

-0.057527

-0.035322

0.083081

-0.308247

1.000000

0.414838

0.159651

Parch

-0.001652

0.081629

0.018443

-0.189119

0.414838

1.000000

0.216225

Fare

0.012658

0.257307

-0.549500

0.096067

0.159651

0.216225

1.000000

main_diagonal은 항상 1 금액과 등급은 반비례. 등급이 높을수록 생존률이 높지 않을까?

★ Correlation is NOT Causation

상관성 : A up, B up, ... 인과성 : A -> B

3. 데이터의 개별 속성 파악하기

  • 각각의 feature가 무엇인지

  • 특정 데이터가 특정 column에 따라 달라지는 의미

  • 속성이 적절하게 매칭되어 있는가 (속성을 바꿔줄 필요가 있는가)

I. Survived Column

II. Pclass

Survived

Pclass

1

216

2

184

3

491

Survived

Pclass

1

136

2

87

3

119

Survived

Pclass

1

0.629630

2

0.472826

3

0.242363

III.Sex

IV. Age

Remind : 결측치 존재!

Appendix I. Sex + Pclass vs Survived

Apendix II. Age + Pclass

Last updated

Was this helpful?