Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 是否存在任何算法来衡量各种因素?_Algorithm - Fatal编程技术网

Algorithm 是否存在任何算法来衡量各种因素?

Algorithm 是否存在任何算法来衡量各种因素?,algorithm,Algorithm,如果我没有正确解释,请提前道歉。我想知道是否有算法在决策过程中对各种因素进行加权 我在读《编程集体智慧》,在这一章中,你建立了一个搜索引擎,并使用各种因素对网页进行排名(页面排名、词频、字距、标题中的单词等)。基本上,在示例代码中,它们将所有因子作为类中的函数,然后使用此命令对它们进行评分: weights=[(1.0,self.locationscore(rows)), (1.0,self.frequencyscore(rows)),

如果我没有正确解释,请提前道歉。我想知道是否有算法在决策过程中对各种因素进行加权

我在读《编程集体智慧》,在这一章中,你建立了一个搜索引擎,并使用各种因素对网页进行排名(页面排名、词频、字距、标题中的单词等)。基本上,在示例代码中,它们将所有因子作为类中的函数,然后使用此命令对它们进行评分:

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),但我想知道是否有一种方法可以动态地使不同的因素权重不同,而不必手动设置权重?在书中,他们继续使用神经网络来研究用户的点击,但上述权重保持不变

我觉得有一种非静态的方法可以做到这一点,但不确定是什么。任何关于如何实现这一点的建议都是非常好的

提前谢谢


注意:如果您想要书中的示例代码,请参阅第4章。另外,如果我没有正确解释任何问题,请告诉我,我会更新我的问题。

首先定义你的效用函数。:如何估计一个解决方案是否比另一个更好。您描述的问题的一个常见实用程序是和

另外,创建一个评估集:构建一组查询,以及这些查询的一组预期答案

现在,您可以使用任何AI优化算法(如或)调整权重函数。在这些优化算法中,您的变量是每个算法的权重,您尝试优化您的效用函数


注意:如果您的搜索引擎API允许一些明确的反馈,您也可以使用相同的方法来保持动态调整:在足够多的用户指出查询的“正确”答案后,您可以将其添加到评估集中,然后再次运行调整算法。

只是头脑风暴,这可能是一个马尔可夫链(每个因素都是链的一部分,并影响其他因素?),或者可能是作为优化问题处理的因素/分数?正如书中提到的,您可能需要基于用户点击行为的某种训练集。之后,您可以使用您最喜欢的机器学习方法尝试“学习”更好的加权方案。