6

Đầu tiên, đây chắc chắn là bài tập về nhà (vì vậy không có mẫu mã đầy đủ). Điều đó nói rằng ...Làm cách nào chúng ta có thể sử dụng các kỹ thuật học tập không giám sát trên một tập dữ liệu, sau đó gắn nhãn cho các cụm?

Tôi cần kiểm tra thuật toán không giám sát bên cạnh thuật toán được giám sát, sử dụng hộp công cụ Mạng thần kinh trong Matlab. Tập dữ liệu là UCI Artificial Characters Database. Vấn đề là, tôi đã có một hướng dẫn tốt về các thuật toán được giám sát, và được để lại để chìm trên không giám sát.

Vì vậy, tôi biết cách tạo bản đồ tự tổ chức bằng cách sử dụng selforgmap và sau đó tôi đào tạo nó bằng cách sử dụng train(net, trainingSet). Tôi không hiểu phải làm gì tiếp theo. Tôi biết rằng nó đã nhóm các dữ liệu mà tôi đã đưa nó vào (hy vọng) 10 cụm (một cụm cho mỗi chữ cái).

Hai câu hỏi sau đó:

  • Làm thế nào tôi có thể dán nhãn cho cụm (cho rằng tôi có một mô hình so sánh)?
    • Tôi có đang cố gắng biến vấn đề này thành vấn đề học tập được giám sát khi tôi thực hiện việc này không?
  • Làm cách nào để tạo ma trận nhầm lẫn trên bộ kiểm tra (khác) để so sánh với thuật toán được giám sát?

Tôi nghĩ rằng tôi thiếu một số khái niệm hoặc thuật ngữ dựa trên đây - tất cả các tìm kiếm của tôi đều có các kỹ thuật học được giám sát. Một điểm đi đúng hướng sẽ được nhiều người đánh giá cao. Mã hiện tại của tôi ở bên dưới:

P = load('-ascii', 'pattern'); 
T = load('-ascii', 'target'); 

% data needs to be translated 
P = P'; 
T = T'; 

T = T(find(sum(T')), :); 

mynet = selforgmap([10 10]); 
mynet.trainparam.epochs = 5000; 
mynet = train(mynet, P); 


P = load('-ascii', 'testpattern'); 
T = load('-ascii', 'testtarget'); 

P = P'; 
T = T'; 
T = T(find(sum(T')), :); 

Y = sim(mynet,P); 
Z = compet(Y); 

% this gives me a confusion matrix for supervised techniques: 
C = T*Z' 

Trả lời

6

Vì bạn không sử dụng bất kỳ phần nào của dữ liệu được gắn nhãn, bạn đang áp dụng một phương pháp không giám sát theo định nghĩa.

"Làm cách nào để gắn nhãn cho cụm (cho biết tôi có mẫu so sánh)?"

Bạn có thể thử các nhiễu loạn khác nhau của bộ nhãn và giữ mức tối thiểu sai số trung bình (hoặc độ chính xác) trên mẫu so sánh. Với phân cụm, bạn có thể gắn nhãn các cụm của mình theo bất kỳ cách nào bạn muốn. Hãy nghĩ về việc này như thử các bài tập nhãn khác nhau cho đến khi bạn thu nhỏ chỉ số hiệu suất được chỉ định.

"Tôi đang cố gắng biến vấn đề này thành vấn đề học tập được giám sát khi tôi làm điều này?"

Tùy theo. Nếu bạn sử dụng một cách rõ ràng các điểm dữ liệu (đã biết) trong quá trình phân cụm, thì điều này được bán giám sát. Nếu không, bạn chỉ sử dụng thông tin ghi nhãn để đánh giá và "so sánh" với các phương pháp được giám sát. Nó là một hình thức giám sát, nhưng không dựa trên tập huấn luyện, nhưng về hiệu quả dự kiến ​​tốt nhất (tức là"đại lý" chỉ định các nhãn chính xác cho các cụm).

"Làm cách nào để tạo ma trận nhầm lẫn trên một bộ thử nghiệm khác để so sánh với thuật toán được giám sát?"

Bạn cần một cách để biến các cụm thành các lớp được gắn nhãn. Đối với một số lượng nhỏ các cụm (ví dụ C <= 5), bạn về cơ bản có thể tạo ra C! ma trận, và giữ một trong đó giảm thiểu lỗi phân loại trung bình của bạn. Trong trường hợp của bạn tuy nhiên, với C = 10, đây là, rõ ràng, không thực tế và một overhead mộ!

như lựa chọn thay thế, bạn có thể gắn nhãn các cụm (và do đó có được ma trận nhầm lẫn) sử dụng:

  • phương pháp Semi-giám sát, nơi các cụm có thể được dán nhãn một tiên nghiệm, hoặc hướng dẫn thông qua một quá trình seeding bởi dữ liệu thuộc về cụm nổi tiếng
  • Xếp hạng hoặc tìm khoảng cách giữa các ước tính cụm centroids và nhãn mặt đất-sự thật. Điều này sẽ gán nhãn được xếp hạng gần nhất hoặc tương tự nhất cho mỗi cụm.
1

Có thể giúp đỡ bất kỳ lúc nào không? Nó không trả lời câu hỏi của bạn nhưng nó cho thấy rằng sự tương tác của con người có thể được yêu cầu để thậm chí chọn số cụm. Các cụm ghi nhãn tự động thậm chí còn khó hơn.

Nếu bạn nghĩ về điều đó, không có gì đảm bảo rằng việc phân cụm sẽ được thực hiện dựa trên số được mô tả. Mạng có thể nhóm chữ số dựa trên chiều rộng của đường kẻ hoặc làm mịn phông chữ, v.v.