2012-01-25 9 views
6

अग्रिम में क्षमा करें अगर मैं इसे सही तरीके से समझा नहीं रहा हूं। मैं जानना चाहता हूं कि निर्णय प्रक्रिया में विभिन्न कारकों के वजन के लिए एल्गोरिदम हैं या नहीं।क्या कोई अल्गोरिदम वजन विभिन्न कारकों के लिए मौजूद है?

मैं प्रोग्रामिंग सामूहिक बुद्धि पढ़ रहा था और वहां एक अध्याय है जहां आप एक खोज इंजन बनाते हैं और वेबपृष्ठों को रैंक करने के लिए विभिन्न कारकों का उपयोग करते हैं (पेजरैंक, शब्दों की आवृत्ति, शब्दों की दूरी, शीर्षक में शब्दों, आदि ..)। असल में उनके उदाहरण कोड में वे एक कक्षा में कार्य के रूप में सभी कारक है और फिर उन्हें स्कोर करने के लिए इस आदेश का उपयोग करें:

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))] 

प्रत्येक कारक समान रूप से स्थान दिया गया है (1.0), लेकिन अगर वहाँ के लिए एक रास्ता था मैं सोच रहा था वजन को मैन्युअल रूप से सेट किए बिना गतिशील रूप से भिन्न कारकों को अलग-अलग बनाते हैं? पुस्तक में, वे उपयोगकर्ताओं के क्लिक का अध्ययन करने के लिए तंत्रिका नेटवर्क का उपयोग करने के लिए जाते हैं लेकिन उपरोक्त वजन एक ही रहता है।

मुझे लगता है कि ऐसा करने के लिए एक गैर-स्थैतिक तरीका है, लेकिन यह सुनिश्चित नहीं है कि क्या। इस दृष्टिकोण के बारे में कोई सुझाव अच्छा होगा।

अग्रिम धन्यवाद

नोट: यदि आप किताब, से उदाहरण कोड चाहते हैं, तो इसके http://examples.oreilly.com/9780596529321/ और अध्याय मैं की बात कर रहा हूँ अध्याय 4. है इसके अलावा, अगर मैं कुछ भी समझा नहीं कर रहा हूँ सही ढंग से मुझे तो कृपया पता है और मैं अपना प्रश्न अपडेट करूंगा।

+0

बस मस्तिष्क तूफान, क्या यह शायद एक मार्कोव श्रृंखला हो सकता है (प्रत्येक कारक श्रृंखला का हिस्सा है और दूसरों को प्रभावित करता है?) या शायद कारक/स्कोर अनुकूलन समस्या के रूप में माना जाता है? – Lostsoul

+0

जैसा कि पुस्तक का उल्लेख है, आपको शायद उपयोगकर्ता क्लिक व्यवहार के आधार पर कुछ प्रकार के प्रशिक्षण सेट की आवश्यकता है। इसके बाद आप एक बेहतर वेटिंग योजना "सीखने" की कोशिश करने के लिए अपनी पसंदीदा मशीन लर्निंग विधि का उपयोग कर सकते हैं। – GWW

उत्तर

2

पहले अपने उपयोगिता फ़ंक्शन को परिभाषित करें: अनुमान लगाएं कि एक समाधान दूसरे में बेहतर है या नहीं। आपके द्वारा वर्णित समस्या के लिए एक सामान्य उपयोगिता recall and precision और F measure है।

इसके अलावा, मूल्यांकन सेट बनाएं: प्रश्नों का एक सेट बनाएं, और इन प्रश्नों के लिए अपेक्षित उत्तरों का एक सेट बनाएं।

अब, आप अपने वजन घटाने वाले कार्यों को किसी एआई ऑप्टिमाइज़िंग एल्गोरिदम के साथ ट्यून कर सकते हैं, जैसे कि hill climbing या genetic algorithms। इन अनुकूलन एल्गोरिदम में, आपके चर प्रत्येक एल्गोरिदम के लिए वजन हैं, और आप अपने उपयोगिता कार्यों को अनुकूलित करने का प्रयास करते हैं।

नोट: अपने खोज इंजन एपीआई कुछ स्पष्ट प्रतिक्रिया की अनुमति देता है, तो आप भी एक ही विधि को मक्खी पर ट्यूनिंग रखने का उपयोग हो सकता है: के बाद पर्याप्त उपयोगकर्ताओं ने संकेत दिया था प्रश्नों के लिए "सही" जवाब क्या है, आप जोड़ सकते हैं यह आपके मूल्यांकन सेट पर है, और फिर अपने ट्यूनिंग एल्गोरिदम को चलाएं।

संबंधित मुद्दे