เพิ่มทักษะให้องค์กรในด้าน ML/AI ด้วย Kaggle

1. บทนำ

47566e1490c16443.png

อัปเดตล่าสุด 10-05-2024

Kaggle คืออะไร

Kaggle คือ AI ที่ใหญ่ที่สุด ชุมชน ML คือแพลตฟอร์มที่ดีที่สุดสำหรับผู้ชื่นชอบวิทยาศาสตร์ข้อมูลและแมชชีนเลิร์นนิงทุกระดับเพื่อยกระดับเทคนิคและเทคโนโลยีใหม่ล่าสุด ค้นพบที่เก็บชุดข้อมูล สมุดบันทึก และโมเดลก่อนการฝึกขนาดใหญ่เพื่อเริ่มโปรเจ็กต์ถัดไปของคุณ เข้าร่วมการแข่งขัน เรียนรู้จากหลักสูตร และเชื่อมต่อกับชุมชนที่หลากหลายซึ่งมีผู้ใช้กว่า 18 ล้านคนทั่วโลก ไม่ว่าคุณจะเป็นมือใหม่หรือมือโปรมากประสบการณ์ 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 สร้างชุดข้อมูล: AI ของ Kaggle จะสร้างชุดข้อมูลใหม่สำหรับการแข่งขันโดยอิงตามเทมเพลตที่คุณเลือก ชุดข้อมูลนี้คล้ายกับชุดต้นฉบับ แต่ใช้ชุดย่อยของฟีเจอร์และมีการกระจายฟีเจอร์ที่ต่างกันเล็กน้อย
  3. ปรับแต่งการแข่งขัน: ป้อนรายละเอียดพื้นฐาน เช่น ชื่อการแข่งขัน คำอธิบาย และไทม์ไลน์ และยังเลือกการตั้งค่าความเป็นส่วนตัวให้กับคู่แข่งได้ด้วย
  4. เปิดตัว: หลังจากสรุปรายละเอียดและตั้งค่าการเปิดตัว คุณก็พร้อมที่จะเปิดตัวคู่แข่งแล้ว

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

สร้างการแข่งขัน

ไปที่ https://www.kaggle.com/competitions/new แล้วเลือก "การแข่งขันที่ AI สร้างขึ้นใหม่"

2629bf77a282a46c.png

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

รายละเอียดการแข่งขัน

2dd2228b9d686a6e.png

กรอกชื่อที่สื่อความหมายและคำบรรยาย ตัวอย่างเช่น คุณสามารถใช้ "การแข่งขันทดสอบปูชนิด<ชื่อของคุณ>" เป็นชื่อ และ "การสร้างการแข่งขันครั้งแรกของฉันเพื่อดูวิธีการทำงาน" เป็นคำบรรยาย โปรดทราบว่าระบบจะกรอก URL การแข่งขันโดยอัตโนมัติตามชื่อ

ระดับการเข้าถึงและการเข้าถึง

ตอนนี้เราจำเป็นต้องตั้งค่าการแสดงผลและการเข้าถึงสำหรับการแข่งขัน

5c7dcae412ddd574.png

ระดับการแชร์

  • สาธารณะ: ทุกคนใน Kaggle จะมองเห็นการแข่งขันของคุณ โปรไฟล์จะปรากฏในผลการค้นหาเพื่อให้ทุกคนที่สนใจเข้าร่วมได้
  • ส่วนตัว: ระบบซ่อนการแข่งขันจากมุมมองสาธารณะ ชื่อจะไม่ปรากฏในการค้นหา และเฉพาะคนที่คุณเชิญเท่านั้นจึงจะสามารถเข้าร่วมได้

ผู้ที่เข้าร่วมได้

  • ทุกคน: นโยบายนี้เป็นนโยบายที่เปิดกว้าง ทุกคนใน Kaggle สามารถเข้าร่วมการแข่งขันของคุณได้
  • เฉพาะคนที่มีลิงก์: ตัวเลือกนี้พิเศษกว่า คุณจะสร้างลิงก์พิเศษ และเฉพาะผู้ที่มีลิงก์นั้นเท่านั้นที่จะเข้าร่วมได้
  • รายชื่ออีเมลที่ถูกจำกัด: นี่คือตัวเลือกที่มีการควบคุมมากที่สุด คุณให้รายชื่อที่อยู่อีเมลหรือโดเมนที่เจาะจง (เช่น @yourschool.edu) และจะมีเพียงคนที่มีที่อยู่อีเมลดังกล่าวเท่านั้นที่สามารถเข้าร่วมได้

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

