Kaggle with R

Page content

강의 홍보

개요

  • R 입문부터 머신러닝까지 가르치게 되었다.
  • 실제 Kaggle 대회 참여 독려를 위해 R에서 Kaggle 데이터를 불러와 머신러닝을 진행하는 것을 기획하였다.
  • pins 패키지를 활용하면 보다 쉽게 할 수 있다.

(1) Kaggle API with R

  • 먼저 [Kaggle]에 회원 가입을 한다.
  • 회원 가입 진행 후, Kaggle에서 kaggle.json 파일을 다운로드 받는다.

  • 그리고 아래와 같이 kaggle.jsonRStudio에 등록한다.
# install.packages("pins")
library(pins)
board_register_kaggle(token = "your/path/folder/kaggle.json")
  • pins는 일종의 cache를 이용한 자원 관리 패키지이다.

    • 원어: Pin remote resources into a local cache to work offline, improve speed and avoid recomputing; discover and share resources in local folders, ‘GitHub’, ‘Kaggle’ or ‘RStudio Connect’. Resources can be anything from ‘CSV’, ‘JSON’, or image files to arbitrary R objects.
  • 이 패키지를 이용하면 보다 쉽게 kaggle 데이터를 불러올 수 있다.

(2) 데이터 불러오기

  • 이제 titanic 데이터를 불러오자
  • 소스코드로 확인해본다.
pin_find("titanic", board="kaggle")
## # A tibble: 21 x 4
##    name                               description                    type  board
##    <chr>                              <chr>                          <chr> <chr>
##  1 abhinavralhan/titanic              titanic                        files kagg…
##  2 azeembootwala/titanic              Titanic                        files kagg…
##  3 broaniki/titanic                   titanic                        files kagg…
##  4 c/titanic                          Titanic: Machine Learning fro… files kagg…
##  5 carlmcbrideellis/titanic-all-zero… Titanic all zeros csv file     files kagg…
##  6 cities/titanic123                  Titanic Dataset Analysis       files kagg…
##  7 davorbudimir/titanic               Titanic                        files kagg…
##  8 dushyantkhinchi/titanic-survival   Titanic survival               files kagg…
##  9 fossouodonald/titaniccsv           Titanic csv                    files kagg…
## 10 harunshimanto/titanic-solution-a-… Titanic Solution: A Beginner'… files kagg…
## # … with 11 more rows
  • 캐글에서 검색된 titanic과 관련된 내용이 이렇게 있다.
    • 여기에서 competition과 관련된 것은 c/name_of_competition이기 때문에 c/titanic을 입력하도록 한다.
    • (pins 패키지를 활용해서 함수를 만들어 볼까 잠깐 생각)
  • 이번에는 pin_get() 함수를 활용하여 데이터를 불러온다.
pin_get("c/titanic")
## [1] "/Users/yourname/Library/Caches/pins/kaggle/titanic/gender_submission.csv"
## [2] "/Users/yourname/Library/Caches/pins/kaggle/titanic/test.csv"             
## [3] "/Users/yourname/Library/Caches/pins/kaggle/titanic/train.csv"
  • 출력된 경로에 이미 데이터가 다운받아진 것이다.
  • 이제 데이터를 불러온다.
    • 이 때, pin_get을 값을 임의의 변수 dataset으로 할당한 후 하나씩 불러오도록 한다.
  • note: 위 경로는 Mac의 경로이기 때문에, 윈도우 또는 리눅스 경로는 다를 수 있음을 확인한다.
    • 따라서, 아래와 같이 작업하는 것을 권장한다.
dataset <- pin_get("c/titanic")
train <- read.csv(dataset[3])
test <- read.csv(dataset[2])

dim(train); dim(test)
## [1] 891  12
## [1] 418  11
  • 데이터가 정상적으로 불러와진 것을 확인할 수 있다.
  • 간단한 시각화, 데이터 가공 후, 모형 생성 및 제출까지 진행하도록 해본다.