From c5ff1a0b2b8229d8b08c59d28d363f658729bbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana=20G=C3=B3mez?= Date: Tue, 11 Jun 2024 13:43:12 +0200 Subject: [PATCH] Add smoothing parameter for compatibility with BayesNet --- CMakeLists.txt | 2 +- pyclfs/PyClassifier.cc | 2 +- pyclfs/PyClassifier.h | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c412b5d..d0409b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.20) project(PyClassifiers - VERSION 1.0.1 + VERSION 1.0.2 DESCRIPTION "Python Classifiers Wrapper." HOMEPAGE_URL "https://github.com/rmontanana/pyclassifiers" LANGUAGES CXX diff --git a/pyclfs/PyClassifier.cc b/pyclfs/PyClassifier.cc index 9ab656a..47f1185 100644 --- a/pyclfs/PyClassifier.cc +++ b/pyclfs/PyClassifier.cc @@ -70,7 +70,7 @@ namespace pywrap { fitted = true; return *this; } - PyClassifier& PyClassifier::fit(torch::Tensor& X, torch::Tensor& y, const std::vector& features, const std::string& className, std::map>& states) + PyClassifier& PyClassifier::fit(torch::Tensor& X, torch::Tensor& y, const std::vector& features, const std::string& className, std::map>& states, const bayesnet::Smoothing_t smoothing) { return fit(X, y); } diff --git a/pyclfs/PyClassifier.h b/pyclfs/PyClassifier.h index ffcdd7f..fbe4005 100644 --- a/pyclfs/PyClassifier.h +++ b/pyclfs/PyClassifier.h @@ -17,12 +17,12 @@ namespace pywrap { public: PyClassifier(const std::string& module, const std::string& className, const bool sklearn = false); virtual ~PyClassifier(); - PyClassifier& fit(std::vector>& X, std::vector& y, const std::vector& features, const std::string& className, std::map>& states) override { return *this; }; + PyClassifier& fit(std::vector>& X, std::vector& y, const std::vector& features, const std::string& className, std::map>& states, const bayesnet::Smoothing_t smoothing = bayesnet::Smoothing_t::NONE) override { return *this; }; // X is nxm tensor, y is nx1 tensor - PyClassifier& fit(torch::Tensor& X, torch::Tensor& y, const std::vector& features, const std::string& className, std::map>& states) override; + PyClassifier& fit(torch::Tensor& X, torch::Tensor& y, const std::vector& features, const std::string& className, std::map>& states, const bayesnet::Smoothing_t smoothing = bayesnet::Smoothing_t::NONE) override; PyClassifier& fit(torch::Tensor& X, torch::Tensor& y); - PyClassifier& fit(torch::Tensor& dataset, const std::vector& features, const std::string& className, std::map>& states) override { return *this; }; - PyClassifier& fit(torch::Tensor& dataset, const std::vector& features, const std::string& className, std::map>& states, const torch::Tensor& weights) override { return *this; }; + PyClassifier& fit(torch::Tensor& dataset, const std::vector& features, const std::string& className, std::map>& states, const bayesnet::Smoothing_t smoothing = bayesnet::Smoothing_t::NONE) override { return *this; }; + PyClassifier& fit(torch::Tensor& dataset, const std::vector& features, const std::string& className, std::map>& states, const torch::Tensor& weights, const bayesnet::Smoothing_t smoothing = bayesnet::Smoothing_t::NONE) override { return *this; }; torch::Tensor predict(torch::Tensor& X) override; std::vector predict(std::vector>& X) override { return std::vector(); }; // Not implemented torch::Tensor predict_proba(torch::Tensor& X) override { return torch::zeros({ 0, 0 }); } // Not implemented @@ -47,7 +47,7 @@ namespace pywrap { void setHyperparameters(const nlohmann::json& hyperparameters) override; protected: nlohmann::json hyperparameters; - void trainModel(const torch::Tensor& weights) override {}; + void trainModel(const torch::Tensor& weights, const bayesnet::Smoothing_t smoothing = bayesnet::Smoothing_t::NONE) override {}; std::vector notes; private: PyWrap* pyWrap;