Làm thế nào để đối phó với nhãn chuỗi trong phân loại nhiều lớp với máy ảnh?


18

Tôi là người mới học về máy học và máy ảnh và hiện đang làm việc với một vấn đề phân loại hình ảnh đa lớp bằng cách sử dụng máy ảnh. Đầu vào được gắn thẻ hình ảnh. Sau một số xử lý trước, dữ liệu đào tạo được trình bày trong danh sách Python là:

[["dog", "path/to/dog/imageX.jpg"],["cat", "path/to/cat/imageX.jpg"], ["bird", "path/to/cat/imageX.jpg"]]

"chó", "mèo" và "chim" là các nhãn lớp. Tôi nghĩ rằng mã hóa một nóng nên được sử dụng cho vấn đề này nhưng tôi không rõ lắm về cách xử lý nó với các nhãn chuỗi này. Tôi đã thử dùng LabelEncoder () của sklearn theo cách này:

encoder = LabelEncoder()
trafomed_label = encoder.fit_transform(["dog", "cat", "bird"])
print(trafomed_label)

Và đầu ra là [2 1 0], khác với đầu ra kỳ vọng của tôi về một cái gì đó như [[1,0,0], [0,1,0], [0,0,1]]. Nó có thể được thực hiện với một số mã hóa, nhưng tôi muốn biết liệu có cách nào "tiêu chuẩn" hoặc "truyền thống" để đối phó với nó không?

Câu trả lời:


14

LabelEncoderMô-đun của Sklearn tìm thấy tất cả các lớp và gán cho mỗi id số bắt đầu từ 0. Điều này có nghĩa là bất kỳ biểu diễn lớp nào của bạn đều nằm trong tập dữ liệu gốc, giờ đây bạn có một cách nhất quán đơn giản để biểu diễn từng lớp. Nó không thực hiện mã hóa một lần nóng, mặc dù khi bạn xác định chính xác, nó khá gần và bạn có thể sử dụng các id đó để nhanh chóng tạo mã hóa một nóng trong mã khác.

Nếu bạn muốn mã hóa một nóng, bạn có thể sử dụng LabelBinarizerthay thế. Điều này hoạt động rất giống nhau:

 from sklearn.preprocessing import LabelBinarizer
 encoder = LabelBinarizer()
 transfomed_label = encoder.fit_transform(["dog", "cat", "bird"])
 print(transfomed_label)

Đầu ra:

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

Nhưng làm thế nào hotencoding có thể giúp bạn khi bạn sẽ cố gắng dự đoán một màu mới? Có thể trong trường hợp của bạn, bạn phải đào tạo lại mô hình. Bạn có giải pháp nào không?
gtzinos

@gtzinos: Trông giống như một câu hỏi khác. Có lẽ hỏi nó trên trang web. Nếu bạn làm như vậy, hãy làm rõ liệu bạn có quan tâm đến việc NN dự đoán một mặt hàng hoàn toàn mới (không thấy trong dữ liệu đào tạo, nhưng sẽ xảy ra một cách hợp lý trên các đầu vào mới) hoặc thêm các lớp mới khi chúng gặp phải dữ liệu đào tạo trực tuyến.
Neil Slater
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.