1. บทนำ
อัปเดตล่าสุด 10-05-2024
Kaggle คืออะไร
Kaggle คือ AI ที่ใหญ่ที่สุด ชุมชน ML คือแพลตฟอร์มที่ดีที่สุดสำหรับผู้ชื่นชอบวิทยาศาสตร์ข้อมูลและแมชชีนเลิร์นนิงทุกระดับเพื่อยกระดับเทคนิคและเทคโนโลยีใหม่ล่าสุด ค้นพบที่เก็บชุดข้อมูล สมุดบันทึก และโมเดลก่อนการฝึกขนาดใหญ่เพื่อเริ่มโปรเจ็กต์ถัดไปของคุณ เข้าร่วมการแข่งขัน เรียนรู้จากหลักสูตร และเชื่อมต่อกับชุมชนที่หลากหลายซึ่งมีผู้ใช้กว่า 18 ล้านคนทั่วโลก ไม่ว่าคุณจะเป็นมือใหม่หรือมือโปรมากประสบการณ์ Kaggle คือสถานที่ที่จะพัฒนาทักษะของคุณ ก้าวนำคู่แข่ง และทำงานร่วมกันในโปรเจ็กต์ที่ล้ำสมัย
สิ่งที่คุณจะสร้าง
ใน Codelab นี้ คุณจะสร้าง กำหนดค่า และเปิดการแข่งขัน Kaggle คุณจะอธิบายประสบการณ์ของคู่แข่งและทำความเข้าใจแนวทางปฏิบัติแนะนำสำหรับการแข่งขันที่ดึงดูดใจ
สิ่งที่คุณจะได้เรียนรู้
- ทำความเข้าใจวิธีสร้างและจัดการการแข่งขัน Kaggle จากฝั่งของผู้จัด
- ไปยังส่วนต่างๆ ของประสบการณ์ของคู่แข่ง ตั้งแต่การสำรวจไปจนถึงการส่ง
- ดูแนวทางปฏิบัติแนะนำสำหรับการแข่งขันที่น่าสนใจ
Codelab นี้มุ่งเน้นไปที่การสร้างการแข่งขันอย่างรวดเร็วและใช้ประโยชน์จากไลบรารีการแข่งขันที่เพิ่มขึ้นของ Kaggle
สิ่งที่คุณต้องมี
- เว็บเบราว์เซอร์ล่าสุด
- ความรู้พื้นฐานเกี่ยวกับ Python
2. การตั้งค่า
สร้างบัญชี Kaggle
ไปที่เว็บไซต์ Kaggle (https://www.kaggle.com/) แล้วคลิก "ลงทะเบียน" เพื่อสร้างบัญชีฟรี
ยืนยันบัญชี
- คลิกรูปโปรไฟล์ที่มุมขวาบนของหน้า
- คลิก "โปรไฟล์ของคุณ"
- คลิก "การตั้งค่า" ที่ด้านขวาของเนื้อหาโปรไฟล์
- ในส่วน "การยืนยันทางโทรศัพท์" ทำตามวิธีการเพื่อยืนยันบัญชี
3. สร้างการแข่งขันรายการแรก
ขอแนะนำเทมเพลตการแข่งขันที่ AI สร้างขึ้น
การแข่งขันที่ AI สร้างขึ้นเป็นฟีเจอร์ใหม่ใน Kaggle ที่ช่วยให้ผู้ใช้สร้างการแข่งขันด้านแมชชีนเลิร์นนิงได้อย่างรวดเร็วและง่ายดาย โมเดลนี้ใช้ประโยชน์จาก AI เพื่อสร้างชุดข้อมูลสังเคราะห์ที่เลียนแบบพร็อพเพอร์ตี้ทางสถิติของชุดข้อมูลที่มีอยู่ โดยไม่มีข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้
โดยทำดังนี้
- เลือกเทมเพลต: เลือกจากรายการเทมเพลตตามงานด้านแมชชีนเลิร์นนิงต่างๆ (เช่น การแยกประเภท การถดถอย)
- AI สร้างชุดข้อมูล: AI ของ Kaggle จะสร้างชุดข้อมูลใหม่สำหรับการแข่งขันโดยอิงตามเทมเพลตที่คุณเลือก ชุดข้อมูลนี้คล้ายกับชุดต้นฉบับ แต่ใช้ชุดย่อยของฟีเจอร์และมีการกระจายฟีเจอร์ที่ต่างกันเล็กน้อย
- ปรับแต่งการแข่งขัน: ป้อนรายละเอียดพื้นฐาน เช่น ชื่อการแข่งขัน คำอธิบาย และไทม์ไลน์ และยังเลือกการตั้งค่าความเป็นส่วนตัวให้กับคู่แข่งได้ด้วย
- เปิดตัว: หลังจากสรุปรายละเอียดและตั้งค่าการเปิดตัว คุณก็พร้อมที่จะเปิดตัวคู่แข่งแล้ว
ฟีเจอร์นี้ช่วยลดความซับซ้อนของกระบวนการสร้างการแข่งขัน ทำให้ผู้ใช้เข้าถึงได้มากขึ้นและมุ่งเน้นไปที่แง่มุมของแมชชีนเลิร์นนิงมากกว่าการเตรียมชุดข้อมูล
สร้างการแข่งขัน
ไปที่ https://www.kaggle.com/competitions/new แล้วเลือก "การแข่งขันที่ AI สร้างขึ้นใหม่"
เลือก "การถดถอยที่มีชุดข้อมูลอายุปู" การแข่งขัน
รายละเอียดการแข่งขัน
กรอกชื่อที่สื่อความหมายและคำบรรยาย ตัวอย่างเช่น คุณสามารถใช้ "การแข่งขันทดสอบปูชนิด<ชื่อของคุณ>" เป็นชื่อ และ "การสร้างการแข่งขันครั้งแรกของฉันเพื่อดูวิธีการทำงาน" เป็นคำบรรยาย โปรดทราบว่าระบบจะกรอก URL การแข่งขันโดยอัตโนมัติตามชื่อ
ระดับการเข้าถึงและการเข้าถึง
ตอนนี้เราจำเป็นต้องตั้งค่าการแสดงผลและการเข้าถึงสำหรับการแข่งขัน
ระดับการแชร์
- สาธารณะ: ทุกคนใน Kaggle จะมองเห็นการแข่งขันของคุณ โปรไฟล์จะปรากฏในผลการค้นหาเพื่อให้ทุกคนที่สนใจเข้าร่วมได้
- ส่วนตัว: ระบบซ่อนการแข่งขันจากมุมมองสาธารณะ ชื่อจะไม่ปรากฏในการค้นหา และเฉพาะคนที่คุณเชิญเท่านั้นจึงจะสามารถเข้าร่วมได้
ผู้ที่เข้าร่วมได้
- ทุกคน: นโยบายนี้เป็นนโยบายที่เปิดกว้าง ทุกคนใน Kaggle สามารถเข้าร่วมการแข่งขันของคุณได้
- เฉพาะคนที่มีลิงก์: ตัวเลือกนี้พิเศษกว่า คุณจะสร้างลิงก์พิเศษ และเฉพาะผู้ที่มีลิงก์นั้นเท่านั้นที่จะเข้าร่วมได้
- รายชื่ออีเมลที่ถูกจำกัด: นี่คือตัวเลือกที่มีการควบคุมมากที่สุด คุณให้รายชื่อที่อยู่อีเมลหรือโดเมนที่เจาะจง (เช่น @yourschool.edu) และจะมีเพียงคนที่มีที่อยู่อีเมลดังกล่าวเท่านั้นที่สามารถเข้าร่วมได้
เราจะพูดถึงการตั้งค่าเปิดใช้สมุดบันทึกและโมเดลในภายหลัง ในตอนนี้ โปรดตรวจสอบว่าเปิดใช้งานแล้ว สำหรับการแข่งขันตัวอย่างของเรา ให้ตั้งค่านี้เป็นส่วนตัว และเฉพาะคนที่มีลิงก์
อ่านและยอมรับข้อกำหนด และคลิก "สร้างการแข่งขัน"
4. การทำความเข้าใจและกำหนดค่าการแข่งขัน
เราได้สร้างการแข่งขันครั้งใหม่ที่มีชุดข้อมูลที่ไม่เหมือนใครในเบื้องหลัง มาดูการตั้งค่าการแข่งขันแบบคร่าวๆ กัน
แท็บโฮสต์
แท็บโฮสต์มีทุกอย่างที่คุณต้องมีในฐานะผู้จัดเพื่อกำหนดค่าการแข่งขันอย่างเหมาะสม ให้ดูรายการหน้าเว็บที่ด้านขวาของหน้า:
รายละเอียดพื้นฐาน
เนื้อหาในส่วนนี้ประกอบด้วย
- ทั่วไป
- ความเป็นส่วนตัว การเข้าถึง และ แหล่งข้อมูล
- ไทม์ไลน์
- การให้คะแนนและ ทีม
เราได้พูดถึงหัวข้อทั่วไปและความเป็นส่วนตัวเมื่อเปิดตัวการแข่งขัน
ลำดับเวลา
วันที่สิ้นสุดการแข่งขันขึ้นอยู่กับเขตเวลา
การให้คะแนนและ ทีม
การให้คะแนนและ ส่วนทีมช่วยให้คุณควบคุมจำนวนคนที่สามารถเข้าร่วมทีม จำนวนครั้งที่สามารถส่งได้ในแต่ละวัน และจำนวนงานที่ต้องเลือกสำหรับการประเมินผลขั้นสุดท้าย
รูปภาพ
รูปภาพช่วยให้คุณสามารถปรับแต่งแบนเนอร์และภาพขนาดย่อเพื่อการแข่งขันได้ ซึ่งจะมีผลต่อหน้าแรกของการประกวดและรายชื่อสำหรับการแข่งขันของคุณ
ผู้จัด
คุณสามารถเพิ่มผู้ใช้ Kaggle คนอื่นๆ เป็นผู้จัดการแข่งขัน ผู้จัดอื่นๆ จะมีสิทธิ์เต็มรูปแบบ (รวมถึงการเปิดตัว) ในการแข่งขันของคุณ
เมตริกการประเมิน
แท็บเมตริกการประเมินคือหัวใจสำคัญของการแข่งขัน เมื่อสร้างการแข่งขันใหม่ตั้งแต่ต้น คุณจะต้องพิจารณาอย่างรอบคอบว่าจะใช้เมตริกการประเมิน (หรือการให้คะแนน) ใด อัปโหลดไฟล์โซลูชัน กำหนดฝั่งทดสอบแบบสาธารณะ/ส่วนตัว และแสดงตัวอย่างการส่ง แต่เนื่องจากเราใช้การแข่งขันที่สร้างขึ้น จึงไม่จำเป็นต้องดำเนินการใดๆ ทั้งสิ้น
เมตริกคะแนน
ซึ่งจะกำหนดคะแนนงานที่ส่งเทียบกับไฟล์โซลูชัน เมตริกแต่ละรายการจะมีเอกสารประกอบและโค้ดจริง
ไฟล์โซลูชัน
เนื่องจากเราใช้การแข่งขันที่สร้างขึ้น ไฟล์นี้จึงเป็นไฟล์เฉพาะสำหรับการแข่งขันของคุณ!
การสุ่มตัวอย่างโซลูชันช่วยให้คุณสามารถปรับจำนวนไฟล์โซลูชันที่ใช้เพื่อให้คะแนนการส่งงานในระหว่างการแข่งขัน (ลีดเดอร์บอร์ดสาธารณะ) เทียบกับจำนวนแถวที่ใช้เพื่อกำหนดลีดเดอร์บอร์ดสุดท้าย ในระหว่างการแข่งขัน ผู้ใช้จะสามารถเลือก (ขึ้นอยู่กับการตั้งค่าการส่งแบบส่วนตัวที่ได้รับคะแนน) ว่าข้อมูลใดจะถูกนำไปใช้เป็นลีดเดอร์บอร์ดสุดท้าย (ซึ่งเรียกว่าลีดเดอร์บอร์ดส่วนตัวที่นี่)
ขั้นตอนนี้ช่วยให้มั่นใจได้ว่าคู่แข่งไม่ได้รางวัลจากการส่งเนื้อหามากเกินไปหรือเยอะเกินไป
การส่งแซนด์บ็อกซ์
การทำเช่นนี้ช่วยให้ผู้จัดแข่งขันมั่นใจว่าการทำคะแนนเป็นไปตามที่คาดไว้ และช่วยให้กำหนด "การเปรียบเทียบ" ได้ ข้อมูลที่ส่งโดยคู่แข่งเพื่อเปรียบเทียบ ข้อมูลเปรียบเทียบที่ส่งมาเหล่านี้จะแสดงในลีดเดอร์บอร์ด
ทีมและ ข้อมูลที่ส่ง
ในระหว่างการแข่งขัน เจ้าภาพจะดาวน์โหลดคะแนนทั้งหมดและจัดการทีมได้ ส่วนนี้ว่างเปล่าก่อนที่การแข่งขันจะเริ่มขึ้น
Launch Checklist
เราจะกล่าวถึงเรื่องนี้ในส่วนถัดไป
5. เริ่มการแข่งขัน
จากด้านบนของหน้าการแข่งขัน ให้คลิก "รายการตรวจสอบการเปิดตัว"
Launch Checklist
รายการตรวจสอบการเปิดตัวจะแสดงขั้นตอนที่ต้องทำก่อนเปิดตัวการแข่งขัน เพราะเราเริ่มจากเทมเพลตการแข่งขันไปแล้ว ขั้นตอนส่วนใหญ่ก็เสร็จสมบูรณ์แล้ว มีงานเหลืออยู่เพียง 2 งาน ได้แก่ การกำหนดเวลาและการอัปเดตกฎการแข่งขัน
กำหนดเวลา
ขั้นแรก ให้คลิกลูกศรถัดจาก "กำหนดเวลา" โดยทั่วไปการแข่งขันจะใช้เวลาอย่างน้อย 2-3 เดือน ความยาวสูงสุดสำหรับการแข่งขันคือ 1 ปี
แก้ไขกฎ
ต้องอัปเดตกฎการแข่งขันจากเทมเพลตเริ่มต้นก่อนเปิดใช้งาน หากคุณต้องการจัดการแข่งขันสำหรับชั้นเรียนหรือกลุ่ม เราขอแนะนำให้คุณกรอกข้อมูลเกี่ยวกับความคาดหวัง
เปิดตัว
เราพร้อมเปิดตัวแล้ว เริ่มต้นการแข่งขันได้เลย คุณพร้อมให้คู่แข่งเข้าร่วมแล้ว!
6. ประสบการณ์ของคู่แข่ง
เมื่อคุณเปิดตัวการแข่งขันแล้ว มาดูกันว่าประสบการณ์ของคู่แข่งเป็นอย่างไร เราจะพูดถึงการเข้าร่วมการประกวดและการส่งผลงาน คุณสามารถเข้าร่วมการแข่งขันสาธิต IO ของ Google ได้ที่ https://www.kaggle.com/competitions/google-io-demo-competition
การเข้าร่วมการแข่งขัน
หลังจากไปยังหน้าแรกของการแข่งขันแล้ว ให้คลิกปุ่ม "เข้าร่วมการแข่งขัน" ที่มุมบนขวา จากนั้นอ่านและรับทราบกฎ
การส่งครั้งแรก
ไปที่แท็บโค้ด แล้วคลิก "สมุดบันทึกใหม่" ซึ่งจะเป็นการเปิดสมุดบันทึกที่อนุญาตให้คุณส่งเข้าร่วมการแข่งขัน
ก่อนอื่น เราจะอ่านข้อมูลในการฝึกและการทดสอบ
# อ่านการทดสอบและฝึกข้อมูล
รถไฟ = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')
ทดสอบ = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')
เรามาดูข้อมูลกัน
Ⰳ# ดูข้อมูลบางส่วน
train.head()
มาเตรียมข้อมูลสำหรับการฝึกกัน ในกรณีนี้ เราจะไม่แสดง "เพศ" เนื่องจากไม่ใช่ค่าที่เป็นตัวเลข (คำแนะนำ: การหาวิธีรวมส่วนนี้ไว้น่าจะช่วยปรับปรุงประสิทธิภาพของโมเดลได้)
Ⰳ # ไม่แสดงผลลัพธ์จากข้อมูลการทดสอบ
data = train.drop(columns=["อายุ", "เพศ"])
คำตอบ = ฝึก[‘Age']
จากนั้นเราจะสร้างโมเดล ในกรณีนี้ เราจะทำโมเดลป่าแบบสุ่ม
# การนำเข้าสำหรับโมเดล
จาก sklearn.model_selection นำเข้า train_test_split
จาก sklearn.ensignal นำเข้า RandomForestRegressor
จาก sklearn.metrics นำเข้าMean_absolute_error
โมเดล = RandomForestRegressor()
# ฝึกโมเดล
Model.fit(ข้อมูล, คำตอบ)
สร้างการส่ง:
尃การคาดคะเน = model.predict(test.drop(columns=["เพศ']))
submission = pd.DataFrame({‘id': test[‘id'], ‘Age': predictions})
submit.to_csv(‘submission.csv',ดัชนี=เท็จ)
จากนั้น คุณสามารถส่งเข้าแข่งขันโดยเลือก "ส่งเข้าร่วมการแข่งขัน" ที่เมนูด้านขวา
เคล็ดลับในการจัดการแข่งขันที่ยอดเยี่ยม
- ตรวจสอบว่าได้รวมสมุดบันทึกเริ่มต้นที่ส่งแบบพื้นฐานไว้แล้ว
- ส่งเสริมการพูดคุยและใช้สมุดบันทึกร่วมกันตั้งแต่เนิ่นๆ ในการแข่งขัน
- สนุกกับการสร้างสรรค์