Data Visualisation

KDX Competition Guideline

개요

  • 본 수업을 듣는 수강생들을 위해 간단한 튜토리얼을 만들었다.
  • 대회는 다음과 같다.

/img/programming/2020/10/blog_kdx_guideline/img

1단계 패키지 불러오기

  • 데이터 가공 및 시각화 위주의 패키지를 불러온다.
library(tidyverse) # 데이터 가공 및 시각화
library(readxl) # 엑셀파일 불러오기 패키지 

2단계 데이터 불러오기

  • 데이터가 많아서 순차적으로 진행하도록 한다.
  • 각 데이터에 대한 설명은활용데이터설명(PDF)을 참조한다.

  • 먼저 제 개발환경은 아래와 같다.
    • Note: 윈도우와 Mac은 다를 수 있음을 명심하자.
sessionInfo()
## R version 4.0.2 (2020-06-22)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Catalina 10.15.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] readxl_1.3.1    forcats_0.5.0   stringr_1.4.0   dplyr_1.0.0    
##  [5] purrr_0.3.4     readr_1.3.1     tidyr_1.1.0     tibble_3.0.3   
##  [9] ggplot2_3.3.2   tidyverse_1.3.0
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.5       cellranger_1.1.0 pillar_1.4.6     compiler_4.0.2  
##  [5] dbplyr_1.4.4     tools_4.0.2      digest_0.6.25    lubridate_1.7.9 
##  [9] jsonlite_1.7.0   evaluate_0.14    lifecycle_0.2.0  gtable_0.3.0    
## [13] pkgconfig_2.0.3  rlang_0.4.7      reprex_0.3.0     cli_2.0.2       
## [17] rstudioapi_0.11  DBI_1.1.0        yaml_2.2.1       haven_2.3.1     
## [21] xfun_0.16        withr_2.3.0      xml2_1.3.2       httr_1.4.2      
## [25] knitr_1.29       fs_1.5.0         hms_0.5.3        generics_0.0.2  
## [29] vctrs_0.3.2      grid_4.0.2       tidyselect_1.1.0 glue_1.4.1      
## [33] R6_2.4.1         fansi_0.4.1      rmarkdown_2.3    modelr_0.1.8    
## [37] blob_1.2.1       magrittr_1.5     backports_1.1.8  scales_1.1.1    
## [41] ellipsis_0.3.1   htmltools_0.5.0  rvest_0.3.6      assertthat_0.2.1
## [45] colorspace_1.4-1 stringi_1.4.6    munsell_0.5.0    broom_0.7.0     
## [49] crayon_1.3.4

(1) 삼성카드 데이터

  • 우선 삼성카드 데이터를 불러와서 확인한다.
  • 한글 파일은 인코딩이 늘 항상 문제다.
    • 파일을 불러오기 전 항상 파일 인코딩을 확인하도록 한다.
readr::guess_encoding("data/Samsungcard.csv", n_max = 100)
## # A tibble: 2 x 2
##   encoding confidence
##   <chr>         <dbl>
## 1 EUC-KR         1   
## 2 GB18030        0.62
  • Encoding 확인 결과 EUC-KR로 확인하였다.
samsung_card <- read_xlsx("data/Samsungcard.xlsx")
samsung_card2 <- read.csv("data/Samsungcard.csv", fileEncoding = "EUC-KR")
  • 위 두 파일이 동일한 것을 확인해본다
head(samsung_card)
## # A tibble: 6 x 5
##   소비일자 소비업종  성별  연령대 소비건수
##      <dbl> <chr>     <chr> <chr>     <dbl>
## 1 20190101 가전/가구 남성  20대       5529
## 2 20190101 가전/가구 남성  30대      17536
## 3 20190101 가전/가구 남성  40대      22838
## 4 20190101 가전/가구 남성  50대      15801
## 5 20190101 가전/가구 남성  60대       6772
## 6 20190101 가전/가구 여성  20대       5937
head(samsung_card2)
##   소비일자  소비업종 성별 연령대 소비건수
## 1 20190101 가전/가구 남성   20대     5529
## 2 20190101 가전/가구 남성   30대    17536
## 3 20190101 가전/가구 남성   40대    22838
## 4 20190101 가전/가구 남성   50대    15801
## 5 20190101 가전/가구 남성   60대     6772
## 6 20190101 가전/가구 여성   20대     5937
  • 두 파일이 동일한 것을 확인하였다면 이제 samsung_card2는 삭제를 한다.
    • RAM을 아껴 쓰자.
