#ifndef BAYESNET_METRICS_H #define BAYESNET_METRICS_H #include #include #include namespace bayesnet { using namespace std; using namespace torch; class Metrics { private: Tensor samples; vector features; string className; int classNumStates; public: Metrics() = default; Metrics(Tensor&, vector&, string&, int); Metrics(const vector>&, const vector&, const vector&, const string&, const int); double entropy(Tensor&); double conditionalEntropy(Tensor&, Tensor&); double mutualInformation(Tensor&, Tensor&); vector conditionalEdgeWeights(); Tensor conditionalEdge(); vector> doCombinations(const vector&); vector> maximumSpanningTree(vector features, Tensor& weights, int root); }; } #endif