https://github.com/Grasin98/recommender_live推荐系统的基础知识。希望你觉得它相关。
你可以访问这个。是的,有像网格搜索这样的算法可以帮助找到最佳权重矩阵。
网格搜索意味着您有一组模型(它们的参数值彼此不同,位于网格上)。然后你要做的是训练每个模型并使用交叉验证对其进行评估。然后,您选择表现最好的那个。
举一个具体的例子,如果你使用支持向量机,你可以为 gamma 和 C 使用不同的值。因此,例如,你可以有一个网格,其 (gamma, C) 具有以下值: (1, 1 ), (0.1, 1), (1, 10), (0.1, 10)。它是一个网格,因为它就像 gamma 的 [1, 0.1] 和 C 的 [1, 10] 的乘积。网格搜索基本上会为这四对 (gamma, C) 值中的每一个训练一个 SVM,然后对其进行评估使用交叉验证,并选择一个做得最好的。
对于梯度下降:程序的第一步要求训练数据集的顺序是随机的。这是为了混淆对系数进行更新的顺序。因为在每个训练实例之后都会更新系数,所以更新会到处乱跳,相应的成本函数也会如此。通过混合更新系数的顺序,它可以利用这种随机游走并避免它分心或卡住。对于非常大的训练数据集,使用随机梯度下降可以更快地学习,并且通常您只需要少量通过数据集即可达到良好或足够好的系数集,例如通过数据集 1 到 10 次。
所以据我所知,有知道完美的方法。它基本上取决于很多事情。您可能知道,算法应用程序 SVM、决策树、随机森林也是如此,它们都会根据情况给出变化。
至于第二个问题,我不确定它试图传达什么。希望这可以帮助。