2 분 소요

1.1 Data EDA

데이터셋 불러오기

  • 데이터를 분석한다
  • 데이터를 다룬다
  • 데이터로부터 모델링을 한다

데이터셋을 불러오기 위한 단계:

  • 1. Description을 통해 데이터셋에 대한 정보를 파악합니다.
    • 행과 열의 수
    • 열에 헤더가 있는지 (or “데이터 이름”이 있는지?)
    • 결측 데이터 (Missing data)가 있는지 확인
    • 원본의 형태를 확인하기 : 여러분이 기대하던 형태가 아닐 수도 있다.
  • pandas.read_csv()를 사용하여 데이터셋 불러오기를 시도하고, 오류가 있다면 원인에 대해 조사하기
    • 원본 데이터셋에 따라서 때로는 행의 헤더 부분을 직접 입력해야 할 수도 있다.
import pandas as pd # pandas 모듈을 불러온다.
df = pd.read_csv("#.csv") # #에 내가 원하는 데이터의 이름을 입력한다.
df.head() # df는 dataframe의 줄임말로 변수로 자주 사용한다.. 다른 값을 사용해도 무방하다.

데이터 이름을 설정 후에 불러오기

data_url = (#.csv) # 여기서의 #은 csv의 이름에 따라 다르다. url이면 주소가,csv면 파일명이 들어간다고 생각하면 편하다.

column_headers = ['분기', '매출액', '영업이익'] # 이외에 내가 필요로 하는 column값을 입력

df = pd.read_csv(data_url, names = column_headers) # name에 내가 넣을 헤더를 설정한다.

df.head()
print(df.shape)

로컬 파일로부터 데이터셋 불러오기

from google.colab import files
uploaded = files.upload()

EDA (Exploratory Data Analysis)

  • EDA를 간단하게 설명하면
    • 생선에 가시는 있는가?
    • 생선이 지느러미가 있는가?
    • 먹을 수 있는 생선인가?
    • 회로 먹을 수 있는건가?

EDA는 데이터 분석에 있어서 매우 중요한 초기 분석의 단계를 의미한다.

  • 시각화 같은 도구를 통해서 패턴을 발견
  • 데이터의 특이성을 확인
  • 통계와 그래픽 (혹은 시각적 표현)을 통해서 가설을 검정하는 과정
  • EDA의 방법 2가지
    • Graphic : 차트 혹은 그림 등을 이용하여 데이터를 확인하는 방법
    • Non-Graphic : 그래픽적인 요소를 사용하지 않는 방법, 주로 Summary Statistics를 통해 데이터를 확인하는 방법
    • EDA의 데이터 2가지
      • Univariate
      • Multi-variate

Uni - Non Graphic

Sample Data의 Distribution을 확인하는 것이 주 목적이다.

Numeric data의 경우 summary statistics를 제일 많이 활용한다.

  • Center (Mean, Median, Mod)
  • Spread (Variance, SD, IQR, Range)
  • Modality (Peak)
  • Shape (Tail, Skewness, Kurtosis)
  • Outliers 등을 확인합니다.

Uni - Graphic

Histogram 혹은 Pie chart, Stem-leaf plot, Boxplot, QQplot 등을 사용한다.

값들이 너무 다양하다면, Binning, Tabulation등을 활용할 수 있다.

QQPlot

데이터의 분포와 이론상 분포가 잘 일치하는가 를 확인할 수 있는 방법이다.

ex) 성적 분포가 고를 것이다.

  • A반 : 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
  • B반 : 10, 15, 20, 75, 80, 85, 90, 95, 95, 100

QQPlot

Multi - Non Graphic

  • Relationship을 보는 것이 주된 목표
  • Cross-Tabulation
  • Cross-Statistics (Correlation, Covariance)

Multi - Graphic

  • Category & Numeric : Boxplots, Stacked bar, Parallel Coordinate, Heatmap

Pandas를 사용한 기초 EDA

Useful Pandas Functions

  • Missing Data
    • isna
    • isnull
    • notna
    • notnull
    • dropna
    • fillna
  • Data Frame
    • index
    • columns
    • dtypes
    • info
    • select_dtypes
    • loc
    • iloc
    • insert
    • head
    • tail
    • apply
    • aggregate
    • drop
    • rename
    • replace
    • nsmallest
    • nlargest
    • sort_values
    • sort_index
    • value_counts
    • describe
    • shape
  • Vis
    • plot
    • plot.area
    • plot.bar
    • plot.barh
    • plot.box
    • plot.density
    • plot.hexbin
    • plot.hist
    • plot.kde
    • plot.line
    • plot.pie
    • plot.scatter

Properties of Histograms

  1. Quantitative of Histogram
    • 양적 데이터(산술 연산을 할 수 있는 숫자 데이터)를 사용한다.
  2. No gaps
    • 막대 사이에 간격이 없다는 점
  3. Bar Width (Bin Size or Class Size)
    • 막대 너비가 일정하다.
  4. Y-Axis correspands to the frequency
    • y축은 주파수에 해당한다.
df['#'].plot.hist()

Scatter Plot

df.plot.scatter('#', '#')

Bar Plot

df['#'].plot.bar()

Horizontal Bar Plot

df['#'].plot.barh()

Missing Values

  • Ignore the tuple (결측치가 있는 데이터 삭제)
  • Manual Fill (수동으로 입력)
  • Global Constant (“Unknown”)
  • Imputation (All mean, Class mean, Inference mean, Regression 등)

Noisy data

Noise란, 큰 방향성에서 벗어난 random error 혹은 variance를 포함하는 데이터를 말하며

대부분 descriptive statistics 혹은 visualization등 (eda)을 통해 제거가 가능합니다.

Etc

  • Binning

  • Regression
  • Outlier analysis

Integration

  • 여러개로 나누어져 있는 데이터들을 분석하기 편하게 하나로 합치는 과정을 의미
  • merge

Transformation

  • 데이터의 형태를 변환하는 작업으로, scaling이라고 부르기도 한다.
  • nomalize

Reduction

  • 데이터를 의미있게 줄이는 것을 의미하며, dimension reduction과 유사한 목적을 갖는다.
  • pca