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;
}
Example #2
0
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]));
  }
}