BayesNet 1.0.5
Bayesian Network Classifiers using libtorch from scratch
Loading...
Searching...
No Matches
KDBLd.cc
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
9namespace bayesnet {
10 KDBLd::KDBLd(int k) : KDB(k), Proposal(dataset, features, className) {}
11 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 checkInput(X_, y_);
14 features = features_;
15 className = className_;
16 Xf = X_;
17 y = y_;
18 // Fills std::vectors Xv & yv with the data from tensors X_ (discretized) & y
19 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 KDB::fit(dataset, features, className, states);
23 states = localDiscretizationProposal(states, model);
24 return *this;
25 }
26 torch::Tensor KDBLd::predict(torch::Tensor& X)
27 {
28 auto Xt = prepareX(X);
29 return KDB::predict(Xt);
30 }
31 std::vector<std::string> KDBLd::graph(const std::string& name) const
32 {
33 return KDB::graph(name);
34 }
35}