python-279Đọc toàn bộ đề miễn phí

Mã hoá one-hot cho một cột nhãn rời rạc bằng pandas

Mô hình học máy chỉ tính toán trên số, nên cột nhãn dạng chữ như "cat" hay "dog"

PythonCơ bản15 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

machine-learningfeature-encodingpandasentry-ramp

Kiến thức tiên quyết: python-basics, python-dicts.

Nội dung đề bài

Mô tả bài toán

Mô hình học máy chỉ tính toán trên số, nên cột nhãn dạng chữ như "cat" hay "dog" phải được chuyển thành các cột 0/1. Cách mã hoá one-hot tạo một cột cho mỗi hạng mục và bật đúng một cột trên mỗi dòng. Bài này luyện đúng bước biến đổi đó.

Yêu cầu

Viết hàm one_hot_encode(labels) trả về ma trận đã mã hoá dưới dạng danh sách các dòng, mỗi dòng là một danh sách số nguyên 0 hoặc 1. Thứ tự cột là thứ tự sắp xếp tăng dần của các hạng mục xuất hiện trong labels (so sánh theo giá trị, ví dụ ["bird", "cat", "dog"]).

Quy ước nộp bài

Nộp hàm one_hot_encode trong solution.py. Hệ thống gọi hàm trực tiếp theo tên đối số và so cấu trúc trả về với kỳ vọng; không đọc dữ liệu từ stdin và không in ra stdout.

Input

  • labels: danh sách nhãn rời rạc, mỗi phần tử là chuỗi hoặc số nguyên, từ 1 đến 20 phần tử.

Output

Danh sách gồm đúng len(labels) dòng; mỗi dòng có số phần tử bằng số hạng mục phân biệt và tổng mỗi dòng bằng 1.

Ràng buộc

  • Cột được sắp xếp tăng dần theo giá trị hạng mục, không theo thứ tự xuất hiện.
  • Mỗi dòng dùng đúng một giá trị 1, các vị trí còn lại là 0.
  • Trả về danh sách Python thuần, không trả về DataFrame hay mảng NumPy.

Ví dụ 1

Input

one_hot_encode(labels=["cat", "dog", "cat", "bird"])

Output

[[0, 1, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0]]

Ví dụ 2

Input

one_hot_encode(labels=["b", "a"])

Output

[[0, 1], [1, 0]]

Giải thích

Với labels = ["cat", "dog", "cat", "bird"], ba hạng mục theo thứ tự sắp xếp là bird, cat, dog, nên kết quả là [[0, 1, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0]].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo