2020.07.02

데이터 과학자의 놀이터이자 배움터··· ‘캐글’ 탐험 안내서

Martin Heller | InfoWorld
데이터 과학은 ‘과학’이라는 용어를 사용하지만 기업 현실에선 ‘기술’에 더 가깝다. 처음에는 정제되지 않은 데이터와 오래된 통계 예측 모델로 시작한다. 그러다가 머신러닝(ML)으로 좀더 잘 다뤄보려는 시도를 하게 된다. 아무도 작업 결과를 검증하거나 개선하려 들지 않는다. 새로운 모델이 오래된 모델보다 잘 들어맞으면 채택한 후 다음 문제로 넘어간다. 데이터가 불안정해지고 모델이 작동을 멈추면 새로운 데이터세트로 모델을 업데이트한다. 

하지만 캐글(Kaggle)에서 데이터 과학을 하는 양상은 사뭇 다르다.

캐글은 온라인 머신러닝 환경 겸 커뮤니티이다. 개인이나 팀이 모델링을 시도하는 수백 또는 수천에 달하는 표준 데이터세트가 있고 각 경연마다 순위표가 있다. 

상금과 등급 점수를 제공하는 대회도 많다. 사람들은 대회 종료 시까지 본인의 모델을 개량하여 점수 향상과 순위 상승을 꾀할 수 있다. 불과 몇 퍼센트 차이로 1위가 달라지는 경우가 많다.

캐글은 전문 데이터 과학자들이 남는 시간에 놀 수 있는 놀꺼리가 풍부한 공간이며, 데이터 과학자 지망자들이라면 좋은 머신러닝 모델 구축 방법을 배우기에 좋은 교실이기도 하다. 
 
Image Credit : Getty Images Bank

캐글?
좀더 서술해 표현하면, 캐글은 데이터 과학자들을 대상으로 머신러닝 시합, 데이터세트, 노트북, 훈련 가속기에 대한 접근 및 교육을 제공하는 온라인 커뮤니티이다. 앤서니 골드블룸 (CEO)과 벤 햄너(CTO)가 2010년 창립했으며, 2017년 구글에 인수됐다.

여러 캐글 시합(Kaggle competitions) 덕분에 머신러닝 기술의 활용 수준이 다각도로 발전할 수 있었다. 암흑 물질의 지도를 만드는 것도 있고 HIV/AIDS 연구도 있다. 캐글 시합 우승자들을 살펴보면 많은 XG부스트 모델과 몇몇 랜덤 포레스트 모델, 그리고 몇 개의 심층 신경망이 눈에 띌 것이다.

시합
캐글 시합에는 ‘시작’(Getting Started), ‘놀이터’(Playground), ‘본격’(Featured), ‘연구’(Research), ‘채용’(Recruitment)의 5가지 범주가 있다.

‘시작’ 시합은 반영구적이며 머신러닝 분야에 첫발을 들여놓는 신규 사용자가 이용하는 것이 목적이다. 상이나 점수를 부여하지는 않지만 사용지침서는 많다. ‘시작’ 시합에는 2개월짜리 단계별 점수표가 있다.

‘놀이터’ 시합은 ‘시작’ 시합보다 난이도가 한 단계 위이다. 상의 종류는 칭찬에서부터 소액의 상금까지 있다.

‘본격’ 시합은 본격적인 머신러닝 도전 무대로서 주로 상업적 목적이 있는 까다로운 예측 문제를 제시한다. ‘본격’ 시합에는 가장 쟁쟁한 전문가와 팀들이 참가하며 총 상금은 최대 100만 달러에 달한다. 기가 죽을 만하지만 입상은 하지 못하더라도 시도를 해보고 다른 사람들의 솔루션, 특히 상위 솔루션을 읽어 보면 배우는 것이 있을 것이다.

‘연구’ 시합에는 ‘본격’ 시합 문제보다 좀더 실험적인 문제가 출제된다. 실험적인 성격 때문에 상이나 점수를 부여하지 않는 것이 보통이다.

‘채용’ 시합에서는 개인들이 기업에서 정한 과제에 맞는 머신러닝 모델 구축 경쟁을 벌인다. 시합 종료 시점에 관심있는 참가자는 본인의 이력서를 주최자가 검토할 수 있도록 업로드할 수 있다. 시합을 주최한 조직의 면접 기회가 상인 경우도 있다. 

시합 형식은 여러 가지가 있다. 보통의 캐글 시합에서 사용자는 시합 시작 시점에 전체 데이터세트에 접근하여 데이터를 다운로드할 수 있다. 그 데이터로 로컬에서나 캐글 노트북에서 모델을 구축하고(아래 참조), 예측 파일을 생성한 후 예측 내용을 캐글에 제출물로 업로드할 수 있다. 캐글의 대부분 시합은 이 형식을 따르지만 다른 형식도 있다. 몇몇 시합은 단계별로 나뉘어진다. 캐글 노트북 내에서 제출해야 하는 코드 시합도 있다.

캐글 데이터세트
캐글은 3만 5,000개가 넘는 데이터세트를 호스팅하고 있다. 데이터세트의 게시 형식이 다양하다. 예를 들면, 표로 된 데이터는 CVS, 나무 같은 데이터는 JSON, SQLite 데이터베이스, ZIP, 7z 아카이브(이미지 데이터세트에 자주 사용됨), 그리고 구글 서버에 있는 몇 테라바이트 SQL 데이터세트인 빅쿼리 데이터세트 등이다.

캐글 데이터세트를 찾는 방법은 여러 가지가 있다. 캐글 홈 페이지에는 ‘핫한’ 데이터세트와 본인이 팔로우하는 사람들이 업로드한 데이터세트 목록이 나와있다. 캐글 데이터세트 페이지에는 데이터세트 목록(처음에는 ‘가장 핫한’ 순서로 되어 있지만 다른 방식의 순서 정렬 옵션도 있음)과 검색 필터가 나와 있다. 또한, 태그와 태그 페이지를 이용해 데이터세트를 찾아낼 수도 있다(예: https://www.kaggle.com/tags/crime).

본인의 로컬 시스템, URL, 깃허브 저장소, 캐글 노트북 출력물 등으로부터 캐글에 공개 데이터세트와 미공개 데이터세트를 만들 수 있다. URL 또는 깃허브 저장소에서 만든 데이터세트를 주기적으로 업데이트하도록 설정할 수 있다.

현재 캐글에는 코로나19 데이터세트, 도전 과제, 노트북이 꽤 많이 있다. 코로나 자체와 그 원인이 되는 바이러스를 이해하는데 기여한 활동도 다수 있었다.

캐글 노트북(Kaggle Notebooks)
캐글은 스크립트, 알마크다운(RMarkdown) 스크립트, 주피터 노트북 등 세 종류의 노트북을 지원한다. 스크립트는 모든 것을 코드로 순차적으로 실행하는 파일이다. 노트북은 R 또는 파이썬으로 작성할 수 있다. R코드 작성자와 시합에 코드를 제출하는 사람들은 스트립트를 자주 사용한다. 파이썬 코드 작성자와 시험적 데이터 분석을 하는 사람들은 주피터 노트북을 선호하는 경향이 있다.

어떤 종류의 노트북이든 옵션으로 무료 GPU(엔비디아 테슬라 P100) 또는 TPU 가속기를 이용할 수 있으며 구글 클라우드 플랫폼 서비스를 이용할 수 있다. 그러나 예를 들면 주당 30시간의 TPU와 30시간의 GPU 등 적용되는 할당량이 있다. 

원론적으로 심화학습 훈련 가속이 필요한 경우가 아니라면 GPU나 TPU를 사용하지 않는 것이 좋다. 구글 클라우드 플랫폼 서비스를 사용할 때 무료 용량을 초과하면 본인의 구글 클라우드 플랫폼 계정으로 청구 비용이 발생할 수 있다.

캐글 노트북에 캐글 데이터세트를 언제든지 추가할 수 있다. ‘시합’ 데이터세트도 추가할 수 있지만 시합 규칙을 수락하는 경우에 한한다. 원하면 한 노트북의 출력물을 다른 노트북의 데이터에 추가하는 방식으로 여러 노트북을 연결할 수 있다.

노트북은 커널(kernel)에서 실행되는데 커널은 기본적으로 도커(Docker) 컨테이너이다. 노트북의 버전은 발전시켜 나가면서 저장할 수 있다. 

사이트 키워드 질의와 노트북 상의 필터로 노트북을 검색할 수 있으며 캐글 홈페이지를 둘러보는 방법도 있다. 노트북 목록을 사용할 수도 있다. 목록 상 노트북의 순서는 데이터세트와 마찬가지로 기본적으로 ‘핫한’ 순서다. 공개된 노트북을 읽어 보는 것은 사람들이 어떻게 데이터 과학을 하는지 배울 수 있는 좋은 방법이다. 

해당 노트북의 공개 여부에 따라 노트북 상에서 다른 사람들과 여러 가지 방식으로 협업할 수 있다. 공개 노트북인 경우에는 특정 사용자에게 편집 권한을 부여할 수 있다(보기는 모든 사람이 가능). 미공개 노트북인 경우 보기 권한이나 편집 권한을 부여할 수 있다.

캐글 퍼블릭 API
대화형 노트북을 구축하고 실행하는 것 이외에도 캐글 퍼블릭 API를 호출하는 로컬 시스템으로부터 캐글 명령줄을 이용해 캐글과 상호작용할 수 있다. 파이썬 3 인스톨러 pip를 이용해 캐글 CLI를 설치한 후 캐글 사이트에서 API 토큰을 다운로드하여 본인 시스템을 인증할 수 있다.

캐글 CLI와 API는 시합, 데이터세트, 노트북(커널)과 상호작용 가능하다. API는 오픈소스이고 깃허브에 호스팅 된다(위치: https://github.com/Kaggle/kaggle-api). 그 곳에 있는 리드미(README) 파일에 명령줄 도구에 대한 전체적인 설명이 나와 있다.

커뮤니티와 교육
캐글은 커뮤니티 토론 포럼과 초소형 강좌를 연다. 포럼 주제는 캐글 자체와 시작하기, 피드백, Q&A, 데이터세트, 초소형 강좌 등이 있다. 초소형 강좌는 파이썬, ML, 데이터 시각화, 판다스, 피처 엔지니어링, 딥러닝, SQL, 지리공간 분석 등 데이터 과학자와 관련된 기술을 각각 몇 시간 안에 다룬다.

전체적으로 캐글은 데이터 과학을 배우고 데이터 과학 도전 과제에서 다른 사람과 경쟁하는 목적에 매우 유용하다. 또한, 표준 공개 데이터세트를 위한 보관소로도 매우 유용하다. 그러나, 유료 클라우드 데이터 과학 서비스나 본인 스스로 분석하는 것을 대신하지는 않는다.

* 인포월드 기고 편집자이자 리뷰어인 Martin Heller는 웹 및 윈도우 프로그래밍 컨설턴트 경력을 보유자다. 1986년부터 2010년까지는 데이터베이스, 소프트웨어, 웹사이트 개발자로 일했으며 그 이후에는 알파 소프트웨어의 기술 및 교육 부사장, 튜브파이의 의장이자 CEO를 역임했다. ciokr@idg.co.kr
 



2020.07.02

데이터 과학자의 놀이터이자 배움터··· ‘캐글’ 탐험 안내서

Martin Heller | InfoWorld
데이터 과학은 ‘과학’이라는 용어를 사용하지만 기업 현실에선 ‘기술’에 더 가깝다. 처음에는 정제되지 않은 데이터와 오래된 통계 예측 모델로 시작한다. 그러다가 머신러닝(ML)으로 좀더 잘 다뤄보려는 시도를 하게 된다. 아무도 작업 결과를 검증하거나 개선하려 들지 않는다. 새로운 모델이 오래된 모델보다 잘 들어맞으면 채택한 후 다음 문제로 넘어간다. 데이터가 불안정해지고 모델이 작동을 멈추면 새로운 데이터세트로 모델을 업데이트한다. 

하지만 캐글(Kaggle)에서 데이터 과학을 하는 양상은 사뭇 다르다.

캐글은 온라인 머신러닝 환경 겸 커뮤니티이다. 개인이나 팀이 모델링을 시도하는 수백 또는 수천에 달하는 표준 데이터세트가 있고 각 경연마다 순위표가 있다. 

상금과 등급 점수를 제공하는 대회도 많다. 사람들은 대회 종료 시까지 본인의 모델을 개량하여 점수 향상과 순위 상승을 꾀할 수 있다. 불과 몇 퍼센트 차이로 1위가 달라지는 경우가 많다.

캐글은 전문 데이터 과학자들이 남는 시간에 놀 수 있는 놀꺼리가 풍부한 공간이며, 데이터 과학자 지망자들이라면 좋은 머신러닝 모델 구축 방법을 배우기에 좋은 교실이기도 하다. 
 
Image Credit : Getty Images Bank

캐글?
좀더 서술해 표현하면, 캐글은 데이터 과학자들을 대상으로 머신러닝 시합, 데이터세트, 노트북, 훈련 가속기에 대한 접근 및 교육을 제공하는 온라인 커뮤니티이다. 앤서니 골드블룸 (CEO)과 벤 햄너(CTO)가 2010년 창립했으며, 2017년 구글에 인수됐다.

여러 캐글 시합(Kaggle competitions) 덕분에 머신러닝 기술의 활용 수준이 다각도로 발전할 수 있었다. 암흑 물질의 지도를 만드는 것도 있고 HIV/AIDS 연구도 있다. 캐글 시합 우승자들을 살펴보면 많은 XG부스트 모델과 몇몇 랜덤 포레스트 모델, 그리고 몇 개의 심층 신경망이 눈에 띌 것이다.

시합
캐글 시합에는 ‘시작’(Getting Started), ‘놀이터’(Playground), ‘본격’(Featured), ‘연구’(Research), ‘채용’(Recruitment)의 5가지 범주가 있다.

‘시작’ 시합은 반영구적이며 머신러닝 분야에 첫발을 들여놓는 신규 사용자가 이용하는 것이 목적이다. 상이나 점수를 부여하지는 않지만 사용지침서는 많다. ‘시작’ 시합에는 2개월짜리 단계별 점수표가 있다.

‘놀이터’ 시합은 ‘시작’ 시합보다 난이도가 한 단계 위이다. 상의 종류는 칭찬에서부터 소액의 상금까지 있다.

‘본격’ 시합은 본격적인 머신러닝 도전 무대로서 주로 상업적 목적이 있는 까다로운 예측 문제를 제시한다. ‘본격’ 시합에는 가장 쟁쟁한 전문가와 팀들이 참가하며 총 상금은 최대 100만 달러에 달한다. 기가 죽을 만하지만 입상은 하지 못하더라도 시도를 해보고 다른 사람들의 솔루션, 특히 상위 솔루션을 읽어 보면 배우는 것이 있을 것이다.

‘연구’ 시합에는 ‘본격’ 시합 문제보다 좀더 실험적인 문제가 출제된다. 실험적인 성격 때문에 상이나 점수를 부여하지 않는 것이 보통이다.

‘채용’ 시합에서는 개인들이 기업에서 정한 과제에 맞는 머신러닝 모델 구축 경쟁을 벌인다. 시합 종료 시점에 관심있는 참가자는 본인의 이력서를 주최자가 검토할 수 있도록 업로드할 수 있다. 시합을 주최한 조직의 면접 기회가 상인 경우도 있다. 

시합 형식은 여러 가지가 있다. 보통의 캐글 시합에서 사용자는 시합 시작 시점에 전체 데이터세트에 접근하여 데이터를 다운로드할 수 있다. 그 데이터로 로컬에서나 캐글 노트북에서 모델을 구축하고(아래 참조), 예측 파일을 생성한 후 예측 내용을 캐글에 제출물로 업로드할 수 있다. 캐글의 대부분 시합은 이 형식을 따르지만 다른 형식도 있다. 몇몇 시합은 단계별로 나뉘어진다. 캐글 노트북 내에서 제출해야 하는 코드 시합도 있다.

캐글 데이터세트
캐글은 3만 5,000개가 넘는 데이터세트를 호스팅하고 있다. 데이터세트의 게시 형식이 다양하다. 예를 들면, 표로 된 데이터는 CVS, 나무 같은 데이터는 JSON, SQLite 데이터베이스, ZIP, 7z 아카이브(이미지 데이터세트에 자주 사용됨), 그리고 구글 서버에 있는 몇 테라바이트 SQL 데이터세트인 빅쿼리 데이터세트 등이다.

캐글 데이터세트를 찾는 방법은 여러 가지가 있다. 캐글 홈 페이지에는 ‘핫한’ 데이터세트와 본인이 팔로우하는 사람들이 업로드한 데이터세트 목록이 나와있다. 캐글 데이터세트 페이지에는 데이터세트 목록(처음에는 ‘가장 핫한’ 순서로 되어 있지만 다른 방식의 순서 정렬 옵션도 있음)과 검색 필터가 나와 있다. 또한, 태그와 태그 페이지를 이용해 데이터세트를 찾아낼 수도 있다(예: https://www.kaggle.com/tags/crime).

본인의 로컬 시스템, URL, 깃허브 저장소, 캐글 노트북 출력물 등으로부터 캐글에 공개 데이터세트와 미공개 데이터세트를 만들 수 있다. URL 또는 깃허브 저장소에서 만든 데이터세트를 주기적으로 업데이트하도록 설정할 수 있다.

현재 캐글에는 코로나19 데이터세트, 도전 과제, 노트북이 꽤 많이 있다. 코로나 자체와 그 원인이 되는 바이러스를 이해하는데 기여한 활동도 다수 있었다.

캐글 노트북(Kaggle Notebooks)
캐글은 스크립트, 알마크다운(RMarkdown) 스크립트, 주피터 노트북 등 세 종류의 노트북을 지원한다. 스크립트는 모든 것을 코드로 순차적으로 실행하는 파일이다. 노트북은 R 또는 파이썬으로 작성할 수 있다. R코드 작성자와 시합에 코드를 제출하는 사람들은 스트립트를 자주 사용한다. 파이썬 코드 작성자와 시험적 데이터 분석을 하는 사람들은 주피터 노트북을 선호하는 경향이 있다.

어떤 종류의 노트북이든 옵션으로 무료 GPU(엔비디아 테슬라 P100) 또는 TPU 가속기를 이용할 수 있으며 구글 클라우드 플랫폼 서비스를 이용할 수 있다. 그러나 예를 들면 주당 30시간의 TPU와 30시간의 GPU 등 적용되는 할당량이 있다. 

원론적으로 심화학습 훈련 가속이 필요한 경우가 아니라면 GPU나 TPU를 사용하지 않는 것이 좋다. 구글 클라우드 플랫폼 서비스를 사용할 때 무료 용량을 초과하면 본인의 구글 클라우드 플랫폼 계정으로 청구 비용이 발생할 수 있다.

캐글 노트북에 캐글 데이터세트를 언제든지 추가할 수 있다. ‘시합’ 데이터세트도 추가할 수 있지만 시합 규칙을 수락하는 경우에 한한다. 원하면 한 노트북의 출력물을 다른 노트북의 데이터에 추가하는 방식으로 여러 노트북을 연결할 수 있다.

노트북은 커널(kernel)에서 실행되는데 커널은 기본적으로 도커(Docker) 컨테이너이다. 노트북의 버전은 발전시켜 나가면서 저장할 수 있다. 

사이트 키워드 질의와 노트북 상의 필터로 노트북을 검색할 수 있으며 캐글 홈페이지를 둘러보는 방법도 있다. 노트북 목록을 사용할 수도 있다. 목록 상 노트북의 순서는 데이터세트와 마찬가지로 기본적으로 ‘핫한’ 순서다. 공개된 노트북을 읽어 보는 것은 사람들이 어떻게 데이터 과학을 하는지 배울 수 있는 좋은 방법이다. 

해당 노트북의 공개 여부에 따라 노트북 상에서 다른 사람들과 여러 가지 방식으로 협업할 수 있다. 공개 노트북인 경우에는 특정 사용자에게 편집 권한을 부여할 수 있다(보기는 모든 사람이 가능). 미공개 노트북인 경우 보기 권한이나 편집 권한을 부여할 수 있다.

캐글 퍼블릭 API
대화형 노트북을 구축하고 실행하는 것 이외에도 캐글 퍼블릭 API를 호출하는 로컬 시스템으로부터 캐글 명령줄을 이용해 캐글과 상호작용할 수 있다. 파이썬 3 인스톨러 pip를 이용해 캐글 CLI를 설치한 후 캐글 사이트에서 API 토큰을 다운로드하여 본인 시스템을 인증할 수 있다.

캐글 CLI와 API는 시합, 데이터세트, 노트북(커널)과 상호작용 가능하다. API는 오픈소스이고 깃허브에 호스팅 된다(위치: https://github.com/Kaggle/kaggle-api). 그 곳에 있는 리드미(README) 파일에 명령줄 도구에 대한 전체적인 설명이 나와 있다.

커뮤니티와 교육
캐글은 커뮤니티 토론 포럼과 초소형 강좌를 연다. 포럼 주제는 캐글 자체와 시작하기, 피드백, Q&A, 데이터세트, 초소형 강좌 등이 있다. 초소형 강좌는 파이썬, ML, 데이터 시각화, 판다스, 피처 엔지니어링, 딥러닝, SQL, 지리공간 분석 등 데이터 과학자와 관련된 기술을 각각 몇 시간 안에 다룬다.

전체적으로 캐글은 데이터 과학을 배우고 데이터 과학 도전 과제에서 다른 사람과 경쟁하는 목적에 매우 유용하다. 또한, 표준 공개 데이터세트를 위한 보관소로도 매우 유용하다. 그러나, 유료 클라우드 데이터 과학 서비스나 본인 스스로 분석하는 것을 대신하지는 않는다.

* 인포월드 기고 편집자이자 리뷰어인 Martin Heller는 웹 및 윈도우 프로그래밍 컨설턴트 경력을 보유자다. 1986년부터 2010년까지는 데이터베이스, 소프트웨어, 웹사이트 개발자로 일했으며 그 이후에는 알파 소프트웨어의 기술 및 교육 부사장, 튜브파이의 의장이자 CEO를 역임했다. ciokr@idg.co.kr
 

X