Line data Source code
1 : // ***************************************************************
2 : // SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
3 : // SPDX-FileType: SOURCE
4 : // SPDX-License-Identifier: MIT
5 : // ***************************************************************
6 :
7 : #include "KDBLd.h"
8 :
9 : namespace bayesnet {
10 17 : KDBLd::KDBLd(int k) : KDB(k), Proposal(dataset, features, className) {}
11 5 : KDBLd& KDBLd::fit(torch::Tensor& X_, torch::Tensor& y_, const std::vector<std::string>& features_, const std::string& className_, map<std::string, std::vector<int>>& states_)
12 : {
13 5 : checkInput(X_, y_);
14 5 : features = features_;
15 5 : className = className_;
16 5 : Xf = X_;
17 5 : y = y_;
18 : // Fills std::vectors Xv & yv with the data from tensors X_ (discretized) & y
19 5 : states = fit_local_discretization(y);
20 : // We have discretized the input data
21 : // 1st we need to fit the model to build the normal KDB structure, KDB::fit initializes the base Bayesian network
22 5 : KDB::fit(dataset, features, className, states);
23 5 : states = localDiscretizationProposal(states, model);
24 5 : return *this;
25 : }
26 4 : torch::Tensor KDBLd::predict(torch::Tensor& X)
27 : {
28 4 : auto Xt = prepareX(X);
29 8 : return KDB::predict(Xt);
30 4 : }
31 1 : std::vector<std::string> KDBLd::graph(const std::string& name) const
32 : {
33 1 : return KDB::graph(name);
34 : }
35 : }
|