FTRL(Follow The Regularized Leader)是一种优化方法,就如同SGD(Stochastic Gradient Descent)一样。这里直接给出用FTRL优化LR(Logistic Regression)的步骤:
其中是LR的预测函数,求出的唯一目的是为了求出目标函数(在LR中采用交叉熵损失函数作为目标函数)对参数的一阶导数,。上面的步骤同样适用于FTRL优化其他目标函数,唯一的不同就是求次梯度(次梯度是左导和右导之间的集合,函数可导--左导等于右导时,次梯度就等于一阶梯度)的方法不同。
下面的python代码把FTRL和LR进行了解耦:
输出:
reach max iteration 100000w= [ 4.08813934 1.84596245 10.83446088 3.12315268]correct ratio 0.9946
当把参数调为时,准确率能达到0.9976。
train.txt文件前4列是特征,第5列是标签。内容形如:
-0.567811945258 0.899305436215 0.501926599477 -0.222973905568 1.0-0.993964260114 0.261988294216 -0.349167046026 -0.923759536056 0.00.300707261785 -0.90855090557 -0.248270600228 0.879134142054 0.0-0.311566995194 -0.698903141283 0.369841040784 0.175901270771 1.00.0245841670644 0.782128080056 0.542680482068 0.44897929707 1.00.344387543846 0.297686731698 0.338210312887 0.175049733038 1.0
联系客服