rm(samsung_card2) # 객체 지우는 함수
ls() # 현재 저장된 객체 확인하는 함수
## [1] "samsung_card"

(2) 신한카드 데이터

  • 이번에는 ShinhanCard.xslx 데이터를 불러온다.
shinhancard <- read_xlsx("data/Shinhancard.xlsx")
head(shinhancard)
## # A tibble: 6 x 8
##   일별    성별  연령대별 업종               `카드이용건수(천건)`… ...6  ...7   ...8
##   <chr>   <chr> <chr>    <chr>                           <dbl> <lgl> <lgl> <dbl>
## 1 201901… F     20대     M001_한식                       299.  NA    NA       10
## 2 201901… F     20대     M002_일식/중식/양식…               88.3 NA    NA       NA
## 3 201901… F     20대     M003_제과/커피/패스트푸드…              291.  NA    NA       NA
## 4 201901… F     20대     M004_기타요식                   446.  NA    NA       NA
## 5 201901… F     20대     M005_유흥                        24.2 NA    NA       NA
## 6 201901… F     20대     M006_백화점                      35.3 NA    NA       NA
  • 위 데이터를 불러오니 불필요한 6:8 변수가 불러온 것을 확인할 수 있다.
    • 실제 엑셀 데이터를 열어도 빈값임을 확인할 수 있다.
    • 따라서, 6:8 변수는 삭제한다.
shinhancard <- shinhancard %>% 
  select(-c(6:8))

head(shinhancard)
## # A tibble: 6 x 5
##   일별     성별  연령대별 업종                      `카드이용건수(천건)`
##   <chr>    <chr> <chr>    <chr>                                    <dbl>
## 1 20190101 F     20대     M001_한식                                299. 
## 2 20190101 F     20대     M002_일식/중식/양식                       88.3
## 3 20190101 F     20대     M003_제과/커피/패스트푸드                291. 
## 4 20190101 F     20대     M004_기타요식                            446. 
## 5 20190101 F     20대     M005_유흥                                 24.2
## 6 20190101 F     20대     M006_백화점                               35.3

(3) 지인플러스

  • 지인플러스는 아파트시세(GIN00009A)와 아파트 거래량(GIN00008B)을 담은 코드이다.
gin_8a <- read_csv("data/GIN00008A.csv")
gin_9a <- read_csv("data/GIN00009A.csv")
  • 위 두개의 데이터를 확인해본다.
glimpse(gin_8a)
## Rows: 937,904
## Columns: 9
## $ ym             <dbl> 200601, 200602, 200603, 200604, 200605, 200606, 200607…
## $ area_lvl_scor  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ lgdng_cd       <chr> "0000000000", "0000000000", "0000000000", "0000000000"…
## $ trd_cont       <dbl> 23357, 38617, 52241, 44253, 41916, 30257, 28613, 37362…
## $ avg_trd_cont   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ trd_deal_rat   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ mtrnt_cont     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ avg_mtrnt_cont <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ mtrnt_deal_rat <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
glimpse(gin_9a)
## Rows: 785,805
## Columns: 4
## $ lgdng_cd <dbl> 1.1e+09, 1.1e+09, 1.1e+09, 1.1e+09, 1.1e+09, 1.1e+09, 1.1e+0…
## $ std_date <date> 2006-01-21, 2006-02-21, 2006-03-21, 2006-04-21, 2006-05-21,…
## $ trd_prc  <dbl> 1289, 1271, 1291, 1307, 1321, 1335, 1357, 1381, 1411, 1444, …
## $ ldpb_prc <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …

(4) JSON 파일 불러오기

  • JSON 파일 불러올 때에는 jsonlite 패키지를 활용한다.
