Sử dụng API Kaggle cho Google Colaboratory
White

Gameloop.mobi viết ngày 18/08/2020

Nếu bạn đang làm việc trên máy học và bạn không có tài nguyên để thiết lập GPU hoặc trả tiền cho AWS (Amazon Web Services) thì có thể bạn đang sử dụng Colaboratory .

Nếu bạn không sử dụng Colaboratory , thì bây giờ bạn nên tìm hiểu nó một tí nhé! Colaboratory về cơ bản là một cách để sử dụng Máy tính xách tay thông qua tài khoản Google Drive của bạn và chạy máy tính xách tay trên GPU. Ngoài ra, nó hoàn toàn miễn phí!
alt text

Đây là một bài viết tuyệt vời về cách bắt đầu với GPU trên Colabratory: https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d
Bây giờ bạn đã thiết lập và chạy Colabratory trên GPU, bạn sẽ muốn bắt đầu làm việc để xây dựng các mô hình sẽ thay đổi thế giới bằng máy học!

Bây giờ bạn đã thiết lập và chạy Colabratory trên GPU, bạn sẽ muốn bắt đầu làm việc để xây dựng các mô hình sẽ thay đổi thế giới bằng máy học!

Nếu bạn chưa sẵn sàng thì có có thể tìm hiểu kỹ hơn để làm nhé. Và một trong những cách tốt nhất để thực hành học máy trên tập dữ liệu thực là tham gia các cuộc thi Kaggle . Kaggle là một trang web tổ chức các cuộc thi máy học để thực hành xây dựng mô hình hoặc để tranh giải thưởng tiền mặt!

Một vấn đề bạn có thể gặp phải là làm thế nào để lấy dữ liệu cạnh tranh từ Kaggle vào Colaboratory và ngược lại. Kaggle đã xây dựng một API để khắc phục vấn đề đó.

Đây là một ví dụ rất đơn giản về cách sử dụng Colabratory kết hợp với Kaggle để lấy dữ liệu cho cuộc thi Titanic: Machine Learning from Disaster .

Đầu tiên, hãy cài đặt thư viện Kaggle.

!pip install kaggle

Cái này thì nó sẽ cho phép bạn tương tác với API Kaggle .

Để sử dụng Kaggle API , bạn phải tạo một tài khoản Kaggle . Khi bạn đã đăng nhập, bạn sẽ phải chuyển đến phần 'Tài khoản của tôi' trên hồ sơ của mình. Sau đó, bạn sẽ phải nhấp vào 'Tạo mã thông báo API mới' để sử dụng API Kaggle . Nút 'Tạo mã thông báo API mới' sẽ kích hoạt tải xuống tệp có tên 'kaggle.json'. Tệp này có thông tin đăng nhập của mã thông báo API cho tài khoản của bạn.

Đặt tệp json này vào Google Drive của bạn để Colaboratory có thể tìm thấy thông tin đăng nhập của bạn. Sử dụng mã bên dưới trong Colaboratory để có quyền truy cập vào API Kaggle.
Bạn sẽ được nhắc nhấp vào một liên kết, cấp quyền truy cập vào Google Drive của bạn và nhập mã xác minh để API hoạt động.

Tiếp theo, bạn sẽ nhấp vào liên kết, cấp quyền truy cập, sao chép mã xác minh, dán vào hộp văn bản ngay sau “Nhập mã xác minh:” và nhấn enter.

from googleapiclient.discovery import build
import io, os
from googleapiclient.http import MediaIoBaseDownload
from google.colab import auth
auth.authenticate_user()
drive_service = build('drive', 'v3')
results = drive_service.files().list(
q="name = 'kaggle.json'", fields="files(id)").execute()
kaggle_api_key = results.get('files', [])
filename = "/content/.kaggle/kaggle.json"
os.makedirs(os.path.dirname(filename), exist_ok=True)
request = drive_service.files().get_media(fileId=kaggle_api_key[0]['id'])
fh = io.FileIO(filename, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print("Download %d%%." % int(status.progress() * 100))
os.chmod(filename, 600)

Bây giờ bạn có quyền truy cập vào API Kaggle và dữ liệu của mình!

Để xem các thông tin, hãy sử dụng dòng này. Nó sẽ trả về danh sách các thông tin trên Kaggle.

!kaggle competitions list

Để xem các file trong một cuộc thi cụ thể trên trang web đó, trong trường hợp này là cuộc thi Titanic, hãy sử dụng dòng sau. Thao tác này sẽ trả về danh sách các tệp cho cuộc thi Titanic.

!kaggle competitions files -c titanic

Để lấy danh sách các tệp cho một cuộc thi khác, chỉ cần thay thế từ titanic bằng tên của cuộc thi bạn muốn từ danh sách cuộc thi.

Để tải về được các bộ dữ liệu từ một cuộc thi, hãy sử dụng mã sau. Thao tác này sẽ tải tất cả các file từ cuộc thi Titanic vào thư mục “/ content / kaggle /”.

!kaggle competitions download -c titanic -p /content/kaggle

Đoạn mã sau sẽ cho phép bạn kéo dữ liệu từ cuộc thi Titanic vào Khung dữ liệu gấu trúc để bạn có thể bắt tay vào xây dựng mô hình!

import pandas as pd
data = pd.read_csv('/content/kaggle/train.csv', header=0, sep=',', quotechar='"')
data.head()

Dưới đây là tài liệu dành cho API Kaggle , với danh sách đầy đủ các lệnh để đào sâu hơn.
https://github.com/Kaggle/kaggle-api

Một lưu ý cuối cùng, tham số nén = 'zip' trong phương thức pandas.read_csv cực kỳ hữu ích để sử dụng API này. Dưới đây là một ví dụ

data2 = pd.read_csv('/content/kaggle/train_sample.csv.zip', compression='zip', header=0, sep=',', quotechar='"')

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Gameloop.mobi

2 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 0
Amazon S3 cung cấp một loạt các lớp lưu trữ được thiết kế cho các trường hợp sử dụng khác nhau. Chúng bao gồm Tiêu chuẩn cho mục đích chung lưu trữ...
Gameloop.mobi viết 4 tháng trước
2 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!