Làm thế nào tôi có thể làm cho ma trận nhầm lẫn lớn dễ đọc hơn?


9

Gần đây tôi đã xuất bản một bộ dữ liệu ( liên kết ) với 369 lớp. Tôi đã thực hiện một vài thí nghiệm trên chúng để có cảm giác về nhiệm vụ phân loại khó khăn như thế nào. Thông thường, tôi thích nó nếu có ma trận nhầm lẫn để xem loại lỗi được thực hiện. Tuy nhiên, một ma trận là không thực tế.369×369

Có cách nào để cung cấp thông tin quan trọng của ma trận nhầm lẫn lớn? Ví dụ, thường có rất nhiều số 0 không thú vị lắm. Có thể sắp xếp các lớp sao cho hầu hết các mục nhập khác không nằm xung quanh đường chéo để cho phép hiển thị nhiều ma trận là một phần của ma trận nhầm lẫn hoàn chỉnh?

Dưới đây là một ví dụ cho một ma trận nhầm lẫn lớn .

Ví dụ trong tự nhiên

Hình 6 của EMNIST trông rất đẹp:

nhập mô tả hình ảnh ở đây

Thật dễ dàng để xem nơi có nhiều trường hợp. Tuy nhiên, đó chỉ là lớp. Nếu toàn bộ trang được sử dụng thay vì chỉ một cột thì có thể có thể gấp 3 lần, nhưng đó vẫn chỉ là 3 26 = 78 lớp. Thậm chí không gần với 369 lớp HASY hoặc 1000 ImageNet.26326=78

Xem thêm

Câu hỏi tương tự của tôi trên CS.stackexchange


Tôi thương hại bạn ;-) Bạn có thể thử các ma trận nhầm lẫn của một so với tất cả cho mỗi lớp. Đưa ra chúng, nhìn hoặc các lớp trong đó hành vi không điển hình và sử dụng ma trận nhầm lẫn đầy đủ chỉ trên chúng.
DaL

1
Tại sao không chỉ báo cáo độ chính xác của mô hình cho từng loại. Ai thực sự cần phải xem toàn bộ ma trận?
Darrin Thomas

1
@DarrinThomas Không chỉ là báo cáo nó trong một bài báo. Nó cũng là về việc phân tích lỗi bản thân mình.
Martin Thoma

1
Đầu tiên, bạn có thể bình thường hóa các giá trị theo hàng và sau đó vẽ nó dưới dạng bản đồ nhiệt. Hơn nữa, bạn có thể sắp xếp lớp theo độ chính xác theo lớp (giá trị chuẩn hóa trên đường chéo). Tôi cho rằng điều này sẽ làm tăng đáng kể khả năng đọc.
Nikolas Rieble

1
Tôi có lẽ nên hỏi điều này trong math.SE / stackoverflow một lần nữa. Tôi khá chắc chắn có các thuật toán sắp xếp lại các hàng / cột theo cách sao cho hầu hết các giá trị gần với đường chéo.
Martin Thoma

Câu trả lời:


4

Bạn có thể áp dụng một kỹ thuật mà tôi đã mô tả trong luận án thạc sĩ của mình (trang 48ff) và được gọi là Thứ tự ma trận nhầm lẫn (CMO):

  1. Sắp xếp các cột / hàng theo cách như vậy, hầu hết các lỗi nằm dọc theo đường chéo.
  2. Chia ma trận nhầm lẫn thành nhiều khối sao cho các khối đơn có thể dễ dàng in / xem - và như vậy bạn có thể loại bỏ một số khối vì có ít điểm dữ liệu.

Hiệu ứng phụ đẹp mắt: Phương pháp này cũng tự động phân cụm các lớp tương tự lại với nhau. Hình 5.12 của luận án thạc sĩ của tôi cho thấy:

nhập mô tả hình ảnh ở đây

Bạn có thể áp dụng thứ tự ma trận nhầm lẫn với clana


Xem github.com/MartinThoma/clana để biết cách triển khai
Martin Thoma

1

Thay vì cố gắng sắp xếp lại các cột và hàng, tôi khuyên bạn nên cố gắng tìm một số cách khác để trực quan hóa dữ liệu.