library(jsonlite)
GIN_10m <- fromJSON("data/center_GIN00010M.json")
glimpse(GIN_10m)
## Rows: 20,572
## Columns: 8
## $ AREA_LVL_SCOR <int> 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3…
## $ LGDNG_CD      <chr> "1100000000", "1111000000", "1111010100", "1111010200",…
## $ CTPV_NM       <chr> "서울특별시", "서울특별시", "서울특별시", "서울특별시", "서울특별시", "서울특별시", "…
## $ CTGG_NM       <chr> NA, "종로구", "종로구", "종로구", "종로구", "종로구", "종로구", "종로구", "종…
## $ EMD_NM        <chr> NA, NA, "청운동", "신교동", "궁정동", "효자동", "창성동", "통의동", "적선동"…
## $ LA            <dbl> 37.52934, 37.58586, 37.58920, 37.58449, 37.58468, 37.58…
## $ LNGT          <dbl> 126.9515, 126.9775, 126.9693, 126.9679, 126.9731, 126.9…
## $ PYN_CN        <chr> "{\"type\": \"Polygon\", \"coordinates\": [[[126.979658…
  • PYN_CN의 값이 조금 다른 것을 확인할 수 있다.
    • 이 부분은 추후 전처리할 때 정리하는 것으로 확인한다.

(5) SSC_Data

  • 이번에는 Mcorporation내 폴더 데이터를 올리도록 한다.
  • 이번에 파일을 불러올 때는 readr::read_csv()를 활용하여 불러온다.
readr::guess_encoding("data/Mcorporation/KDX시각화경진대회_SSC_DATA.csv")
## # A tibble: 2 x 2
##   encoding confidence
##   <chr>         <dbl>
## 1 EUC-KR         1   
## 2 GB18030        0.76
ssc_data <- read_csv("data/Mcorporation/KDX시각화경진대회_SSC_DATA.csv", locale = locale("ko", encoding = "EUC-KR"))
glimpse(ssc_data)
## Rows: 76,580
## Columns: 5
## $ 소비일자 <dbl> 20190101, 20190101, 20190101, 20190101, 20190101, 20190101, 2019…
## $ 소비업종 <chr> "가전/가구", "가전/가구", "가전/가구", "가전/가구", "가전/가구", "가전/가구", "가전/가구", "…
## $ 성별     <chr> "남성", "남성", "남성", "남성", "남성", "여성", "여성", "여성", "여성", "여성", "남…
## $ 연령대   <chr> "20대", "30대", "40대", "50대", "60대", "20대", "30대", "40대", "50대", …
## $ 소비건수 <dbl> 5529, 17536, 22838, 15801, 6772, 5937, 12895, 16896, 14025, 5909…

(6) 다중 엑셀파일 불러오기 예제

  • 상품 카데고리 데이터_KDX 시각화 폴더 내 엑셀 데이터를 확인해본다.
