2012-01-25 20 views
6

Xin lỗi trước nếu tôi không giải thích điều này một cách chính xác. Tôi muốn biết nếu có các thuật toán để cân nhắc các yếu tố khác nhau trong một quá trình quyết định.Có tồn tại bất kỳ thuật toán nào để cân nhắc các yếu tố khác nhau không?

Tôi đã đọc lập trình thông minh tập thể và có một chương nơi bạn xây dựng công cụ tìm kiếm và sử dụng các yếu tố khác nhau để xếp hạng trang web (pagerank, tần suất từ, khoảng cách từ, từ trong tiêu đề, v.v.). Về cơ bản trong mã ví dụ, họ có tất cả các yếu tố như chức năng trong một lớp và sau đó sử dụng lệnh này để ghi họ:

weights=[(1.0,self.locationscore(rows)), 
       (1.0,self.frequencyscore(rows)), 
       (1.0,self.distancescore(rows)), 
       (1.0,self.pagerankscore(rows)), 
       (1.0,self.linktextscore(rows, wordids))] 

Mỗi yếu tố được xếp hạng như nhau (1,0), nhưng tôi đã tự hỏi nếu có một cách để tự động làm cho các yếu tố khác nhau trọng lượng khác nhau mà không cần thiết lập thủ công các trọng số? Trong cuốn sách, họ tiếp tục sử dụng mạng thần kinh để nghiên cứu người dùng nhấp chuột nhưng trọng số trên vẫn giữ nguyên.

Tôi cảm thấy có một cách không tĩnh để thực hiện việc này, nhưng không chắc chắn về điều gì. Bất kỳ đề xuất nào về cách tiếp cận này sẽ là tuyệt vời.

Cảm ơn trước

Lưu ý: nếu bạn muốn mã ví dụ từ cuốn sách, nó http://examples.oreilly.com/9780596529321/ và chương tôi đề cập đến là chương 4. Ngoài ra nếu tôi không giải thích bất cứ điều gì một cách chính xác xin vui lòng cho tôi biết và tôi sẽ cập nhật câu hỏi của mình.

+0

chỉ cần bão não, có thể điều này có thể là một chuỗi markov (mỗi yếu tố là một phần của chuỗi và tác động đến những người khác?) Hoặc có thể các yếu tố/điểm xử lý như là một vấn đề tối ưu hóa? – Lostsoul

+0

Như sách đề cập, bạn có thể cần một số loại tập huấn dựa trên hành vi nhấp của người dùng. Sau đó bạn có thể sử dụng phương pháp học máy yêu thích của bạn để cố gắng "tìm hiểu" một kế hoạch trọng số tốt hơn. – GWW

Trả lời

2

Đầu tiên xác định chức năng tiện ích của bạn: Cách ước tính nếu một giải pháp tốt hơn thì khác. Một tiện ích phổ biến cho sự cố bạn mô tả là recall and precisionF measure.

Ngoài ra, hãy tạo một bộ đánh giá : Tạo bộ truy vấn và tập hợp các câu trả lời mong đợi cho các truy vấn này.

Bây giờ, bạn có thể điều chỉnh các chức năng trọng số của mình bằng bất kỳ thuật toán tối ưu hóa AI nào, chẳng hạn như hill climbing hoặc genetic algorithms. Trong các thuật toán tối ưu hóa này, các biến của bạn là trọng số cho mỗi thuật toán và bạn cố gắng tối ưu hóa các chức năng tiện ích của mình.

Lưu ý: Nếu công cụ tìm kiếm của bạn API cho phép một số thông tin phản hồi rõ ràng, bạn cũng có thể sử dụng cùng một phương pháp để giữ điều chỉnh một cách nhanh chóng: sau khi đủ người dùng đã chỉ ra "đúng" câu trả lời cho các truy vấn là gì, bạn có thể thêm nó vào bộ đánh giá của bạn và chạy lại thuật toán điều chỉnh của bạn.

Các vấn đề liên quan