อ่านและยอมรับข้อกำหนด และคลิก "สร้างการแข่งขัน"

4. การทำความเข้าใจและกำหนดค่าการแข่งขัน

เราได้สร้างการแข่งขันครั้งใหม่ที่มีชุดข้อมูลที่ไม่เหมือนใครในเบื้องหลัง มาดูการตั้งค่าการแข่งขันแบบคร่าวๆ กัน

แท็บโฮสต์

แท็บโฮสต์มีทุกอย่างที่คุณต้องมีในฐานะผู้จัดเพื่อกำหนดค่าการแข่งขันอย่างเหมาะสม ให้ดูรายการหน้าเว็บที่ด้านขวาของหน้า:

bcedd6768cc4f32c.png

รายละเอียดพื้นฐาน

เนื้อหาในส่วนนี้ประกอบด้วย

  • ทั่วไป
  • ความเป็นส่วนตัว การเข้าถึง และ แหล่งข้อมูล
  • ไทม์ไลน์
  • การให้คะแนนและ ทีม

เราได้พูดถึงหัวข้อทั่วไปและความเป็นส่วนตัวเมื่อเปิดตัวการแข่งขัน

ลำดับเวลา

วันที่สิ้นสุดการแข่งขันขึ้นอยู่กับเขตเวลา

7141f4aea90bccb0.png

การให้คะแนนและ ทีม

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

5efb6387612db941.png

รูปภาพ

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

6dfd442376a1c702.png

ผู้จัด

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

8f8c90eb6baa7747.png

เมตริกการประเมิน

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

เมตริกคะแนน

ซึ่งจะกำหนดคะแนนงานที่ส่งเทียบกับไฟล์โซลูชัน เมตริกแต่ละรายการจะมีเอกสารประกอบและโค้ดจริง

ไฟล์โซลูชัน

เนื่องจากเราใช้การแข่งขันที่สร้างขึ้น ไฟล์นี้จึงเป็นไฟล์เฉพาะสำหรับการแข่งขันของคุณ!

89fa1f42d177505a.png

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

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

การส่งแซนด์บ็อกซ์

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

ทีมและ ข้อมูลที่ส่ง

ในระหว่างการแข่งขัน เจ้าภาพจะดาวน์โหลดคะแนนทั้งหมดและจัดการทีมได้ ส่วนนี้ว่างเปล่าก่อนที่การแข่งขันจะเริ่มขึ้น

Launch Checklist

เราจะกล่าวถึงเรื่องนี้ในส่วนถัดไป

5. เริ่มการแข่งขัน

50b03df072c02e6a.png

จากด้านบนของหน้าการแข่งขัน ให้คลิก "รายการตรวจสอบการเปิดตัว"

Launch Checklist

รายการตรวจสอบการเปิดตัวจะแสดงขั้นตอนที่ต้องทำก่อนเปิดตัวการแข่งขัน เพราะเราเริ่มจากเทมเพลตการแข่งขันไปแล้ว ขั้นตอนส่วนใหญ่ก็เสร็จสมบูรณ์แล้ว มีงานเหลืออยู่เพียง 2 งาน ได้แก่ การกำหนดเวลาและการอัปเดตกฎการแข่งขัน

938b9ed7bc4e0597.png

กำหนดเวลา

ขั้นแรก ให้คลิกลูกศรถัดจาก "กำหนดเวลา" โดยทั่วไปการแข่งขันจะใช้เวลาอย่างน้อย 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&#39;: test[‘id&#39;], ‘Age&#39;: predictions})

submit.to_csv(‘submission.csv',ดัชนี=เท็จ)

จากนั้น คุณสามารถส่งเข้าแข่งขันโดยเลือก "ส่งเข้าร่วมการแข่งขัน" ที่เมนูด้านขวา

1cf17449cae53abe.png

เคล็ดลับในการจัดการแข่งขันที่ยอดเยี่ยม

  1. ตรวจสอบว่าได้รวมสมุดบันทึกเริ่มต้นที่ส่งแบบพื้นฐานไว้แล้ว
  2. ส่งเสริมการพูดคุยและใช้สมุดบันทึกร่วมกันตั้งแต่เนิ่นๆ ในการแข่งขัน
  3. สนุกกับการสร้างสรรค์