list.files(path = "data/Mcorporation/상품 카테고리 데이터_KDX 시각화 경진대회 Only/")
##  [1] "PC사무기기.xlsx"             "TV홈시어터.xlsx"            
##  [3] "가공식품.xlsx"               "가방지갑잡화.xlsx"          
##  [5] "건강관련용품.xlsx"           "건강식품.xlsx"              
##  [7] "계절가전.xlsx"               "골프용품.xlsx"              
##  [9] "공구류.xlsx"                 "구기.xlsx"                  
## [11] "국내외여행.xlsx"             "기타 스포츠.xlsx"           
## [13] "낚시.xlsx"                   "남성의류.xlsx"              
## [15] "노트북.xlsx"                 "농축수산물.xlsx"            
## [17] "도서음반DVD.xlsx"            "등산용품.xlsx"              
## [19] "메이크업.xlsx"               "문구사무용품.xlsx"          
## [21] "미용가전.xlsx"               "반려동물.xlsx"              
## [23] "생활가구.xlsx"               "생활가전.xlsx"              
## [25] "생활용품.xlsx"               "서비스티켓.xlsx"            
## [27] "성인용품.xlsx"               "세탁청소세면.xlsx"          
## [29] "수납가구.xlsx"               "수납용품.xlsx"              
## [31] "수영.xlsx"                   "스키보드.xlsx"              
## [33] "스킨케어.xlsx"               "스포츠의류.xlsx"            
## [35] "신발.xlsx"                   "악세서리시계주얼리.xlsx"    
## [37] "안전용품.xlsx"               "언더웨어.xlsx"              
## [39] "업소위생용품.xlsx"           "여성의류.xlsx"              
## [41] "완구키덜트게임.xlsx"         "욕실가전.xlsx"              
## [43] "욕실용품.xlsx"               "유아용품.xlsx"              
## [45] "유아패션.xlsx"               "음료.xlsx"                  
## [47] "음향가전.xlsx"               "인테리어용품.xlsx"          
## [49] "자동차용품.xlsx"             "자전거사이클보드인라인.xlsx"
## [51] "주방가전.xlsx"               "주방수납잡화.xlsx"          
## [53] "주방식기용기.xlsx"           "주방조리기구.xlsx"          
## [55] "출산임부용품.xlsx"           "취미악기.xlsx"              
## [57] "침실가구.xlsx"               "침실인테리어.xlsx"          
## [59] "카메라캠코더.xlsx"           "캠핑용품.xlsx"              
## [61] "테마의류.xlsx"               "헤어바디용품.xlsx"          
## [63] "헬스기구용품.xlsx"           "휴대폰악세서리.xlsx"
  • 몇가지 파일을 열어본다.
  • 엑셀 데이터의 변수 등이 동일한 것을 확인할 수 있다.
  • 이제 위 데이터를 한꺼번에 불러와서 하나의 데이터셋으로 합친다.
  • 검색키워드 Multiple Excel Files import in R
files <- list.files(path = "data/Mcorporation/상품 카테고리 데이터_KDX 시각화 경진대회 Only/", pattern = "*.xlsx", full.names = T)

products <- sapply(files, read_excel, simplify=FALSE) %>% 
  bind_rows(.id = "id") %>% 
  select(-id)

glimpse(products)
## Rows: 1,837,833
## Columns: 7
## $ 구매날짜   <dbl> 20190101, 20190101, 20190101, 20190101, 20190101, 20190101, 20…
## $ 카테고리명 <chr> "PC/사무기기", "PC/사무기기", "PC/사무기기", "PC/사무기기", "PC/사무기기", "PC/사무기기…
## $ 고객성별   <chr> "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F…
## $ 고객나이   <dbl> 10, 10, 10, 10, 20, 20, 20, 20, 30, 30, 30, 30, 40, 40, 40, 40…
## $ OS유형     <chr> "IOS", "WINDOWS", "안드로이드", "없음", "IOS", "WINDOWS", "안드로이드", …
## $ 구매금액   <dbl> 352443, 84000, 80870, 3700, 27714776, 11414514, 21223319, 4832…
## $ 구매수     <dbl> 13, 1, 8, 1, 381, 60, 252, 41, 240, 75, 423, 19, 58, 110, 436…

3단계 데이터 시각화

  • 먼저, 데이터 저장 용량을 고려하여 products 데이터셋을 제외하고 나머지는 모두 삭제한다.
  • 데이터 시각화는 변수의 종류에 따른 시각화를 구현한 것이다.
  • 시각화 참조자료는 다음에서 작성이 가능하다.
  • 아래 샘플은 필자가 공부하는 형태를 구현한 것이다. 참조하기를 바란다.

(1) 수치형 변수 ~ 수치형 변수

  • 수치형 변수 ~ 수치형 변수 시각화의 대표적인 기법은 산점도(scatter) 또는 correlation이라 부른다.
    • scatter 시각화를 구현한다.
# load package and data
library(ggplot2)
data(mpg, package="ggplot2")
# mpg <- read.csv("http://goo.gl/uEeRGu")

# Scatterplot
theme_set(theme_bw())  # pre-set the bw theme.
g <- ggplot(mpg, aes(cty, hwy))
g + geom_count(col="tomato3", show.legend=F) +
  labs(subtitle="mpg: city vs highway mileage", 
       y="hwy", 
       x="cty", 
       title="Counts Plot")

