Files
BayesNet/docs/manual/_base_classifier_8h_source.html

14 KiB

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <script type="text/javascript" src="clipboard.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="cookie.js"></script> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> </head>
BayesNet 1.0.5
Bayesian Network Classifiers using libtorch from scratch
<script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ var searchBox = new SearchBox("searchBox", "search/",'.html'); /* @license-end */ </script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function() { codefold.init(0); }); /* @license-end */ </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function() { initMenu('',true,false,'search.php','Search',true); $(function() { init_search(); }); }); /* @license-end */ </script>
<script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function(){initNavTree('_base_classifier_8h_source.html',''); initResizable(true); }); /* @license-end */ </script>
Loading...
Searching...
No Matches
BaseClassifier.h
1// ***************************************************************
2// SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
3// SPDX-FileType: SOURCE
4// SPDX-License-Identifier: MIT
5// ***************************************************************
6
7#pragma once
8#include <vector>
9#include <torch/torch.h>
10#include <nlohmann/json.hpp>
11namespace bayesnet {
12 enum status_t { NORMAL, WARNING, ERROR };
14 public:
15 // X is nxm std::vector, y is nx1 std::vector
16 virtual BaseClassifier& fit(std::vector<std::vector<int>>& X, std::vector<int>& y, const std::vector<std::string>& features, const std::string& className, std::map<std::string, std::vector<int>>& states) = 0;
17 // X is nxm tensor, y is nx1 tensor
18 virtual BaseClassifier& fit(torch::Tensor& X, torch::Tensor& y, const std::vector<std::string>& features, const std::string& className, std::map<std::string, std::vector<int>>& states) = 0;
19 virtual BaseClassifier& fit(torch::Tensor& dataset, const std::vector<std::string>& features, const std::string& className, std::map<std::string, std::vector<int>>& states) = 0;
20 virtual BaseClassifier& fit(torch::Tensor& dataset, const std::vector<std::string>& features, const std::string& className, std::map<std::string, std::vector<int>>& states, const torch::Tensor& weights) = 0;
21 virtual ~BaseClassifier() = default;
22 torch::Tensor virtual predict(torch::Tensor& X) = 0;
23 std::vector<int> virtual predict(std::vector<std::vector<int >>& X) = 0;
24 torch::Tensor virtual predict_proba(torch::Tensor& X) = 0;
25 std::vector<std::vector<double>> virtual predict_proba(std::vector<std::vector<int >>& X) = 0;
26 status_t virtual getStatus() const = 0;
27 float virtual score(std::vector<std::vector<int>>& X, std::vector<int>& y) = 0;
28 float virtual score(torch::Tensor& X, torch::Tensor& y) = 0;
29 int virtual getNumberOfNodes()const = 0;
30 int virtual getNumberOfEdges()const = 0;
31 int virtual getNumberOfStates() const = 0;
32 int virtual getClassNumStates() const = 0;
33 std::vector<std::string> virtual show() const = 0;
34 std::vector<std::string> virtual graph(const std::string& title = "") const = 0;
35 virtual std::string getVersion() = 0;
36 std::vector<std::string> virtual topological_order() = 0;
37 std::vector<std::string> virtual getNotes() const = 0;
38 std::string virtual dump_cpt()const = 0;
39 virtual void setHyperparameters(const nlohmann::json& hyperparameters) = 0;
40 std::vector<std::string>& getValidHyperparameters() { return validHyperparameters; }
41 protected:
42 virtual void trainModel(const torch::Tensor& weights) = 0;
43 std::vector<std::string> validHyperparameters;
44 };
45}
</html>