void nlp::Plsa::train_plsa() { _init_args(); for (int i = 0; i < _iter_nums; i++) { LOG(INFO) <<i<<"th iteration"<<std::endl; _Estep(); _Mstep(); } std::string save_path = "../data"; save_args(save_path); }
//Estep for mirt RcppExport SEXP Estep(SEXP Ritemtrace, SEXP Rprior, SEXP RX, SEXP Rr, SEXP Rncores) { BEGIN_RCPP const vector<double> prior = as< vector<double> >(Rprior); const vector<int> r = as< vector<int> >(Rr); const IntegerMatrix data(RX); const NumericMatrix itemtrace(Ritemtrace); const int ncores = as<int>(Rncores); const int nquad = prior.size(); const int nitems = data.ncol(); const int npat = r.size(); vector<double> expected(npat, 0.0); vector<double> r1vec(nquad*nitems, 0.0); List ret; _Estep(expected, r1vec, prior, r, data, itemtrace, ncores); NumericMatrix r1 = vec2mat(r1vec, nquad, nitems); ret["r1"] = r1; ret["expected"] = wrap(expected); return(ret); END_RCPP }