diff --git a/.gitignore b/.gitignore index fc73bb7..2d86bc8 100644 --- a/.gitignore +++ b/.gitignore @@ -33,8 +33,8 @@ MANIFEST *.manifest *.spec -# Installer log2s -pip-log2.txt +# Installer logs +pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports @@ -56,7 +56,7 @@ coverage.xml *.pot # Django stuff: -*.log2 +*.log local_settings.py db.sqlite3 db.sqlite3-journal @@ -134,4 +134,5 @@ cmake-build-debug cmake-build-debug/** **/lcoverage/** **/x/* -**/*.so \ No newline at end of file +**/*.so +**/CMakeFiles \ No newline at end of file diff --git a/src/fimdlp/cfimdlp.pyx b/src/fimdlp/cfimdlp.pyx index 83812ac..25a55dc 100644 --- a/src/fimdlp/cfimdlp.pyx +++ b/src/fimdlp/cfimdlp.pyx @@ -1,7 +1,7 @@ # distutils: language = c++ # cython: language_level = 3 from libcpp.vector cimport vector -from libcpp cimport bool +from libcpp.string cimport string cdef extern from "../cppmdlp/CPPFImdlp.h" namespace "mdlp": ctypedef float precision_t @@ -9,6 +9,7 @@ cdef extern from "../cppmdlp/CPPFImdlp.h" namespace "mdlp": CPPFImdlp(int) except + CPPFImdlp& fit(vector[precision_t]&, vector[int]&) vector[precision_t] getCutPoints() + string version() cdef class CFImdlp: @@ -22,4 +23,6 @@ cdef class CFImdlp: return self def get_cut_points(self): return self.thisptr.getCutPoints() + def get_version(self): + return self.thisptr.version() diff --git a/src/fimdlp/mdlp.py b/src/fimdlp/mdlp.py index 86441e7..92db4dc 100644 --- a/src/fimdlp/mdlp.py +++ b/src/fimdlp/mdlp.py @@ -99,9 +99,15 @@ class FImdlp(TransformerMixin, BaseEstimator): return self def _fit_discretizer(self, feature): - self.discretizer_[feature] = CFImdlp(proposal=self.proposal) - self.discretizer_[feature].fit(self.X_[:, feature], self.y_) - self.cut_points_[feature] = self.discretizer_[feature].get_cut_points() + if feature in self.features_: + self.discretizer_[feature] = CFImdlp(proposal=self.proposal) + self.discretizer_[feature].fit(self.X_[:, feature], self.y_) + self.cut_points_[feature] = self.discretizer_[ + feature + ].get_cut_points() + else: + self.discretizer_[feature] = None + self.cut_points_[feature] = [] def _discretize_feature(self, feature, X, result): if feature in self.features_: