Machine Learning/파이썬_데이터사이언스

1. 기술통계학 바탕 데이터 이해 [파이썬으로 배우는 데이터 사이언스]

Minwoo 2020. 1. 30.

 

Data-Learning.tistory.com - 머신러닝 오픈소스 무료강좌


 

기술통계학 바탕의 데이터이해 


Contents: 

  1. Raw 데이터 살펴보기

  2. 데이터 차원 살펴보기

  3. 데이터 타입 살펴보기

  4. 클래스(레이블)에 따른 분포도 보기

  5. 기술 통계학을 통한 데이터 요약

  6. Correlation을 통한 데이터 이해

  7. 각 feature의 분포도 skew확인

 


 

 

1. Raw 데이터 살펴보기 

 

  • Head / tail을 통해 가볍게 Raw데이터를 살펴본다. 

 

 

 


 

 

2. 데이터 차원 살펴보기 

 

  • Shape를 통해 테이블 사이즈를 확인하고, 알고리즘 트레이닝 관련하여 compute하기에 데이터의 양이 적절한지 판단한다. 

 

 

 


 

 

3. 데이터 타입 살펴보기 

 

  • dtypes 를 통해서 전체적인 타입들을 살펴본다.  

 

 

 


 

 

 4. 클래스(레이블)에 따른 분포도 살펴보기 

 

  • Classification (분류) 문제 에서 우리는 얼마나 데이터가 balanced한지 확인해야 한다. 각각의 클래스(레이블)에 따른 사이즈를 확인한다. 

       · df.groupby('label').size() 

 

  • Imbalanced 한 데이터라면 상황에 따라서 over/under-sampling해줌으로써, 데이터를 balanced하게 만드는 방법도 있다. 

 

 

 

 


 

 

5. 기술 통계학을 통한 데이터 요약하기 

 

  • Describe를 통해 아래의 value들을 살펴봄으로써 데이터를 이해하자. 

 

  · Count

  · Mean

  · Std 

  · Quantile ( 25th/ 50th(Median) / 75th )

  · Max / Min

  · pd. set_option('display.width',100)

  · pd. set_option('precision',3)

    → pd 옵션 설정을 통해 …(다 보여지지 않은 데이터) 들을 살펴 볼 수 있다. 

 

 

 


 

 

 6. Correlation 을 통한 데이터 관계 이해하기 

 

  • Correlation 은 두 변수 간의 상관 관계이다. 
  • Pearson's correlation coefficient는 데이터가 normal distribution의 형태를 가진다고 가정한다. 

        · Cosign correlation. 

 

 

 


 

 

7. 각 feature의 분포도에 대한 skew 확인하기 

 

  • Skew 는 우리가 데이터의 분포가 가우시안(normal)의 형태를 띈다고 가정을 한 후, 거기서 얼만큼 떨어져 있는지 / 한쪽으로 치우쳐 있는지 등을 의미한다. 

 

  • 많은 머신러닝 알고리즘은 가우시안 분포를 가정하기 때문에 skew를 확인함으로써 가우시안 분포를 가지지 않는 분포들을 log나 다른 function을 사용해 가우시안 분포도의 형태를 가지게 만들 수 있다. 

       · df.skew()  →  result -1 to 1. 0에 가까울수록 skew값이 작은 것 을 의미. 

 

 

 

 

 

 


 

Visualization 통한 데이터이해 

 

Contents:

1. Univariate Plots 

    · Histograms

    · Density Plots 

    · Box Plots 

 

2. Multivariate Plots 

    · Correlation Matrix Plots 

    · Scatter Plot Matrix 

 


 

 1. Univariate Plots: 각각의 feature들을 독립적으로 확인해본다. 

 

 

1.1 Histograms 

 

· 데이터에 대한 분포를 확인할 때 좋다. 

 

· Binning 을 사용하여 데이터들을 그룹화 한 후 히스토그램을 확인하는 방법도 있다. 

 

· Bins 의 shape을 통해 가우시안 / skewed / exponential 등 분포도를 확인해 볼 수 있다.

  이것은 가능한 outliers 을 확인 하는 데에 도움을 준다. 

 

· df.hist() 

 

· pyplot.show() 

 


1.2 Desntiry Plots 

 

· Density plot 또한 분포를 확인할 때 좋다. 

 

· 히스토그램에 비해 스무스한 커브를 확인할 수 있다. (more clear) 

df.plot(kind='density', subplots=True, layout=(3,3), sharex=False)
pyplot.show() 

 

 


 

1.3 Box Plots 

 

· Quantile 에 대한 분포에 관하여 확인할 수 있다. 

 

· Outlier에 대해 확인해 볼 수 있다. 

df.plot(kind='box', subplots=True, layout=(3,3), sharex=False, sharey=False) 
pyplot.show() 

 

 


 

2. Multivariate Plots: 멀티 변수들 간의 상호관계에 대해 확인해본다. 

 

 

2.1 Correlation Matrix Plots 

 

2.2 Scatter Plot Matrix 

 

· 두 변수 간의 관계에 대해 점들로 표현한다. 

 

· Diagonal (대각행렬) 은 각각의 attribute에 대해 히스토그램으로 표현된다. 

from pandas.plotting import scatter_matrix 
scatter_matrix(df) 
pyplot.show() 

 

 


 

밑바닥부터 시작하는 데이터 러닝

데이터 사이언스, 머신 러닝 오픈소스 무료 강좌.

data-learning.tistory.com

* 해당 게시물은 첫번째 배너 및 출처를 첨부하면 상업적 용도를 제외하고 사용하실수 있습니다.

 

댓글