FM+正则.doc


立即下载 哈哈哈哈
2024-09-16
std 初始化 训练 endl 0.0 条数 过程 NumRows training
37.5 KB

// self-adaptive-regularization 的训练
virtual void learn(Data& train, Data& test) {
fm_learn_sgd::learn(train, test);// 输出一些训练信息,继承自fm_learn_sgd类中的方法
std::cout << "Training using self-adaptive-regularization SGD."<< std::endl << "DON'T FORGET TO SHUFFLE THE ROWS IN TRAINING AND VALIDATION DATA TO GET THE BEST RESULTS." << std::endl;
// make sure that fm-parameters are initialized correctly (no other side effects)
// 确保初始化的过程
fm->w.init(0);
fm->reg0 = 0;
fm->regw = 0;
fm->regv = 0;
// start with no regularization
// 正则化参数的初始化,全部初始化为0
reg_w.init(0.0);
reg_v.init(0.0);
// 打印输出信息,包括训练样本点的条数和验证样本的条数
std::cout << "Using " << train.data->getNumRows() << " rows for training model parameters and " << validation->data->getNumRows() << " for training shrinkage." << std::endl;
// 基于梯度的训练过程
for (int i = 0; i < num_iter; i++) {// 开始每一轮的迭代
double iteration_time = getusertime();
// SGD-based learning: b


std////初始化/训练/endl/0.0/条数/过程/NumRows/training/ std////初始化/训练/endl/0.0/条数/过程/NumRows/training/
-1 条回复
登录 后才能参与评论
-->