Kaggle로 조직의 ML/AI 역량 강화

1. 소개

47566e1490c16443.png

최종 업데이트: 2024년 5월 10일

Kaggle이란 무엇인가요?

Kaggle은 세계 최대의 AI이자 ML 커뮤니티는 모든 수준의 데이터 과학 및 머신러닝 애호가를 위한 최고의 플랫폼으로서 최신 기술과 기술을 활용할 수 있습니다. 다음 프로젝트를 시작하기 위해 데이터 세트, 노트북, 선행 학습된 모델이 저장된 방대한 저장소를 살펴보세요. 대회에 참여하고 교육 과정을 통해 배우고 전 세계 1,800만 명이 넘는 다양한 커뮤니티와 소통하세요. 초보자이든 노련한 전문가이든 Kaggle을 통해 기술을 연마하고 남들보다 한발 앞서 나가며 최신 프로젝트에서 공동작업을 할 수 있습니다.

빌드할 항목

이 Codelab에서는 kaggle 경쟁을 만들고 구성하고 실행합니다. 경쟁업체의 경험을 살펴보고 흥미로운 대회를 진행하기 위한 권장사항을 이해할 수 있습니다.

학습할 내용

  • 호스트 측에서 Kaggle 경쟁을 만들고 관리하는 방법 이해
  • 탐색에서 제출까지 경쟁업체의 경험 탐색
  • 참여를 유도하는 대회를 운영하기 위한 권장사항을 알아보세요.

이 Codelab은 경쟁을 빠르게 만드는 데 중점을 두고 성장 중인 Kaggle의 경쟁 라이브러리를 활용합니다.

필요한 항목

  • 최신 웹브라우저
  • Python에 관한 기본 지식

2. 설정

Kaggle 계정 만들기

Kaggle 웹사이트 (https://www.kaggle.com/)를 방문하여 '등록'을 클릭합니다. 무료 계정을 만들 수 있습니다.

계정 인증하기

  1. 페이지 오른쪽 상단에서 프로필 이미지를 클릭합니다.
  2. '내 프로필'을 클릭합니다.
  3. '설정'을 클릭합니다. 버튼을 클릭하여
  4. '전화 인증'에서 안내에 따라 계정을 확인합니다.

3. 첫 번째 경쟁 만들기

AI 생성 대회 템플릿 소개

AI 생성 경쟁은 사용자가 머신러닝 대회를 빠르고 쉽게 만들 수 있는 Kaggle의 새로운 기능입니다. AI를 활용하여 개인 식별 정보를 포함하지 않고 기존 데이터 세트의 통계적 속성을 모방한 합성 데이터 세트를 생성합니다.

방법은 다음과 같습니다.

  1. 템플릿 선택: 다양한 머신러닝 작업 (예: 분류, 회귀)을 기반으로 템플릿 목록에서 선택합니다.
  2. AI가 데이터 세트 생성: Kaggle의 AI는 사용자가 선택한 템플릿을 기반으로 경쟁사의 새 데이터 세트를 만듭니다. 이 데이터 세트는 원본과 비슷하지만 특성의 하위 집합을 사용하고 특성 분포가 약간 다릅니다.
  3. 경쟁 맞춤설정: 대회 이름, 설명, 일정 등 기본 세부정보를 입력합니다. 또한 경쟁에 대한 공개 설정을 선택할 수도 있습니다.
  4. 출시: 세부사항을 완료하고 출시를 설정하면 경쟁을 시작할 수 있습니다.

이 기능은 대회 제작 프로세스를 간소화하여 더 많은 사용자가 액세스하고 데이터 세트 준비보다는 머신러닝 측면에 집중할 수 있도록 합니다.

경쟁 만들기

https://www.kaggle.com/competitions/new로 이동하여 '새로운 AI 생성 경쟁'을 선택합니다.

2629bf77a282a46c.png

'Crab Age Dataset로 회귀'를 선택합니다. 경쟁

대회 세부정보

2dd2228b9d686a6e.png

구체적인 이름과 부제목을 입력합니다. 예를 들어 '<내 이름>의 게 시험대회'를 사용할 수 있습니다. '작동 방식을 알아보기 위해 내 첫 번째 대회 만들기' 를 자막으로 표시합니다. 대회 URL은 제목에 따라 자동으로 입력됩니다.

가시성 및 액세스

이제 경쟁에 대한 공개 상태 및 액세스 권한을 설정해야 합니다.

5c7dcae412ddd574.png

공개 상태

  • 공개: 경쟁이 Kaggle의 모든 사용자에게 표시됩니다. 관심 있는 사람이면 누구나 참여할 수 있도록 검색 결과에 표시됩니다.
  • 비공개: 경쟁 항목이 공개적으로 표시되지 않도록 숨겨집니다. 참여는 검색결과에 표시되지 않으며 별도로 초대한 사용자만 참여할 수 있습니다.

가입 자격

  • 모든 사용자: 이는 열린 대화 정책과 같습니다. 누구나 Kaggle의 경연대회에 참여할 수 있습니다.
  • 링크가 있는 사용자만: 더 배타적입니다. 특별 링크가 생성되며 링크가 있는 사용자만 참여할 수 있습니다.
  • 제한된 이메일 목록: 가장 엄격하게 관리되는 옵션입니다. 특정 이메일 주소나 도메인 (예: @yourschool.edu) 목록을 제공하면 해당 주소를 가진 사용자만 참여할 수 있습니다.

노트북 및 모델 사용 설정 설정에 대해서는 나중에 자세히 살펴보겠습니다. 지금은 이 옵션이 사용 설정되어 있는지 확인합니다. 예시 경쟁의 경우 이 설정을 비공개링크가 있는 사용자만으로 설정합니다.

약관을 읽고 동의한 후 '경쟁 만들기'를 클릭합니다.

4. 경쟁사 이해 및 설정

이면에서 고유한 데이터 세트를 사용하는 완전히 새로운 경연 대회를 만들었습니다. 경쟁 설정을 빠르게 검토해 보겠습니다.

호스트 탭

호스트 탭에는 호스트가 경쟁을 제대로 구성하는 데 필요한 모든 것이 포함되어 있습니다. 페이지 오른쪽의 페이지 목록을 확인하세요.

bcedd6768cc4f32c.png

기본 세부정보

이 섹션에 포함된 내용은 다음과 같습니다.

  • 일반
  • 개인 정보 보호, 액세스 및 리소스
  • 타임라인
  • 점수 산정 및 팀

대회를 시작할 때 일반 및 개인 정보 보호 섹션을 다루었습니다.

일정

대회 종료일은 시간대를 인식합니다.

7141f4aea90bccb0.png

점수 및 팀

점수 및 팀 섹션을 사용하면 팀에 참여할 수 있는 인원 수, 매일 제출할 수 있는 인원 수, 최종 평가를 위해 선택해야 하는 제출 수를 제어할 수 있습니다.

5efb6387612db941.png

이미지

이미지를 사용하면 경쟁사의 배너와 썸네일을 맞춤설정할 수 있습니다. 이는 대회 홈페이지뿐 아니라 대회 참가작에도 영향을 미칩니다.

6dfd442376a1c702.png

호스트

여기에서 다른 Kaggle 사용자를 경쟁의 호스트로 추가할 수 있습니다. 다른 호스트는 경쟁사의 전체 액세스 권한 (출시 포함)을 갖게 됩니다.

8f8c90eb6baa7747.png

평가 측정항목

평가 측정항목 탭은 경쟁의 핵심입니다. 처음부터 대회를 만들 때는 사용할 평가 (또는 점수) 측정항목을 신중하게 고려하고, 솔루션 파일을 업로드하고, 공개/비공개 테스트 분할을 정의하고, 샘플 제출물을 제공해야 합니다. 그러나 생성된 경쟁을 사용했기 때문에 이렇게 할 필요가 없습니다.

점수 측정항목

솔루션 파일을 기준으로 제출 점수를 매기는 방식을 결정합니다. 각 측정항목에는 사용 가능한 문서와 실제 코드가 있습니다.

솔루션 파일

생성된 경쟁을 사용하고 있으므로 이 파일은 경쟁사별로 고유합니다.

89fa1f42d177505a.png

솔루션 샘플링을 사용하면 대회 기간 동안 제출물의 점수를 매기는 데 사용되는 솔루션 파일 (공개 리더보드)의 양과 최종 리더보드를 결정하는 데 사용되는 행 수를 조정할 수 있습니다. 경쟁이 진행되는 동안 사용자는 점수가 매겨진 비공개 제출물 설정에 따라 최종 리더보드(여기서는 비공개 리더보드라고 함)에 사용할 제출물을 선택할 수 있습니다.

이 프로세스를 통해 경쟁업체는 제출물의 과적합이나 플러딩에 대한 보상을 받지 않습니다.

샌드박스 제출

이를 통해 경쟁 호스트는 점수가 예상대로 작동하는지 확인하고 '벤치마크'를 설정할 수 있습니다. 경쟁사와 비교할 수 있습니다. 이러한 벤치마크 제출 항목은 리더보드에 표시됩니다.

팀 및 제출

대회가 진행되는 동안 호스트는 모든 점수를 다운로드하고 팀을 관리할 수 있습니다. 대회가 시작되기 전에는 비어 있습니다.

출시 체크리스트

이 내용은 다음 섹션에서 다룹니다.

5. 경쟁 시작하기

50b03df072c02e6a.png

대회 페이지 상단에서 '출시 체크리스트'를 클릭합니다. 버튼을 클릭합니다.

출시 체크리스트

출시 체크리스트에는 대회를 시작하기 전에 취해야 할 필수 단계가 나와 있습니다. 이미 대회 템플릿에서 시작했기 때문에 이러한 단계는 대부분 이미 완료되었습니다. 이제 기한을 설정하고 경쟁 규칙을 업데이트하는 두 가지 작업만 남았습니다.

938b9ed7bc4e0597.png

기한 설정

먼저 Set Deadline(기한 설정) 옆의 화살표를 클릭합니다. 대회는 일반적으로 최소 2개월 이상 지속됩니다. 대회의 최대 기간은 1년입니다.

규칙 수정

실행하기 전에 기본 템플릿에서 경쟁 규칙을 업데이트해야 합니다. 학급이나 그룹에서 본 경연대회를 진행하는 경우 여기에서 기대치에 관한 정보를 입력하면 좋습니다.

출시

출시 준비가 완료되었습니다. 경쟁을 시작해 보세요. 이제 경쟁업체가 참가할 준비가 되었습니다.

6. 경쟁업체 경험

이제 경쟁을 시작했으므로 경쟁업체의 환경이 어떤지 살펴보겠습니다. 대회 참가 및 제출 방법을 안내해 드립니다. 여기(https://www.kaggle.com/competitions/google-io-demo-competition)에서 Google IO 데모 대회에 참가할 수 있습니다.

대회 참여하기

대회 홈페이지로 이동한 후 '대회 참가'를 클릭합니다. 버튼을 클릭한 다음 규칙을 읽고 확인하세요.

첫 번째 제출물 작성하기

코드 탭으로 이동하여 '새 노트북'을 클릭합니다. 대회에 제출할 수 있는 노트북이 열립니다.

먼저 학습 및 테스트 데이터를 읽어

×# 테스트 읽기 및 데이터 학습

train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')

test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')

데이터를 살펴보겠습니다.

‐# 데이터 보기

train.head()

학습을 위해 데이터를 준비해 보겠습니다. 이 경우 Sex는 숫자 값이 아니므로 Sex를 생략합니다. (힌트: 이를 포함하는 방법을 알아내면 모델의 성능이 개선될 것입니다.)

‐# 테스트 데이터의 결과 제외

data = train.drop(columns=[‘Age', ‘Sex'])

답변 = train[‘연령']

그런 다음 모델을 만듭니다. 이 경우에는 랜덤 포레스트 모델을 수행합니다.

모델의 가져오기# 개

sklearn.model_selection에서 학습_테스트_분할 가져오기

sklearn.ensemble에서 가져오기 RandomForestRegressor

sklearn.metrics 가져오기에서 평균_절대_오류

model = RandomForestRegressor()

# 모델 학습

model.fit(데이터, 답변)

제출물 만들기:

×예측 = model.predict(test.drop(columns=[‘성별’]))

submission = pd.DataFrame({‘id&#39;: test[‘id&#39;], ‘Age&#39;: predictions})

제출물.to_csv(‘submission.csv’, index=False)

그런 다음 '대회에 제출'을 선택하여 대회에 제출할 수 있습니다. 를 클릭합니다.

1cf17449cae53abe.png

뛰어난 경쟁을 위한 팁

  1. 기본 제출을 위한 스타터 노트북을 포함해야 합니다.
  2. 대회 초기에 토론 및 공책 공유 권장
  3. 즐거운 시간 보내시기 바랍니다.