(파이썬-Matplotlib) 시각화 튜토리얼 - 히트맵

강의 홍보

히트맵 그래프

히트 맵(heat map)은 열을 뜻하는 히트(heat)와 지도를 뜻하는 맵(map)을 결합시킨 단어로, 다양한 강도로 다양한 색상으로 데이터 범위를 시각화하는 데 사용된다. 여기서는 상관 행렬을 열 지도로 표시하는 예를 들 수 있다. 상관 행렬의 요소는 두 변수 사이의 선형 관계의 강도를 나타내며, 행렬에는 주어진 데이터에 포함된 속성의 모든 조합에 대한 그러한 값이 포함되어 있다. 데이터에 5개의 속성이 있는 경우 상관 행렬은 5 x 5 행렬이 된다.

(파이썬-Matplotlib) 시각화 튜토리얼 - 박스플롯

강의 홍보

박스플롯 그래프

박스플롯(Box Plot) 그래프는 범주형 데이터 기준으로 수치형 데이터의 분포를 파악하는데 적합하다.

박스플롯을 보면, 최소값, 1분위값, 중간값, 3분위값, 최대값을 제공한다.

(1) 라이브러리 불러오기

필요한 모듈을 불러온다.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

(2) 데이터 생성

이번에는 seaborn 패키지 내 iris 데이터를 활용한다.

(파이썬-Matplotlib) 시각화 튜토리얼 - 히스토그램

강의 홍보

히스토그램

히스토그램 그래프는 연속형 변수의 분포를 그리는 데 사용된다. 연속형 변수 값은 필요한 빈(=bin) 수로 분활되어 x축에 표시되며, 각 빈에 포함되는 값의 카운트는 y축에 표시된다. y축에는 카운트 대신 총량의 백분율을 표시할 수 있으며, 이 경우 확률 분포를 나타내며, 이러한 그래프는 통계 분석에 사용된다.

Seaborn Visualisation Tutorial - Basic

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

시각화 기본적 원리

  1. 비교, 대조, 차이를 드러내라.
  2. 인과관계와 상관관계를 보여라.
  3. 한 도표에 여러 변수를 보여라.
  4. 텍스트, 숫자, 이미지, 그래프 같은 데이터들을 한 곳에 통합하라.
  5. 사용된 데이터의 출처를 그래프 안이나 각주로 밝혀라.
  6. 의미 있는 내용을 담아라.

데이터 변수 종류에 따른 시각화의 종류

  • 시각화는 그냥 그리는 것이 아니다. 변수의 종류에 따른 기법이 존재한다.
    • 다만, Python & R의 방법론의 차이가 있을 뿐이다.
  • 원리를 알면, 다음은 검색 및 연습을 통해 다듬어진다.

ch05 - Log Scale Visualisation

공지

  • 본 포스트를 읽고 가급적 전체 내용 숙지를 위해 구매하는 것을 권유한다.

개요

  • 수치형 자료를 Y축으로 놓는 그래프는 언제나 힘들었다.
  • log Scale을 통해 값의 크기를 줄이기는 하지만, Y축을 어떻게 표현하는 것이 좋을지에 대한 고민은 늘 있어왔다.
  • 시각화 이론 중심의 포스팅이기에 코드 리뷰 및 해석은 생략한다.

문제점

  • log Scale을 적용했을 때와 그렇지 않을 때의 그래프를 비교해본다.

(1) 패키지 불러오기

  • 각각의 패키지를 불러온다.
  • 이 때, 데이터는 dviz.supp 저자인 Claus O. WilkeGithub Repo에서 가져와야 한다.
    • 경고: 이 부분이 초급자 분들에게는 쉽지가 않다.
  • 우선, 사전에 설치해야 할 패키지가 존재한다.
  • 현재 필자 개발환경 Spec은 다음과 같다.
> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.6
  • 아래는 추가적으로 설치한 파일이다.
install.packages("devtools")

devtools::install_github("wilkelab/cowplot")
library(cowplot)

install.packages("colorspace")
library(colorspace)

