1. Giới thiệu

Cập nhật lần gần đây nhất: 10/05/2024
Kaggle là gì?
Kaggle là cộng đồng AI và ML lớn nhất, nền tảng tối ưu dành cho những người đam mê khoa học dữ liệu và học máy ở mọi cấp độ để nâng cao trình độ bằng các kỹ thuật và công nghệ mới nhất. Khám phá kho lưu trữ rộng lớn gồm các tập dữ liệu, sổ tay và mô hình được huấn luyện trước để bắt đầu dự án tiếp theo. Tham gia các cuộc thi, học hỏi từ các khoá học và kết nối với một cộng đồng đa dạng gồm hơn 18 triệu người dùng trên khắp thế giới. Dù là người mới bắt đầu hay chuyên gia dày dặn kinh nghiệm, Kaggle là nơi để bạn trau dồi kỹ năng, luôn đi đầu và cộng tác trong các dự án tiên tiến.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ tạo, định cấu hình và khởi chạy một cuộc thi trên Kaggle. Bạn sẽ trải nghiệm như một người tham gia cuộc thi và tìm hiểu các phương pháp hay nhất để tổ chức một cuộc thi hấp dẫn.
Kiến thức bạn sẽ học được
- Tìm hiểu cách tạo và quản lý một cuộc thi trên Kaggle từ phía người tổ chức
- Trải nghiệm như một người tham gia cuộc thi, từ khám phá đến gửi bài dự thi
- Tìm hiểu các phương pháp hay nhất để tổ chức một cuộc thi hấp dẫn
Lớp học lập trình này tập trung vào việc tạo một cuộc thi một cách nhanh chóng và tận dụng thư viện cuộc thi đang phát triển của Kaggle.
Bạn cần có
- Một trình duyệt web gần đây
- Kiến thức cơ bản về Python
2. Thiết lập
Tạo tài khoản Kaggle
Truy cập vào trang web Kaggle (https://www.kaggle.com/) rồi nhấp vào "Register" (Đăng ký) để tạo tài khoản miễn phí.
Xác minh tài khoản
- Ở góc trên cùng bên phải của trang, hãy nhấp vào ảnh hồ sơ của bạn
- Nhấp vào "Your Profile" (Hồ sơ của bạn)
- Nhấp vào nút "Settings" (Cài đặt) ở bên phải nội dung hồ sơ
- Trong phần "Phone Verification" (Xác minh qua điện thoại), hãy làm theo hướng dẫn để xác minh tài khoản của bạn
3. Tạo cuộc thi đầu tiên
Giới thiệu mẫu cuộc thi do AI tạo
AI Generated Competitions (Cuộc thi do AI tạo) là một tính năng mới trên Kaggle cho phép người dùng tạo các cuộc thi về học máy một cách nhanh chóng và dễ dàng. Tính năng này tận dụng AI để tạo các tập dữ liệu tổng hợp mô phỏng các thuộc tính thống kê của các tập dữ liệu hiện có mà không chứa bất kỳ thông tin nhận dạng cá nhân nào.
Cách sử dụng như sau:
- Chọn một mẫu: Chọn trong danh sách các mẫu dựa trên các nhiệm vụ học máy khác nhau (ví dụ: phân loại, hồi quy).
- AI tạo một tập dữ liệu: AI của Kaggle tạo một tập dữ liệu mới cho cuộc thi của bạn dựa trên mẫu bạn đã chọn. Tập dữ liệu này tương tự như tập dữ liệu gốc nhưng sử dụng một tập hợp con các tính năng và có phân phối tính năng hơi khác một chút.
- Tuỳ chỉnh cuộc thi: Nhập thông tin cơ bản như tên, nội dung mô tả và dòng thời gian của cuộc thi. Bạn cũng có thể chọn chế độ cài đặt quyền riêng tư cho cuộc thi.
- Khởi chạy: Sau khi hoàn tất thông tin chi tiết và đặt thời điểm khởi chạy, bạn đã sẵn sàng khởi chạy cuộc thi.
Tính năng này giúp đơn giản hoá quy trình tạo cuộc thi, giúp nhiều người dùng có thể truy cập và cho phép họ tập trung vào các khía cạnh học máy thay vì chuẩn bị tập dữ liệu.
Tạo cuộc thi
Truy cập vào https://www.kaggle.com/competitions/new, chọn "New AI Generated Competition" (Cuộc thi mới do AI tạo)

Chọn cuộc thi "Regression with a Crab Age Dataset" (Hồi quy với tập dữ liệu về tuổi cua).
Thông tin chi tiết về cuộc thi

Điền tên và phụ đề mô tả. Ví dụ: bạn có thể sử dụng "Cuộc thi thử nghiệm về cua của <Your Names>" làm tiêu đề và "Tạo cuộc thi đầu tiên để xem cách hoạt động" làm phụ đề. Xin lưu ý rằng URL của cuộc thi sẽ tự động được điền dựa trên tiêu đề.
Chế độ hiển thị và quyền truy cập
Bây giờ, chúng ta cần đặt khả năng hiển thị và quyền truy cập cho cuộc thi.
Khả năng hiển thị
- Công khai: Bất kỳ ai trên Kaggle đều có thể xem cuộc thi của bạn. Cuộc thi sẽ xuất hiện trong kết quả tìm kiếm, vì vậy, bất kỳ ai quan tâm đều có thể tham gia.
- Riêng tư: Cuộc thi của bạn sẽ bị ẩn khỏi chế độ xem công khai. Cuộc thi sẽ không xuất hiện trong kết quả tìm kiếm và chỉ những người mà bạn mời đích danh mới có thể tham gia.
Ai có thể tham gia
- Bất kỳ ai: Đây là chính sách mở. Bất kỳ ai trên Kaggle đều có thể tham gia cuộc thi của bạn.
- Chỉ những người có đường liên kết: Đây là chế độ độc quyền hơn. Bạn sẽ tạo một đường liên kết đặc biệt và chỉ những người có đường liên kết đó mới có thể tham gia.
- Danh sách email bị hạn chế: Đây là lựa chọn được kiểm soát nhiều nhất. Bạn cung cấp danh sách các địa chỉ email hoặc miền cụ thể (như @truongcuaban.edu) và chỉ những người có địa chỉ đó mới có thể tham gia.
Chúng ta sẽ tìm hiểu thêm về chế độ cài đặt Enable Notebooks and Models (Bật sổ tay và mô hình) sau. Hiện tại, hãy đảm bảo rằng chế độ này đang bật. Đối với cuộc thi mẫu, hãy đặt các chế độ cài đặt này thành Private (Riêng tư) và Only people with the link (Chỉ những người có đường liên kết).
Đọc và đồng ý với các điều khoản rồi nhấp vào "Create Competition" (Tạo cuộc thi).
4. Tìm hiểu và định cấu hình cuộc thi
Ở phía sau, chúng tôi đã tạo một cuộc thi hoàn toàn mới với một tập dữ liệu duy nhất. Hãy cùng xem nhanh các chế độ cài đặt cuộc thi.
Thẻ Host
Thẻ Host (Người tổ chức) chứa mọi thứ bạn cần với tư cách là người tổ chức để định cấu hình đúng cách cuộc thi. Cụ thể, hãy xem danh sách trang ở bên phải của trang:

Chi tiết cơ bản
Phần này bao gồm:
- Giải pháp chung
- Quyền riêng tư, quyền truy cập và tài nguyên
- Dòng thời gian
- Tính điểm và đội
Chúng ta đã đề cập đến các phần Giải pháp chung và Quyền riêng tư khi khởi chạy cuộc thi.
Dòng thời gian
Ngày kết thúc cuộc thi được tính theo múi giờ.

Tính điểm và đội
Phần Tính điểm và đội cho phép bạn kiểm soát số lượng người có thể tham gia một đội, số lần họ có thể gửi bài dự thi mỗi ngày và số lượng bài dự thi mà họ cần chọn để đánh giá cuối cùng.

Hình ảnh
Hình ảnh cho phép bạn tuỳ chỉnh biểu ngữ và hình thu nhỏ cho cuộc thi. Điều này sẽ ảnh hưởng đến trang chủ của cuộc thi cũng như mục nhập danh sách cho cuộc thi.

Người tổ chức
Tại đây, bạn có thể thêm những người dùng Kaggle khác làm người tổ chức cho cuộc thi của mình. Những người tổ chức khác sẽ có toàn quyền truy cập (bao gồm cả việc khởi chạy) vào cuộc thi của bạn.

Tiêu chí đánh giá
Thẻ Tiêu chí đánh giá là cốt lõi của cuộc thi. Khi tạo một cuộc thi từ đầu, bạn cần suy nghĩ kỹ về chỉ số đánh giá (hoặc tính điểm) sẽ sử dụng, tải tệp giải pháp lên, xác định phân chia kiểm thử công khai/riêng tư và cung cấp một bài dự thi mẫu. Tuy nhiên, vì chúng ta đã sử dụng một cuộc thi được tạo, nên chúng ta không cần thực hiện bất kỳ thao tác nào trong số này!
Chỉ số tính điểm
Tiêu chí này xác định cách tính điểm cho một bài dự thi so với tệp giải pháp. Mỗi chỉ số đều có tài liệu và mã thực tế.
Tệp giải pháp
Vì chúng ta đang sử dụng một cuộc thi được tạo, nên tệp này là duy nhất cho cuộc thi của bạn!

Tính năng Lấy mẫu giải pháp cho phép bạn điều chỉnh số lượng tệp giải pháp được dùng để tính điểm cho các bài dự thi trong cuộc thi (bảng xếp hạng công khai) so với số lượng hàng được dùng để xác định bảng xếp hạng cuối cùng. Trong cuộc thi, người dùng sẽ được phép chọn (dựa trên chế độ cài đặt Scored Private Submissions – Bài dự thi riêng tư được tính điểm) bài dự thi nào của họ sẽ được dùng cho bảng xếp hạng cuối cùng (được gọi là Bảng xếp hạng riêng tư tại đây).
Quy trình này đảm bảo rằng người tham gia không được thưởng vì tình trạng khớp quá mức hoặc gửi quá nhiều bài dự thi.
Bài dự thi trong hộp cát
Những bài dự thi này cho phép người tổ chức cuộc thi đảm bảo rằng việc tính điểm hoạt động như dự kiến và cho phép họ đặt các bài dự thi "điểm chuẩn" để người tham gia so sánh. Những bài dự thi điểm chuẩn này sẽ xuất hiện trên bảng xếp hạng.
Đội và bài dự thi
Trong cuộc thi, tính năng này cho phép người tổ chức tải xuống tất cả điểm số, cũng như quản lý các đội. Trước khi cuộc thi bắt đầu, phần này sẽ trống.
Launch Checklist
Nội dung này sẽ được trình bày trong phần tiếp theo!
5. Khởi chạy cuộc thi
Ở đầu trang cuộc thi, hãy nhấp vào nút "Launch Checklist" (Danh sách kiểm tra trước khi khởi chạy).
Launch Checklist
Danh sách kiểm tra trước khi khởi chạy cho thấy các bước bắt buộc cần thực hiện trước khi khởi chạy một cuộc thi. Vì chúng ta đã bắt đầu từ một mẫu cuộc thi, nên hầu hết các bước này đã hoàn tất! Chỉ còn lại 2 nhiệm vụ là đặt thời hạn và cập nhật quy tắc của cuộc thi.

Đặt thời hạn
Trước tiên, hãy nhấp vào mũi tên bên cạnh mục Set Deadline (Đặt thời hạn). Các cuộc thi thường kéo dài ít nhất vài tháng. Thời lượng tối đa của một cuộc thi là một năm.
Chỉnh sửa quy tắc
Bạn cần cập nhật quy tắc của cuộc thi từ mẫu mặc định trước khi khởi chạy. Nếu bạn đang tổ chức cuộc thi này cho một lớp học hoặc nhóm, thì đây là nơi thích hợp để đưa ra mọi thông tin về kỳ vọng.
Khởi chạy
Chúng ta đã sẵn sàng khởi chạy! Hãy khởi chạy cuộc thi của bạn! Giờ đây, người tham gia đã sẵn sàng tham gia!
6. Trải nghiệm của người tham gia
Bây giờ bạn đã khởi chạy cuộc thi, hãy cùng xem trải nghiệm của người tham gia trông như thế nào. Chúng ta sẽ đề cập đến việc tham gia cuộc thi và gửi bài dự thi. Để tham gia, bạn có thể tham gia cuộc thi Google IO Demo Competition tại đây: https://www.kaggle.com/competitions/google-io-demo-competition
Tham gia cuộc thi
Sau khi chuyển đến trang chủ cuộc thi, hãy nhấp vào nút "Join Competition" (Tham gia cuộc thi) ở phía trên bên phải, sau đó đọc và xác nhận các quy tắc.
Gửi bài dự thi đầu tiên
Chuyển đến thẻ code (mã) rồi nhấp vào "New Notebook" (Sổ tay mới). Thao tác này sẽ mở một sổ tay cho phép bạn gửi bài dự thi.
Trước tiên, chúng ta sẽ đọc dữ liệu huấn luyện và kiểm thử
# 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')
Hãy cùng xem dữ liệu.
# take a look at some of the data
train.head()
Hãy chuẩn bị dữ liệu để huấn luyện. Trong trường hợp này, chúng ta sẽ loại bỏ Sex (Giới tính) vì đây không phải là giá trị số. (Gợi ý: việc tìm ra cách đưa giá trị này vào sẽ giúp cải thiện hiệu suất của mô hình).
# drop out the results from the test data
data = train.drop(columns=[‘Age', ‘Sex'])
answers = train[‘Age']
Sau đó, chúng ta sẽ tạo một mô hình. Trong trường hợp này, chúng ta sẽ tạo một mô hình rừng ngẫu nhiên.
# imports for the model
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)
Tạo bài gửi:
predictions = model.predict(test.drop(columns=[‘Sex']))
submission = pd.DataFrame({‘id': test[‘id'], ‘Age': predictions})
submission.to_csv(‘submission.csv', index=False)
Sau đó, bạn có thể gửi bài dự thi bằng cách chọn "Submit to Competition" (Gửi bài dự thi) trên trình đơn bên phải.

Mẹo để tổ chức một cuộc thi tuyệt vời
- Nhớ đưa vào một sổ tay dành cho người mới bắt đầu để gửi bài dự thi cơ bản
- Khuyến khích sử dụng các sổ tay thảo luận và chia sẻ vào đầu cuộc thi
- Chúc bạn vui vẻ nhé!

