wplist eigen_feature_mapper::revert( const eigen_wsvec_list_t& src) const { wplist ret(src.size()); eigen_wsvec_list_t::const_iterator ib = src.begin(); wplist::iterator ob = ret.begin(); while (ib != src.end()) { *ob = revert(*ib); ++ob; ++ib; } return ret; }
void gmm::initialize(const eigen_wsvec_list_t& data, int d, int k) { d_ = d; k_ = k; means_ = eigen_svec_list_t(k); covs_ = eigen_smat_list_t(k, eigen_smat_t(d, d)); cov_solvers_ = eigen_solver_list_t(k); eye_ = eigen_smat_t(d, d); for (int i = 0; i < d; ++i) { eye_.insert(i, i) = 1; } jubatus::util::math::random::mtrand r(time(NULL)); for (int c = 0; c < k; ++c) { means_[c] = data[r.next_int(0, data.size()-1)].data; for (int i = 0; i < d; ++i) { covs_[c].insert(i, i) = 1; } cov_solvers_[c] = shared_ptr<eigen_solver_t>(new eigen_solver_t(covs_[c])); } }