devtools::install_github("clauswilke/colorblindr")
library(colorblindr)

devtools::install_github("clauswilke/dviz.supp")
library(dviz.supp)
  • 위 패키지들을 설치하는데 꽤 시간이 걸렸다.
library(lubridate) # 날짜 관련 패키지
library(forcats)   # 시계열 관련 패키지
library(tidyr)     # 데이터 핸들링 패키지
library(ggrepel)   # 시각화 관련 패키지
library(dviz.supp) # 저자의 개인 Repo 패키지: 교재 있는 데이터 활용 및 그래프를 구현하려면 필수적으로 설치 되어야 함.
library(kableExtra) # 데이터 출력 Table을 HTML로 변환하기 위한 패키지 

(2) 데이터 확인

  • 데이터는 US_Census 데이터를 기반으로 한다.
    • 자료 출처: 2010년도 미국 10개년 인구조사
  • 주의: 한글 폰트는 일단 생략했다.

소스코드 참조: https://github.com/clauswilke/dataviz/blob/master/coordinate_systems_axes.Rmd

EDA with Housing Price Prediction - Handling Categorical Variables

강의 홍보

I. 개요

  • 이제 본격적으로 Kaggle 데이터를 활용하여 분석을 진행한다.
  • 데이터는 이미 다운 받은 상태를 전제로 하며, 만약에 데이터가 없다면 이전 포스팅에서 절차를 확인하기 바란다. (미리보기 가능)

II. 구글 드라이브 연동

  • 구글 코랩을 시작하면 언제든지 가장 먼저 해야 하는 것은 드라이브 연동이다.
from google.colab import drive # 패키지 불러오기 
from os.path import join  

ROOT = "/content/drive"     # 드라이브 기본 경로
print(ROOT)                 # print content of ROOT (Optional)
drive.mount(ROOT)           # 드라이브 기본 경로 Mount

MY_GOOGLE_DRIVE_PATH = 'My Drive/Colab Notebooks/inflearn_kaggle/' # 프로젝트 경로
PROJECT_PATH = join(ROOT, MY_GOOGLE_DRIVE_PATH) # 프로젝트 경로
print(PROJECT_PATH)
/content/drive
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly

Enter your authorization code:
··········
Mounted at /content/drive
/content/drive/My Drive/Colab Notebooks/inflearn_kaggle/
%cd "{PROJECT_PATH}"
/content/drive/My Drive/Colab Notebooks/inflearn_kaggle
  • 위 코드가 에러 없이 돌아간다면 이제 데이터를 불러올 차례다.
!ls
data  docs  source
  • 필자는 inflearn_kaggle 폴더안에 data, docs, source 등의 하위 폴더를 추가로 만들었다.
  • 즉, data 안에 다운로드 받은 파일이 있을 것이다.

III. 캐글 데이터 수집 및 EDA

  • 우선 데이터를 수집하기에 앞서서 EDA에 관한 필수 패키지를 설치하자.
import pandas as pd
import pandas_profiling
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
import seaborn as sns

from IPython.core.display import display, HTML
from pandas_profiling import ProfileReport
/usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
  import pandas.util.testing as tm
%matplotlib inline
import matplotlib.pylab as plt

plt.rcParams["figure.figsize"] = (14,4)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.color'] = 'r'
plt.rcParams['axes.grid'] = True 

(1) 데이터 수집

  • 지난 시간에 받은 데이터가 총 4개임을 확인했다.
    • data_description.txt
    • sample_submission.csv
    • test.csv
    • train.csv
  • 여기에서는 우선 test.csv & train.csv 파일을 받도록 한다.
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
print("data import is done")
data import is done

(2) 데이터 확인

  • Kaggle 데이터를 불러오면 우선 확인해야 하는 것은 데이터셋의 크기다.
    • 변수의 갯수
    • Numeric 변수 & Categorical 변수의 개수 등을 파악해야 한다.
  • Point 1 - train데이터에서 굳이 훈련데이터와 테스트 데이터를 구분할 필요는 없다.
    • 보통 Kaggle에서는 테스트 데이터를 주기적으로 업데이트 해준다.
  • Point 2 - 보통 test 데이터의 변수의 개수가 하나 더 작다.
