1. บทนำ

อัปเดตล่าสุด: 10-05-2024
Kaggle คืออะไร
Kaggle เป็นชุมชน AI และ ML ที่ใหญ่ที่สุด ซึ่งเป็นแพลตฟอร์มที่ดีที่สุดสำหรับผู้ที่ชื่นชอบวิทยาศาสตร์ข้อมูลและแมชชีนเลิร์นนิงทุกระดับเพื่อเลื่อนระดับด้วยเทคนิคและเทคโนโลยีล่าสุด ค้นพบที่เก็บข้อมูลขนาดใหญ่ของชุดข้อมูล Notebook และโมเดลที่ผ่านการฝึกมาแล้วเพื่อเริ่มต้นโปรเจ็กต์ถัดไป เข้าร่วมการแข่งขัน เรียนรู้จากหลักสูตร และเชื่อมต่อกับชุมชนที่หลากหลายซึ่งมีผู้ใช้กว่า 18 ล้านคนจากทั่วโลก ไม่ว่าคุณจะเป็นมือใหม่หรือมือโปรมากประสบการณ์ Kaggle คือที่ที่จะช่วยให้คุณฝึกฝนทักษะ ก้าวล้ำนำหน้า และทำงานร่วมกันในโปรเจ็กต์ที่ล้ำสมัย
สิ่งที่คุณจะสร้าง
ใน Codelab นี้ คุณจะได้สร้าง กำหนดค่า และเปิดตัวการแข่งขัน Kaggle คุณจะได้ดูประสบการณ์ของคู่แข่งและทำความเข้าใจแนวทางปฏิบัติแนะนำในการจัดการแข่งขันที่น่าสนใจ
สิ่งที่คุณจะได้เรียนรู้
- ทำความเข้าใจวิธีสร้างและจัดการการแข่งขัน Kaggle จากฝั่งผู้จัดการแข่งขัน
- ดูประสบการณ์ของคู่แข่งตั้งแต่การสำรวจไปจนถึงการส่ง
- ดูแนวทางปฏิบัติแนะนำในการจัดการแข่งขันที่น่าสนใจ
Codelab นี้มุ่งเน้นการสร้างการแข่งขันอย่างรวดเร็วและการใช้ประโยชน์จากคลังการแข่งขันที่เพิ่มขึ้นของ Kaggle
สิ่งที่คุณต้องมี
- เว็บเบราว์เซอร์เวอร์ชันล่าสุด
- ความรู้พื้นฐานเกี่ยวกับ Python
2. การเริ่มตั้งค่า
สร้างบัญชี Kaggle
ไปที่เว็บไซต์ Kaggle (https://www.kaggle.com/) แล้วคลิก "ลงทะเบียน" เพื่อสร้างบัญชีฟรี
ยืนยันบัญชี
- คลิกรูปโปรไฟล์ที่มุมขวาบนของหน้า
- คลิก "โปรไฟล์ของคุณ"
- คลิกปุ่ม "การตั้งค่า" ทางด้านขวาของเนื้อหาโปรไฟล์
- ในส่วน "การยืนยันทางโทรศัพท์" ให้ทำตามวิธีการเพื่อยืนยันบัญชี
3. สร้างการแข่งขันครั้งแรก
ขอแนะนำเทมเพลตการแข่งขันที่ AI สร้างขึ้น
AI Generated Competitions เป็นฟีเจอร์ใหม่ใน Kaggle ที่ช่วยให้ผู้ใช้สร้างการแข่งขันแมชชีนเลิร์นนิงได้อย่างรวดเร็วและง่ายดาย โดยใช้ประโยชน์จาก AI เพื่อสร้างชุดข้อมูลสังเคราะห์ที่เลียนแบบคุณสมบัติทางสถิติของชุดข้อมูลที่มีอยู่โดยไม่มีข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้
วิธีการมีดังนี้
- เลือกเทมเพลต: เลือกจากรายการเทมเพลตตามงานแมชชีนเลิร์นนิงต่างๆ (เช่น การแยกประเภท การถดถอย)
- AI สร้างชุดข้อมูล: AI ของ Kaggle จะสร้างชุดข้อมูลใหม่สำหรับการแข่งขันตามเทมเพลตที่คุณเลือก ชุดข้อมูลนี้คล้ายกับชุดข้อมูลเดิม แต่ใช้ชุดย่อยของฟีเจอร์และมีการกระจายฟีเจอร์ที่แตกต่างกันเล็กน้อย
- ปรับแต่งการแข่งขัน: ป้อนรายละเอียดพื้นฐาน เช่น ชื่อ คำอธิบาย และไทม์ไลน์ของการแข่งขัน รวมทั้งยังเลือกการตั้งค่าความเป็นส่วนตัวสำหรับการแข่งขันได้อีกด้วย
- เปิดตัว: หลังจากสรุปรายละเอียดและตั้งค่าการเปิดตัวแล้ว คุณก็พร้อมที่จะเปิดตัวการแข่งขัน
ฟีเจอร์นี้ช่วยเพิ่มประสิทธิภาพกระบวนการสร้างการแข่งขัน ทำให้ผู้ใช้จำนวนมากขึ้นเข้าถึงได้ง่าย และช่วยให้ผู้ใช้มุ่งเน้นไปที่ด้านแมชชีนเลิร์นนิงแทนการเตรียมชุดข้อมูล
สร้างการแข่งขัน
ไปที่ https://www.kaggle.com/competitions/new แล้วเลือก "การแข่งขันใหม่ที่ AI สร้างขึ้น"

เลือกการแข่งขัน "การถดถอยด้วยชุดข้อมูลอายุของปู"
รายละเอียดการแข่งขัน

กรอกชื่อและคำบรรยายแทนเสียงที่สื่อความหมาย เช่น คุณอาจใช้ "การแข่งขันปูทดสอบของ <ชื่อของคุณ>" เป็นชื่อ และ "สร้างการแข่งขันแรกเพื่อดูว่าการแข่งขันทำงานอย่างไร" เป็นชื่อย่อย โปรดทราบว่าระบบจะกรอก URL ของการแข่งขันโดยอัตโนมัติตามชื่อ
การมองเห็นและการเข้าถึง
ตอนนี้เราต้องตั้งค่าระดับการมองเห็นและการเข้าถึงสำหรับการแข่งขัน
ระดับการแชร์
- สาธารณะ: ทุกคนใน Kaggle จะเห็นการแข่งขันของคุณ โดยจะปรากฏในผลการค้นหาเพื่อให้ทุกคนที่สนใจเข้าร่วมได้
- ส่วนตัว: ระบบจะซ่อนการแข่งขันของคุณจากมุมมองสาธารณะ โดยจะไม่มีการแสดงในผลการค้นหา และมีเพียงบุคคลที่คุณเชิญเท่านั้นที่จะเข้าร่วมได้
ผู้ที่เข้าร่วมได้
- ทุกคน: เหมือนนโยบายที่สนับสนุนให้มีการสื่อสารกันอย่างตรงไปตรงมา ทุกคนใน Kaggle จะเข้าร่วมการแข่งขันของคุณได้
- เฉพาะผู้ที่มีลิงก์: ตัวเลือกนี้มีความเป็นส่วนตัวมากกว่า คุณจะสร้างลิงก์พิเศษ และเฉพาะผู้ที่มีลิงก์ดังกล่าวเท่านั้นที่จะเข้าร่วมได้
- รายชื่ออีเมลที่จำกัด: ตัวเลือกนี้มีการควบคุมมากที่สุด คุณระบุรายการอีเมลหรือโดเมนที่เฉพาะเจาะจง (เช่น @yourschool.edu) และอนุญาตให้เฉพาะผู้ที่มีอีเมลเหล่านั้นเข้าร่วมได้
เราจะพูดคุยเพิ่มเติมเกี่ยวกับการตั้งค่าเปิดใช้ Notebook และโมเดลในภายหลัง ตอนนี้ให้ตรวจสอบว่าเปิดอยู่ สำหรับการแข่งขันตัวอย่าง ให้ตั้งค่าเหล่านี้เป็นส่วนตัวและเฉพาะผู้ที่มีลิงก์
อ่านและยอมรับข้อกำหนด แล้วคลิก "สร้างการแข่งขัน"
4. ทำความเข้าใจและกำหนดค่าการแข่งขัน
เบื้องหลัง เราได้สร้างการแข่งขันใหม่ทั้งหมดพร้อมชุดข้อมูลที่ไม่ซ้ำกัน มาดูการตั้งค่าการแข่งขันกันคร่าวๆ
แท็บโฮสต์
แท็บโฮสต์มีทุกสิ่งที่คุณต้องใช้ในฐานะโฮสต์เพื่อกำหนดค่าการแข่งขันอย่างถูกต้อง ดูรายการหน้าเว็บทางด้านขวาของหน้าเว็บ

รายละเอียดพื้นฐาน
ส่วนนี้ประกอบด้วย
- ทั่วไป
- ความเป็นส่วนตัว การเข้าถึง และแหล่งข้อมูล
- ไทม์ไลน์
- การให้คะแนนและทีม
เราได้กล่าวถึงส่วนทั่วไปและความเป็นส่วนตัวเมื่อเปิดตัวการแข่งขัน
ลำดับเวลา
วันที่สิ้นสุดการแข่งขันจะคำนึงถึงเขตเวลา

การให้คะแนนและทีม
ส่วนการให้คะแนนและทีมช่วยให้คุณควบคุมจำนวนผู้ที่เข้าร่วมทีม จำนวนครั้งที่ผู้ใช้ส่งได้ในแต่ละวัน และจำนวนผลงานที่ผู้ใช้ต้องเลือกเพื่อรับการประเมินขั้นสุดท้าย

รูปภาพ
รูปภาพช่วยให้คุณปรับแต่งแบนเนอร์และภาพปกสำหรับการแข่งขันได้ ซึ่งจะส่งผลต่อหน้าแรกของการแข่งขัน รวมถึงรายการข้อมูลสำหรับการแข่งขันของคุณ

โฮสต์
ในส่วนนี้ คุณสามารถเพิ่มผู้ใช้ Kaggle คนอื่นๆ เป็นผู้จัดการแข่งขันได้ โฮสต์คนอื่นๆ จะมีสิทธิ์เข้าถึงการแข่งขันของคุณอย่างเต็มรูปแบบ (รวมถึงการเปิดตัว)

เมตริกการประเมิน
แท็บเมตริกการประเมินเป็นหัวใจสำคัญของการแข่งขัน เมื่อสร้างการแข่งขันตั้งแต่ต้น คุณต้องพิจารณาอย่างรอบคอบว่าจะใช้เมตริกการประเมิน (หรือการให้คะแนน) ใด อัปโหลดไฟล์โซลูชัน กำหนดการแยกชุดทดสอบสาธารณะ/ส่วนตัว และส่งตัวอย่าง แต่เนื่องจากเราใช้การแข่งขันที่สร้างขึ้น จึงไม่จำเป็นต้องทำสิ่งเหล่านี้
เมตริกการให้คะแนน
ซึ่งจะเป็นตัวกำหนดวิธีให้คะแนนการส่งเทียบกับไฟล์เฉลย เมตริกแต่ละรายการมีเอกสารประกอบและโค้ดจริงให้ใช้งาน
ไฟล์โซลูชัน
เนื่องจากเราใช้การแข่งขันที่สร้างขึ้น ไฟล์นี้จึงเป็นการแข่งขันของคุณโดยเฉพาะ

การสุ่มตัวอย่างโซลูชันช่วยให้คุณปรับจำนวนไฟล์โซลูชันที่ใช้ให้คะแนนการส่งในระหว่างการแข่งขัน (ลีดเดอร์บอร์ดสาธารณะ) กับจำนวนแถวที่ใช้ในการกำหนดลีดเดอร์บอร์ดสุดท้ายได้ ในระหว่างการแข่งขัน ผู้ใช้จะได้รับอนุญาตให้เลือก (ตามการตั้งค่าการส่งแบบส่วนตัวที่ให้คะแนน) ว่าจะใช้การส่งใดในการจัดอันดับสุดท้าย (เรียกว่าลีดเดอร์บอร์ดส่วนตัวที่นี่)
กระบวนการนี้ช่วยให้มั่นใจได้ว่าคู่แข่งจะไม่ได้รับรางวัลสำหรับการปรับมากเกินไปหรือการส่งผลงานจำนวนมาก
การส่งแซนด์บ็อกซ์
ซึ่งจะช่วยให้ผู้จัดการแข่งขันมั่นใจได้ว่าการให้คะแนนจะทำงานได้ตามที่คาดไว้ และช่วยให้ผู้จัดการแข่งขันตั้งค่าการส่ง "การเปรียบเทียบ" เพื่อให้ผู้เข้าแข่งขันนำไปเปรียบเทียบได้ การส่งการเปรียบเทียบเหล่านี้จะแสดงในลีดเดอร์บอร์ด
ทีมและการส่ง
ในระหว่างการแข่งขัน การดำเนินการนี้จะช่วยให้ผู้จัดการแข่งขันดาวน์โหลดคะแนนทั้งหมด รวมถึงจัดการทีมได้ ก่อนการแข่งขันจะเริ่มขึ้น ส่วนนี้จะว่างเปล่า
Launch Checklist
ซึ่งเราจะกล่าวถึงในส่วนถัดไป
5. การเปิดตัวการแข่งขัน
คลิกปุ่ม "รายการตรวจสอบการเปิดตัว" ที่ด้านบนของหน้าการแข่งขัน
Launch Checklist
รายการตรวจสอบการเปิดตัวจะแสดงขั้นตอนที่ต้องดำเนินการก่อนเปิดตัวการแข่งขัน เนื่องจากเราเริ่มต้นจากเทมเพลตการแข่งขันแล้ว ขั้นตอนส่วนใหญ่จึงเสร็จสมบูรณ์แล้ว เหลือเพียง 2 งานที่ต้องทำ ได้แก่ การกำหนดกำหนดเวลาและการอัปเดตกฎการแข่งขัน

กำหนดเวลา
ก่อนอื่นให้คลิกลูกศรข้าง "กำหนดเวลาส่ง" โดยปกติแล้วการแข่งขันจะใช้เวลาอย่างน้อย 2-3 เดือน การแข่งขันมีความยาวสูงสุด 1 ปี
แก้ไขกฎ
คุณต้องอัปเดตกฎการแข่งขันจากเทมเพลตเริ่มต้นก่อนเปิดตัว หากคุณจัดการแข่งขันนี้สำหรับชั้นเรียนหรือกลุ่ม นี่คือที่ที่เหมาะในการใส่ข้อมูลเกี่ยวกับความคาดหวัง
เปิดตัว
เราพร้อมเปิดตัวแล้ว เปิดตัวการแข่งขันได้เลย ตอนนี้คุณก็พร้อมให้คู่แข่งเข้าร่วมแล้ว
6. ประสบการณ์ของคู่แข่ง
ตอนนี้คุณได้เปิดตัวการแข่งขันแล้ว มาดูกันว่าประสบการณ์ของคู่แข่งจะเป็นอย่างไร เราจะพูดถึงการเข้าร่วมการแข่งขันและการส่งผลงาน โดยคุณสามารถเข้าร่วมการแข่งขัน Google IO Demo ได้ที่ https://www.kaggle.com/competitions/google-io-demo-competition
เข้าร่วมการแข่งขัน
หลังจากไปที่หน้าแรกของการแข่งขันแล้ว ให้คลิกปุ่ม "เข้าร่วมการแข่งขัน" ที่ด้านขวาบน จากนั้นอ่านและรับทราบกฎ
การส่งตัวอย่างข้อมูลครั้งแรก
ไปที่แท็บโค้ดแล้วคลิก "Notebook ใหม่" ซึ่งจะเป็นการเปิด Notebook ที่จะช่วยให้คุณส่งผลงานเข้าร่วมการแข่งขันได้
ก่อนอื่นเราจะอ่านข้อมูลการฝึกและทดสอบ
# 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')
มาดูข้อมูลกัน
# ดูข้อมูลบางส่วน
train.head()
มาเตรียมข้อมูลสำหรับการฝึกกัน ในกรณีนี้ เราจะทิ้ง Sex ออกไปเนื่องจากไม่ใช่ค่าตัวเลข (คำแนะนำ: การหาวิธีรวมข้อมูลนี้จะช่วยปรับปรุงประสิทธิภาพของโมเดล)
# drop out the results from the test data
data = train.drop(columns=[‘Age', ‘Sex'])
answers = train[‘Age']
จากนั้นเราจะสร้างโมเดล ในกรณีนี้ เราจะใช้โมเดล Random Forest
# การนำเข้าสำหรับโมเดล
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
model = RandomForestRegressor()
# ฝึกโมเดล
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)
จากนั้นคุณสามารถส่งผลงานเข้าประกวดได้โดยเลือก "ส่งผลงานเข้าประกวด" ในเมนูด้านขวา

เคล็ดลับในการจัดการแข่งขันที่ยอดเยี่ยม
- อย่าลืมใส่ Notebook เริ่มต้นที่ทำการส่งพื้นฐาน
- สนับสนุนให้ใช้การสนทนาและแชร์ Notebook ตั้งแต่เนิ่นๆ ในการแข่งขัน
- สนุกกับการสร้างสรรค์

