Google Colab with Kaggle - Beginner
Page content

I. 개요
- 데이터 시각화와 변환에 대해 짧게 익혔다면 바로 실전 데이터를 활용한다.
- 이론이 조금 부족하게 느껴질 수 있지만, 모든 것을 다 알려드릴 수는 없다.
- 결국 공부는 스스로 해야 한다.
- 이 강의의 목적이
Kaggle데이터를 활용한 Python 포트폴리오 제작 강의임을 잊지 말자.
II. Kaggle KPI 설치
Google Colab에서Kaggle API를 불러오려면 다음 소스코드를 실행한다.
!pip install kaggle
Requirement already satisfied: kaggle in /usr/local/lib/python3.6/dist-packages (1.5.6)
Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from kaggle) (2.23.0)
Requirement already satisfied: python-dateutil in /usr/local/lib/python3.6/dist-packages (from kaggle) (2.8.1)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.6/dist-packages (from kaggle) (1.12.0)
Requirement already satisfied: tqdm in /usr/local/lib/python3.6/dist-packages (from kaggle) (4.41.1)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from kaggle) (1.24.3)
Requirement already satisfied: certifi in /usr/local/lib/python3.6/dist-packages (from kaggle) (2020.4.5.1)
Requirement already satisfied: python-slugify in /usr/local/lib/python3.6/dist-packages (from kaggle) (4.0.0)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->kaggle) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->kaggle) (2.9)
Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.6/dist-packages (from python-slugify->kaggle) (1.3)
III. Kaggle Token 다운로드
- Kaggle에서
API Token을 다운로드 받는다. - [Kaggle]-[My Account]-[API]-[Create New API Token]을 누르면 kaggle.json 파일이 다운로드 된다.
- 이 파일을 바탕화면에 옮긴 뒤, 아래 코드를 실행 시킨다.
from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
print('uploaded file "{name}" with length {length} bytes'.format(
name=fn, length=len(uploaded[fn])))
# kaggle.json을 아래 폴더로 옮긴 뒤, file을 사용할 수 있도록 권한을 부여한다.
!mkdir -p ~/.kaggle/ && mv kaggle.json ~/.kaggle/ && chmod 600 ~/.kaggle/kaggle.json
Saving kaggle.json to kaggle.json
uploaded file "kaggle.json" with length 64 bytes
ls -1ha ~/.kaggle/kaggle.json
/root/.kaggle/kaggle.json
- 에러 메시지가 없으면 성공적으로
json파일이 업로드 되었다는 뜻이다.
IV. Kaggle 데이터 불러오기
- 먼저 kaggle competition list를 불러온다.
!kaggle competitions list
Warning: Looks like you're using an outdated API Version, please consider updating (server 1.5.6 / client 1.5.4)
ref deadline category reward teamCount userHasEntered
------------------------------------------------ ------------------- --------------- --------- --------- --------------
digit-recognizer 2030-01-01 00:00:00 Getting Started Knowledge 3186 False
titanic 2030-01-01 00:00:00 Getting Started Knowledge 23995 False
house-prices-advanced-regression-techniques 2030-01-01 00:00:00 Getting Started Knowledge 5368 False
connectx 2030-01-01 00:00:00 Getting Started Knowledge 414 False
nlp-getting-started 2030-01-01 00:00:00 Getting Started Kudos 1701 False
competitive-data-science-predict-future-sales 2020-12-31 23:59:00 Playground Kudos 7352 False
halite 2020-09-15 23:59:00 Featured Swag 97 False
birdsong-recognition 2020-09-15 23:59:00 Research $25,000 43 False
siim-isic-melanoma-classification 2020-08-17 23:59:00 Featured $30,000 996 False
global-wheat-detection 2020-08-04 23:59:00 Research $15,000 899 False
open-images-object-detection-rvc-2020 2020-07-31 16:00:00 Playground Knowledge 30 False
open-images-instance-segmentation-rvc-2020 2020-07-31 16:00:00 Playground Knowledge 6 False
hashcode-photo-slideshow 2020-07-27 23:59:00 Playground Knowledge 38 False
prostate-cancer-grade-assessment 2020-07-22 23:59:00 Featured $25,000 591 False
alaska2-image-steganalysis 2020-07-20 23:59:00 Research $25,000 571 False
m5-forecasting-accuracy 2020-06-30 23:59:00 Featured $50,000 5038 False
m5-forecasting-uncertainty 2020-06-30 23:59:00 Featured $50,000 665 False
trends-assessment-prediction 2020-06-29 23:59:00 Research $25,000 785 False
jigsaw-multilingual-toxic-comment-classification 2020-06-22 23:59:00 Featured $50,000 1507 False
tweet-sentiment-extraction 2020-06-16 23:59:00 Featured $15,000 2234 False
- 여기에서 참여하기 원하는 대회의 데이터셋을 불러오면 된다.
- 이번
basic강의에서는house-prices-advanced-regression-techniques데이터를 활용한데이터 가공과 시각화를 연습할 것이기 때문에 아래와 같이 코드를 실행하여 데이터를 불러온다.
!kaggle competitions download -c house-prices-advanced-regression-techniques
Warning: Looks like you're using an outdated API Version, please consider updating (server 1.5.6 / client 1.5.4) 403 - Forbidden
(1) 캐글이 처음이신 분을 위해
Warning: Looks like you’re using an outdated API Version, please consider updating (server 1.5.6 / client 1.5.4) 403 - Forbidden
- 처음 캐글에 접속하시는 분은 위와 같은 에러 메시지가 나올 것이다.
- 이 때에는
Kaggle에 접속해서 검색을 한다. (KeyWord: house-prices-advanced-regression-techniques)

- 그 다음에는
Join Competition버튼을 누른다.

- 그리고
동의버튼을 눌러주면 이제 구글 코랩에서 데이터를 정상적으로 불러올 수 있다.

- 다시 구글 코랩으로 화면을 옮겨서 아래와 같이 명령어를 다시 실행한다.
!kaggle competitions download -c house-prices-advanced-regression-techniques
Downloading house-prices-advanced-regression-techniques.zip to /content
0% 0.00/199k [00:00<?, ?B/s]
100% 199k/199k [00:00<00:00, 64.2MB/s]
!ls
house-prices-advanced-regression-techniques.zip sample_data
- 만약
zip파일로 다운로드 받았다면unzip을 하면 된다.
!unzip house-prices-advanced-regression-techniques.zip
Archive: house-prices-advanced-regression-techniques.zip
inflating: data_description.txt
inflating: sample_submission.csv
inflating: test.csv
inflating: train.csv
- 현재 총 4개의 데이터를 다운로드 받았다.
- data_description.txt
- sample_submission.csv
- test.csv
- train.csv
V. What’s Next
Google Colab에서Kaggle API를 활용하여 데이터를 불러오는 것을 실습하였다.- 다만, 이제 고민해야 한다.
- 이 프로그램을 종료하면 다운로드 받은 데이터는 사라진다.
- 해결방안은 여러가지가 있다.
- DB연동 (DB연동이라고요?)
- 드라이브연동
- Local 환경으로 다운로드 받기
- DB연동은 초보자에게 조금 어렵다 (DB 종류도 많기도 하고..)
- Local 환경으로 다운로드 받으면 애초에 구글 코랩을 사용할 이유가 없다.
- 마지막 남은 옵션은 드라이브 연동! 어렵지 않다. 쉽다. 그러나 실습해야 자기것이 된다. Let’s Go
Reference
출처: https://colab.research.google.com/github/corrieann/kaggle/blob/master/kaggle_api_in_colab.ipynb