void IRLTest::runOptimization() { est_weights_ = Eigen::VectorXd::Zero(num_features_); optimizer_.reset(new IRLOptimizer(num_features_)); //optimizer_->setBeta(100.0); optimizer_->setData(data_); optimizer_->setWeights(est_weights_); //optimizer_->runSBMLR(); optimizer_->optimizeWithCV(6); // optimizer_->setAlpha(0.000000001); // optimizer_->useAllData(); // optimizer_->runLBFGS(); optimizer_->getWeights(est_weights_); if (real_weights_exist_) { printf("Weights: (real / est)\n"); for (int i=0; i<num_features_; ++i) { printf("%f\t%f\n", real_weights_[i], est_weights_[i]); } } else { printf("Weights: (est)\n"); for (int i=0; i<num_features_; ++i) { printf("%f\n", est_weights_[i]); } } optimizer_->computeAverageRank(); }