train.shape, test.shape
((1460, 81), (1459, 80))
  • 그 후 train데이터의 상위 5개의 데이터만 확인한다.
display(train.head())
Id MSSubClass MSZoning LotFrontage LotArea Street Alley LotShape LandContour Utilities LotConfig LandSlope Neighborhood Condition1 Condition2 BldgType HouseStyle OverallQual OverallCond YearBuilt YearRemodAdd RoofStyle RoofMatl Exterior1st Exterior2nd MasVnrType MasVnrArea ExterQual ExterCond Foundation BsmtQual BsmtCond BsmtExposure BsmtFinType1 BsmtFinSF1 BsmtFinType2 BsmtFinSF2 BsmtUnfSF TotalBsmtSF Heating ... CentralAir Electrical 1stFlrSF 2ndFlrSF LowQualFinSF GrLivArea BsmtFullBath BsmtHalfBath FullBath HalfBath BedroomAbvGr KitchenAbvGr KitchenQual TotRmsAbvGrd Functional Fireplaces FireplaceQu GarageType GarageYrBlt GarageFinish GarageCars GarageArea GarageQual GarageCond PavedDrive WoodDeckSF OpenPorchSF EnclosedPorch 3SsnPorch ScreenPorch PoolArea PoolQC Fence MiscFeature MiscVal MoSold YrSold SaleType SaleCondition SalePrice
0 1 60 RL 65.0 8450 Pave NaN Reg Lvl AllPub Inside Gtl CollgCr Norm Norm 1Fam 2Story 7 5 2003 2003 Gable CompShg VinylSd VinylSd BrkFace 196.0 Gd TA PConc Gd TA No GLQ 706 Unf 0 150 856 GasA ... Y SBrkr 856 854 0 1710 1 0 2 1 3 1 Gd 8 Typ 0 NaN Attchd 2003.0 RFn 2 548 TA TA Y 0 61 0 0 0 0 NaN NaN NaN 0 2 2008 WD Normal 208500
1 2 20 RL 80.0 9600 Pave NaN Reg Lvl AllPub FR2 Gtl Veenker Feedr Norm 1Fam 1Story 6 8 1976 1976 Gable CompShg MetalSd MetalSd None 0.0 TA TA CBlock Gd TA Gd ALQ 978 Unf 0 284 1262 GasA ... Y SBrkr 1262 0 0 1262 0 1 2 0 3 1 TA 6 Typ 1 TA Attchd 1976.0 RFn 2 460 TA TA Y 298 0 0 0 0 0 NaN NaN NaN 0 5 2007 WD Normal 181500
2 3 60 RL 68.0 11250 Pave NaN IR1 Lvl AllPub Inside Gtl CollgCr Norm Norm 1Fam 2Story 7 5 2001 2002 Gable CompShg VinylSd VinylSd BrkFace 162.0 Gd TA PConc Gd TA Mn GLQ 486 Unf 0 434 920 GasA ... Y SBrkr 920 866 0 1786 1 0 2 1 3 1 Gd 6 Typ 1 TA Attchd 2001.0 RFn 2 608 TA TA Y 0 42 0 0 0 0 NaN NaN NaN 0 9 2008 WD Normal 223500
3 4 70 RL 60.0 9550 Pave NaN IR1 Lvl AllPub Corner Gtl Crawfor Norm Norm 1Fam 2Story 7 5 1915 1970 Gable CompShg Wd Sdng Wd Shng None 0.0 TA TA BrkTil TA Gd No ALQ 216 Unf 0 540 756 GasA ... Y SBrkr 961 756 0 1717 1 0 1 0 3 1 Gd 7 Typ 1 Gd Detchd 1998.0 Unf 3 642 TA TA Y 0 35 272 0 0 0 NaN NaN NaN 0 2 2006 WD Abnorml 140000
4 5 60 RL 84.0 14260 Pave NaN IR1 Lvl AllPub FR2 Gtl NoRidge Norm Norm 1Fam 2Story 8 5 2000 2000 Gable CompShg VinylSd VinylSd BrkFace 350.0 Gd TA PConc Gd TA Av GLQ 655 Unf 0 490 1145 GasA ... Y SBrkr 1145 1053 0 2198 1 0 2 1 4 1 Gd 9 Typ 1 TA Attchd 2000.0 RFn 3 836 TA TA Y 192 84 0 0 0 0 NaN NaN NaN 0 12 2008 WD Normal 250000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1455 1456 60 RL 62.0 7917 Pave NaN Reg Lvl AllPub Inside Gtl Gilbert Norm Norm 1Fam 2Story 6 5 1999 2000 Gable CompShg VinylSd VinylSd None 0.0 TA TA PConc Gd TA No Unf 0 Unf 0 953 953 GasA ... Y SBrkr 953 694 0 1647 0 0 2 1 3 1 TA 7 Typ 1 TA Attchd 1999.0 RFn 2 460 TA TA Y 0 40 0 0 0 0 NaN NaN NaN 0 8 2007 WD Normal 175000
1456 1457 20 RL 85.0 13175 Pave NaN Reg Lvl AllPub Inside Gtl NWAmes Norm Norm 1Fam 1Story 6 6 1978 1988 Gable CompShg Plywood Plywood Stone 119.0 TA TA CBlock Gd TA No ALQ 790 Rec 163 589 1542 GasA ... Y SBrkr 2073 0 0 2073 1 0 2 0 3 1 TA 7 Min1 2 TA Attchd 1978.0 Unf 2 500 TA TA Y 349 0 0 0 0 0 NaN MnPrv NaN 0 2 2010 WD Normal 210000
1457 1458 70 RL 66.0 9042 Pave NaN Reg Lvl AllPub Inside Gtl Crawfor Norm Norm 1Fam 2Story 7 9 1941 2006 Gable CompShg CemntBd CmentBd None 0.0 Ex Gd Stone TA Gd No GLQ 275 Unf 0 877 1152 GasA ... Y SBrkr 1188 1152 0 2340 0 0 2 0 4 1 Gd 9 Typ 2 Gd Attchd 1941.0 RFn 1 252 TA TA Y 0 60 0 0 0 0 NaN GdPrv Shed 2500 5 2010 WD Normal 266500
1458 1459 20 RL 68.0 9717 Pave NaN Reg Lvl AllPub Inside Gtl NAmes Norm Norm 1Fam 1Story 5 6 1950 1996 Hip CompShg MetalSd MetalSd None 0.0 TA TA CBlock TA TA Mn GLQ 49 Rec 1029 0 1078 GasA ... Y FuseA 1078 0 0 1078 1 0 1 0 2 1 Gd 5 Typ 0 NaN Attchd 1950.0 Unf 1 240 TA TA Y 366 0 112 0 0 0 NaN NaN NaN 0 4 2010 WD Normal 142125
1459 1460 20 RL 75.0 9937 Pave NaN Reg Lvl AllPub Inside Gtl Edwards Norm Norm 1Fam 1Story 5 6 1965 1965 Gable CompShg HdBoard HdBoard None 0.0 Gd TA CBlock TA TA No BLQ 830 LwQ 290 136 1256 GasA ... Y SBrkr 1256 0 0 1256 1 0 1 1 3 1 TA 6 Typ 0 NaN Attchd 1965.0 Fin 1 276 TA TA Y 736 68 0 0 0 0 NaN NaN NaN 0 6 2008 WD Normal 147500

1460 rows × 81 columns

EDA with Personal Email - Data Import

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib & Seaborn

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.

Chapter_1_2_Python_visualisation_seaborn

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib & Seaborn

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.

Seaborn 그래는 파이썬 시각화 도구의 고급 버전이다. Matplotlib에 비해 비교적 단순한 인터페이스를 제공하기 때문에 초보자도 어렵지 않게 배울 수 있다.

Chapter_1_1_Python_visualisation_intro

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.

Seaborn 그래는 파이썬 시각화 도구의 고급 버전이다. Matplotlib에 비해 비교적 단순한 인터페이스를 제공하기 때문에 초보자도 어렵지 않게 배울 수 있다.