Files
BayesNet/docs/manual/_ensemble_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('_ensemble_8h_source.html',''); initResizable(true); }); /* @license-end */ </script>
Loading...
Searching...
No Matches
Ensemble.h
1// ***************************************************************
2// SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
3// SPDX-FileType: SOURCE
4// SPDX-License-Identifier: MIT
5// ***************************************************************
6
7#ifndef ENSEMBLE_H
8#define ENSEMBLE_H
9#include <torch/torch.h>
10#include "bayesnet/utils/BayesMetrics.h"
11#include "bayesnet/utils/bayesnetUtils.h"
12#include "bayesnet/classifiers/Classifier.h"
13
14namespace bayesnet {
15 class Ensemble : public Classifier {
16 public:
17 Ensemble(bool predict_voting = true);
18 virtual ~Ensemble() = default;
19 torch::Tensor predict(torch::Tensor& X) override;
20 std::vector<int> predict(std::vector<std::vector<int>>& X) override;
21 torch::Tensor predict_proba(torch::Tensor& X) override;
22 std::vector<std::vector<double>> predict_proba(std::vector<std::vector<int>>& X) override;
23 float score(torch::Tensor& X, torch::Tensor& y) override;
24 float score(std::vector<std::vector<int>>& X, std::vector<int>& y) override;
25 int getNumberOfNodes() const override;
26 int getNumberOfEdges() const override;
27 int getNumberOfStates() const override;
28 std::vector<std::string> show() const override;
29 std::vector<std::string> graph(const std::string& title) const override;
30 std::vector<std::string> topological_order() override
31 {
32 return std::vector<std::string>();
33 }
34 std::string dump_cpt() const override
35 {
36 return "";
37 }
38 protected:
39 torch::Tensor predict_average_voting(torch::Tensor& X);
40 std::vector<std::vector<double>> predict_average_voting(std::vector<std::vector<int>>& X);
41 torch::Tensor predict_average_proba(torch::Tensor& X);
42 std::vector<std::vector<double>> predict_average_proba(std::vector<std::vector<int>>& X);
43 torch::Tensor compute_arg_max(torch::Tensor& X);
44 std::vector<int> compute_arg_max(std::vector<std::vector<double>>& X);
45 torch::Tensor voting(torch::Tensor& votes);
46 unsigned n_models;
47 std::vector<std::unique_ptr<Classifier>> models;
48 std::vector<double> significanceModels;
49 void trainModel(const torch::Tensor& weights) override;
50 bool predict_voting;
51 };
52}
53#endif
</html>