Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Mã hóa one-hot

Biến các danh mục thành vector chỉ có một số 1, định dạng đầu vào cho bộ phân loại và embedding.

Bạn sẽ học được gì

  • Ánh xạ danh mục sang vị trí trong vector
  • Tạo hàng one-hot cho mỗi nhãn
  • Chuẩn bị dữ liệu phân loại cho mô hình

Đề bài

Xem bản gốc (English)

Mô hình cần số chứ không phải chữ. Mã hóa one-hot biến mỗi danh mục thành một vector có một vị trí cho mỗi danh mục: số 1 ở vị trí của danh mục đó và 0 ở mọi vị trí khác.

Sắp xếp các danh mục theo bảng chữ cái. Với mỗi nhãn, xuất vector one-hot của nó.

Hãy cài đặt one_hot(labels).

Đầu vào

labels: Danh sách tên danh mục.

Đầu ra

Trả về ma trận có một hàng cho mỗi nhãn và một cột cho mỗi danh mục khác nhau (theo bảng chữ cái).

Ràng buộc

1 ≤ độ dài ≤ 1.000

Mỗi nhãn dài 1 đến 20 ký tự

Ví dụ

Ví dụ 1
Đầu vào:
labels = ["red", "green", "blue", "green"]

Kết quả mong đợi:
expected = [
    [0, 0, 1],
    [0, 1, 0],
    [1, 0, 0],
    [0, 1, 0]
]
Đầu vào:
std::vector<std::string> labels = {"red", "green", "blue", "green"};

Kết quả mong đợi:
std::vector<std::vector<long long>> expected = {
    {0, 0, 1},
    {0, 1, 0},
    {1, 0, 0},
    {0, 1, 0}
};
Đầu vào:
string[] labels = new string[] {"red", "green", "blue", "green"};

Kết quả mong đợi:
long[][] expected = new long[][] {
    new long[] {0, 0, 1},
    new long[] {0, 1, 0},
    new long[] {1, 0, 0},
    new long[] {0, 1, 0}
};

Giải thích

Các danh mục theo bảng chữ cái là blue, green, red. Vậy red → [0, 0, 1], green → [0, 1, 0] và blue → [1, 0, 0].

Ví dụ 2
Đầu vào:
labels = ["yes"]

Kết quả mong đợi:
expected = [
    [1]
]
Đầu vào:
std::vector<std::string> labels = {"yes"};

Kết quả mong đợi:
std::vector<std::vector<long long>> expected = {
    {1}
};
Đầu vào:
string[] labels = new string[] {"yes"};

Kết quả mong đợi:
long[][] expected = new long[][] {
    new long[] {1}
};

Giải thích

Chỉ có một danh mục, nên mọi vector đều là [1].

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.