1. 소개

최종 업데이트: 2024년 5월 10일
Kaggle이란 무엇인가요?
Kaggle은 최대 규모의 AI 및 ML 커뮤니티이자 모든 수준의 데이터 과학 및 머신러닝 애호가가 최신 기술과 기술로 실력을 향상할 수 있는 최고의 플랫폼입니다. 다양한 데이터 세트, 노트북, 사전 학습된 모델을 살펴보고 다음 프로젝트를 시작하세요. 경연 대회에 참여하고, 강의를 통해 배우고, 전 세계 1,800만 명이 넘는 다양한 사용자 커뮤니티와 소통하세요. 초보자든 숙련된 전문가든 Kaggle에서 기술을 연마하고, 최신 트렌드를 파악하고, 최첨단 프로젝트에서 공동작업할 수 있습니다.
빌드할 항목
이 Codelab에서는 Kaggle 대회를 만들고, 구성하고, 시작합니다. 경쟁업체 환경을 살펴보고 참여도 높은 경쟁을 운영하기 위한 권장사항을 이해합니다.
학습할 내용
- 호스트 측에서 Kaggle 대회를 만들고 관리하는 방법 알아보기
- 탐색부터 제출까지 경쟁업체 환경 탐색
- 참여도 높은 콘테스트를 운영하기 위한 권장사항 알아보기
이 Codelab에서는 대회를 빠르게 만드는 데 중점을 두며 Kaggle의 성장하는 대회 라이브러리를 활용합니다.
필요한 항목
- 최신 웹브라우저
- Python에 관한 기본 지식
2. 설정
Kaggle 계정 만들기
Kaggle 웹사이트 (https://www.kaggle.com/)를 방문하여 '등록'을 클릭하여 무료 계정을 만듭니다.
계정 인증하기
- 페이지 오른쪽 상단에서 프로필 이미지를 클릭합니다.
- '내 프로필'을 클릭합니다.
- 프로필 콘텐츠 오른쪽에 있는 '설정' 버튼을 클릭합니다.
- '전화 인증'에서 안내에 따라 계정을 인증합니다.
3. 첫 번째 대회 만들기
AI 생성 대회 템플릿 소개
AI 생성 대회는 사용자가 머신러닝 대회를 쉽고 빠르게 만들 수 있는 Kaggle의 새로운 기능입니다. AI를 활용하여 개인 식별 정보가 포함되지 않으면서 기존 데이터 세트의 통계적 속성을 모방하는 합성 데이터 세트를 생성합니다.
방법은 다음과 같습니다.
- 템플릿 선택: 다양한 머신러닝 작업 (예: 분류, 회귀)에 따라 템플릿 목록에서 선택합니다.
- AI가 데이터 세트 생성: Kaggle의 AI는 선택한 템플릿을 기반으로 콘테스트를 위한 새 데이터 세트를 만듭니다. 이 데이터 세트는 원본과 유사하지만 기능의 하위 집합을 사용하고 기능 분포가 약간 다릅니다.
- 대회 맞춤설정: 대회 이름, 설명, 타임라인과 같은 기본 세부정보를 입력합니다. 대회의 공개 범위 설정도 선택할 수 있습니다.
- 출시: 세부정보를 완료하고 출시를 설정하면 콘테스트를 출시할 수 있습니다.
이 기능을 사용하면 경연대회 생성 프로세스가 간소화되어 더 많은 사용자가 경연대회에 참여할 수 있으며 데이터 세트 준비가 아닌 머신러닝 측면에 집중할 수 있습니다.
대회 만들기
https://www.kaggle.com/competitions/new로 이동하여 'New AI Generated Competition'을 선택합니다.

'Regression with a Crab Age Dataset'(게 나이 데이터 세트를 사용한 회귀) 대회를 선택합니다.
대회 세부정보

설명이 포함된 이름과 부제목을 입력합니다. 예를 들어 제목으로 '<내 이름>의 테스트 게 경연 대회'를 사용하고 부제목으로 '작동 방식을 확인하기 위해 첫 번째 경연 대회를 만드는 중'을 사용할 수 있습니다. 대회 URL은 제목을 기반으로 자동으로 채워집니다.
공개 상태 및 액세스
이제 대회에 대한 공개 상태와 액세스 권한을 설정해야 합니다.
공개 상태
- 공개: Kaggle의 모든 사용자가 내 대회를 볼 수 있습니다. 검색 결과에 표시되므로 관심 있는 사용자는 누구나 참여할 수 있습니다.
- 비공개: 대회가 공개 보기에서 숨겨집니다. 검색 결과에 표시되지 않으며, 내가 특별히 초대한 사용자만 참여할 수 있습니다.
가입 대상
- 모든 사용자: 개방형 정책과 같습니다. Kaggle의 모든 사용자가 내 대회에 참여할 수 있습니다.
- 링크가 있는 사용자만: 더 제한적입니다. 특수 링크가 생성되며 해당 링크가 있는 사용자만 참여할 수 있습니다.
- 제한된 이메일 목록: 가장 관리하기 쉬운 옵션입니다. 특정 이메일 주소 또는 도메인(@yourschool.edu) 목록을 제공하면 해당 주소를 가진 사용자만 참여할 수 있습니다.
노트북 및 모델 사용 설정 설정에 대해서는 나중에 자세히 알아보겠습니다. 지금은 사용 설정되어 있는지 확인하세요. 예시 대회의 경우 이 설정을 비공개 및 링크가 있는 사용자만으로 설정합니다.
약관을 읽고 동의한 다음 '대회 만들기'를 클릭합니다.
4. 경쟁업체 이해 및 구성
Google에서는 고유한 데이터 세트를 사용하여 완전히 새로운 대회를 만들었습니다. 대회 설정을 간단히 검토해 보겠습니다.
호스트 탭
호스트 탭에는 호스트가 대회를 올바르게 구성하는 데 필요한 모든 항목이 포함되어 있습니다. 특히 페이지 오른쪽의 페이지 목록을 확인하세요.

기본 세부정보
이 섹션에는 다음이 포함됩니다.
- 일반
- 개인 정보 보호, 액세스, 리소스
- 타임라인
- 점수 및 팀
대회를 시작할 때 일반 및 개인 정보 보호 섹션을 다뤘습니다.
타임라인
경쟁 종료일은 시간대를 인식합니다.

점수 및 팀
스코어링 및 팀 섹션에서는 팀에 참여할 수 있는 인원수, 하루에 제출할 수 있는 횟수, 최종 평가를 위해 선택해야 하는 제출 수를 관리할 수 있습니다.

이미지
이미지를 사용하면 대회 배너와 썸네일을 맞춤설정할 수 있습니다. 이는 대회 홈페이지와 대회 등록정보 항목에 영향을 미칩니다.

호스트
여기에서 다른 Kaggle 사용자를 대회 호스트로 추가할 수 있습니다. 다른 호스트는 내 대회에 대한 전체 액세스 권한 (시작 포함)을 갖습니다.

평가 측정항목
평가 측정항목 탭은 대회의 핵심입니다. 처음부터 대회를 만드는 경우 사용할 평가 (또는 점수) 측정항목을 신중하게 고려하고, 솔루션 파일을 업로드하고, 공개/비공개 테스트 분할을 정의하고, 샘플 제출을 제공해야 합니다. 하지만 생성된 경쟁을 사용했으므로 이 작업을 수행할 필요가 없습니다.
점수 측정항목
이에 따라 제출 파일이 솔루션 파일과 비교하여 점수가 매겨지는 방식이 결정됩니다. 각 측정항목에는 문서와 실제 코드가 제공됩니다.
솔루션 파일
생성된 대회를 사용하므로 이 파일은 대회마다 고유합니다.

솔루션 샘플링을 사용하면 대회 (공개 리더보드)에서 제출물을 평가하는 데 사용되는 솔루션 파일의 양과 최종 리더보드를 결정하는 데 사용되는 행 수를 조정할 수 있습니다. 대회 기간 동안 사용자는 점수가 매겨진 비공개 제출 설정에 따라 최종 리더보드(여기서는 비공개 리더보드라고 함)에 사용할 제출물을 선택할 수 있습니다.
이 프로세스를 통해 경쟁자가 과적합 또는 제출 과다로 보상을 받지 않도록 할 수 있습니다.
샌드박스 제출
이를 통해 대회 호스트는 점수가 예상대로 작동하는지 확인할 수 있으며, 경쟁업체가 비교할 수 있는 '벤치마크' 제출을 설정할 수 있습니다. 이러한 벤치마크 제출은 리더보드에 표시됩니다.
팀 및 제출
대회 기간 동안 호스트는 모든 점수를 다운로드하고 팀을 관리할 수 있습니다. 대회가 시작되기 전에는 비어 있습니다.
출시 체크리스트
이 내용은 다음 섹션에서 다루겠습니다.
5. 대회 시작
대회 페이지 상단에서 '체크리스트 시작' 버튼을 클릭합니다.
출시 체크리스트
출시 체크리스트에는 대회를 시작하기 전에 수행해야 하는 필수 단계가 표시됩니다. 경연대회 템플릿으로 이미 시작했으므로 이러한 단계 대부분이 이미 완료되었습니다. 마감일 설정과 대회 규칙 업데이트라는 두 가지 작업만 남았습니다.

기한 설정
먼저 기한 설정 옆에 있는 화살표를 클릭합니다. 대회는 일반적으로 최소 몇 개월 동안 진행됩니다. 대회의 최대 기간은 1년입니다.
규칙 수정
출시 전에 기본 템플릿에서 대회 규칙을 업데이트해야 합니다. 수업이나 그룹을 위해 이 대회를 진행하는 경우 기대치에 관한 정보를 입력하면 좋습니다.
출시
이제 출시할 수 있습니다. 대회를 시작하세요. 이제 경쟁자가 참여할 수 있습니다.
6. 경쟁업체 환경
이제 대회를 시작했으므로 경쟁업체 환경이 어떤지 살펴보겠습니다. 대회 참여 및 제출물 제출에 대해 설명합니다. Google IO 데모 대회에 참여하려면 다음 링크를 클릭하세요. https://www.kaggle.com/competitions/google-io-demo-competition
경쟁 참여하기
대회 홈페이지로 이동한 후 오른쪽 상단의 '대회 참여' 버튼을 클릭하고 규칙을 읽고 확인합니다.
첫 번째 제출
코드 탭으로 이동하여 '새 노트북'을 클릭합니다. 그러면 대회를 제출할 수 있는 노트북이 열립니다.
먼저 학습 및 테스트 데이터를 읽어옵니다.
# read the test and train data
train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')
test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')
데이터를 살펴보겠습니다.
# take a look at some of the data
train.head()
학습용 데이터를 준비해 보겠습니다. 이 경우 성별은 숫자 값이 아니므로 삭제합니다. (힌트: 이를 포함하는 방법을 파악하면 모델의 성능이 향상됩니다.)
# 테스트 데이터에서 결과를 삭제합니다.
data = train.drop(columns=[‘Age', ‘Sex'])
answers = train[‘Age']
그런 다음 모델을 만듭니다. 이 경우 랜덤 포레스트 모델을 사용합니다.
# 모델 가져오기
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
model = RandomForestRegressor()
# train the model
model.fit(data, answers)
제출물 만들기:
predictions = model.predict(test.drop(columns=[‘Sex']))
submission = pd.DataFrame({‘id': test[‘id'], ‘Age': predictions})
submission.to_csv('submission.csv', index=False)
그런 다음 오른쪽 메뉴에서 '대회에 제출'을 선택하여 대회에 제출할 수 있습니다.

훌륭한 대회를 운영하기 위한 도움말
- 기본 제출을 수행하는 시작 노트북을 포함해야 합니다.
- 대회 초기에 토론 및 공유 노트북 사용 장려
- 즐거운 시간 보내시기 바랍니다.

