2011-11-16 8 views
7

Tôi làm theo hướng dẫn PyBrain Classification with Feed-Forward Neural Networks và muốn tạo trình phân loại của riêng tôi._convertToOneOfMany trong PyBrain

Tôi không hiểu cách _convertToOneOfMany sửa đổi kết quả đầu ra.

Tại sao hoạt động ban đầu alldata.addSample(input, [klass]) tạo nhiều hơn một nơron đầu ra cho mỗi lớp?

+1

Xin chào, bạn đã quên đánh dấu câu hỏi của mình là đã trả lời. – Framester

+0

tôi đã tự trả lời, vì vậy có lẽ tôi sẽ bỏ qua – user425720

+0

@ user425720 Ngay cả khi bạn trả lời chính mình, bạn nên đánh dấu nó là đã trả lời. Sau đó mọi người biết rằng điều này giải quyết được vấn đề cho bạn. –

Trả lời

6

nevermind, đây là doc giải thích mấy thứ này http://pybrain.org/docs/tutorial/datasets.html

+1

cảm ơn cho câu trả lời này, nhưng tôi không hoàn toàn theo doc "nhiều thuật toán hoạt động tốt hơn nếu các lớp được mã hóa thành một đơn vị đầu ra cho mỗi lớp". tôi có thể hỏi "một đơn vị đầu ra cho mỗi lớp" là gì? – hihell

+0

wow, đã nhiều năm trước, tôi khó có thể nhớ - Không phải nó kết nối với cấu trúc mạng thần kinh? Vì vậy, một tế bào thần kinh có thể phát ra một hoặc nhiều tế bào thần kinh trong một lớp khác? – user425720

+0

có liên quan đến cấu trúc NT. thực sự tôi đã tìm ra chính mình, "một đơn vị đầu ra cho mỗi lớp" có nghĩa là nếu bạn có 3 phân loại, nó sẽ là tốt hơn nếu bạn cũng có 3 đơn vị đầu ra. và _convertToOneOfMany thực hiện điều này cho bạn bằng cách mở rộng/thu nhỏ đơn vị đầu ra thành số lượng các lớp đích của bạn – hihell

1

Phần liên quan trong các tài liệu được trang Using Datasets: classification – Datasets for Supervised Classification Training:

Khi làm phân loại, nhiều thuật toán làm việc tốt hơn nếu lớp học được mã hóa thành một đơn vị sản lượng mỗi lớp, sẽ có một giá trị nhất định nếu lớp đó có mặt. Là một tính năng nâng cao, ClassificationDataSet thực hiện chuyển đổi này tự động:

Tuy nhiên, đây không phải là câu trả lời thỏa mãn vì tôi không hiểu tại sao phải có nhiều hơn một nơron đầu ra cho mỗi lớp.

Cập nhật: Tôi khuyên bạn nên sử dụng keras

2

số mục tiêu là [0,1,2], chức năng này dịch họ (001.010.100). Điều này là do nhiều thuật toán hoạt động tốt hơn nếu các lớp được mã hóa thành một đơn vị đầu ra cho mỗi lớp