(i,j)ij. Ngoài ra, bạn có thể có ~ 20 ma trận nhầm lẫn hạt mịn: đối với mỗi cụm, bạn có thể hiển thị ma trận nhầm lẫn của các lớp, cho ~ 20 lớp trong mỗi cụm. Tất nhiên, bạn cũng có thể mở rộng điều này bằng cách sử dụng phân cụm phân cấp và có ma trận nhầm lẫn ở nhiều mức độ chi tiết.

Có thể có các chiến lược hình dung khác có thể là tốt.

Như một quan điểm triết học chung: nó cũng có thể giúp làm rõ các mục tiêu của bạn (những gì bạn muốn ra khỏi hình dung). Bạn có thể phân biệt hai loại sử dụng trực quan:

  • Phân tích thăm dò: Bạn không chắc chắn những gì bạn đang tìm kiếm; bạn chỉ muốn một hình ảnh trực quan có thể giúp bạn tìm kiếm các mẫu hoặc tạo tác thú vị trong dữ liệu.

  • Số liệu với một thông điệp: Bạn có một thông điệp cụ thể mà bạn muốn người đọc mang đi và bạn muốn đưa ra một hình ảnh trực quan giúp hỗ trợ tin nhắn đó hoặc cung cấp bằng chứng cho tin nhắn.

Nó có thể giúp bạn biết bạn đang cố gắng nhắm đến điều gì, và sau đó nghĩ ra một hình dung nhằm vào đó:

  • Nếu bạn đang thực hiện phân tích khám phá, thay vì cố gắng chọn một hình ảnh hoàn hảo, việc thử tạo nhiều hình ảnh trực quan như bạn có thể nghĩ là rất hữu ích. Đừng lo lắng về bất kỳ trong số họ là hoàn hảo; Sẽ ổn thôi nếu mỗi người đều thiếu sót, vì mỗi người có thể cung cấp cho bạn một quan điểm tiềm năng khác nhau về dữ liệu (có thể sẽ tốt theo một số cách và xấu ở những người khác).

  • Nếu bạn có một thông điệp cụ thể mà bạn đang cố gắng truyền tải hoặc một chủ đề bạn đang cố gắng phát triển, hãy tìm một trực quan hỗ trợ chủ đề đó. Thật khó để đưa ra một đề nghị cụ thể mà không biết chủ đề / thông điệp đó có thể là gì.


0

Điều quan trọng cần biết tại sao ma trận nhầm lẫn EMNIST trông tốt.

Nhưng tôi thấy thật kỳ lạ khi họ không duy trì màu với số cao hơn là tối nhất, ví dụ như hầu hết các phân loại bỏ trống chứa các số 0 có màu xám đậm hơn các số có chứa số nguyên. Có vẻ không nhất quán.

Tôi sẽ thử sử dụng kiểu EMINST ngoại trừ giữ cho nó nhất quán trong đó màu sắc cho biết số lượng mục trong một ô. Màu trắng cho các mục không, và màu đen cho hầu hết các mục.

Một phân loại hoàn hảo sẽ là một đường chéo màu đen với hình tam giác trên và dưới hoàn toàn màu trắng. Trường hợp có bất kỳ mảng màu xám nào trong các hình tam giác sẽ chỉ ra vấn đề. Ngay cả trên một lớp 1000, điều này sẽ hữu ích. Đối với ImageNet, nơi các lớp được phân cấp, có lẽ sắp xếp các cột sao cho các lớp con được nhóm bên phải của lớp cha sẽ dẫn đến các mảng tối vuông.

Ngoài ra, nếu bạn nhận được 5 phản hồi hàng đầu cho một hình ảnh, các lớp có thể không loại trừ lẫn nhau, như vậy việc phân loại chó cho hình ảnh của lap_dog vẫn phải đúng, do đó trong ma trận nhầm lẫn như vậy, các lớp chung hơn sẽ tối hơn nhiều hơn các phân loại chính xác (nếu màu sắc được chuẩn hóa.) Do đó hình vuông trên cùng bên trái sẽ tối nhất.

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.