10 SPODELd::SPODELd(
int root) : SPODE(root), Proposal(dataset, features, className) {}
11 SPODELd& SPODELd::fit(torch::Tensor& X_, torch::Tensor& y_,
const std::vector<std::string>& features_,
const std::string& className_, map<std::string, std::vector<int>>& states_,
const Smoothing_t smoothing)
16 return commonFit(features_, className_, states_, smoothing);
19 SPODELd& SPODELd::fit(torch::Tensor& dataset,
const std::vector<std::string>& features_,
const std::string& className_, map<std::string, std::vector<int>>& states_,
const Smoothing_t smoothing)
21 if (!torch::is_floating_point(dataset)) {
22 throw std::runtime_error(
"Dataset must be a floating point tensor");
24 Xf = dataset.index({ torch::indexing::Slice(0, dataset.size(0) - 1),
"..." }).clone();
25 y = dataset.index({ -1,
"..." }).clone().to(torch::kInt32);
26 return commonFit(features_, className_, states_, smoothing);
29 SPODELd& SPODELd::commonFit(
const std::vector<std::string>& features_,
const std::string& className_, map<std::string, std::vector<int>>& states_,
const Smoothing_t smoothing)
32 className = className_;
34 states = fit_local_discretization(y);
37 SPODE::fit(dataset, features, className, states, smoothing);
38 states = localDiscretizationProposal(states, model);
41 torch::Tensor SPODELd::predict(torch::Tensor& X)
43 auto Xt = prepareX(X);
44 return SPODE::predict(Xt);
46 std::vector<std::string> SPODELd::graph(
const std::string& name)
const
48 return SPODE::graph(name);