[pktools] 295/375: segmentation fault in pkfsann.cc
Bas Couwenberg
sebastic at xs4all.nl
Wed Dec 3 21:54:23 UTC 2014
This is an automated email from the git hooks/post-receive script.
sebastic-guest pushed a commit to branch upstream-master
in repository pktools.
commit c601fc896f0b510236addbd379fa93367a729bc6
Author: Pieter Kempeneers <kempenep at gmail.com>
Date: Wed Jun 25 09:05:47 2014 +0200
segmentation fault in pkfsann.cc
---
src/algorithms/FeatureSelector.h | 52 ----------------------------------------
src/apps/pkfsann.cc | 1 +
src/apps/pkfssvm.cc | 1 +
3 files changed, 2 insertions(+), 52 deletions(-)
diff --git a/src/algorithms/FeatureSelector.h b/src/algorithms/FeatureSelector.h
index cecb638..52959d7 100644
--- a/src/algorithms/FeatureSelector.h
+++ b/src/algorithms/FeatureSelector.h
@@ -41,21 +41,11 @@ class FeatureSelector
template<class T> double backward(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int minFeatures, short verbose=0);
template<class T> double floating(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures=0, double epsilon=0.001, short verbose=0);
template<class T> double bruteForce(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures=0, short verbose=0);
- /* //test */
- /* template<class T> double mytest(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures=0, double epsilon=0.001, short verbose=0); */
private:
template<class T> double addFeature(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, short verbose=0);
template<class T> double removeFeature(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int& r, short verbose=0);
template<class T> double forwardUnivariate(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures, short verbose=0);
- /* template<class T> double forward(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int maxFeatures, short verbose=0); */
- /* template<class T> double backward(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int minFeatures, short verbose=0); */
- /* template<class T> double floating(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int maxFeatures=0, double epsilon=0.001, short verbose=0); */
- /* template<class T> double bruteForce(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int maxFeatures=0, short verbose=0); */
-
- /* private: */
- /* template<class T> double addFeature(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, short verbose=0); */
- /* template<class T> double removeFeature(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int& r, short verbose=0); */
};
//sequential forward selection Univariate (N single best features)
@@ -218,48 +208,6 @@ template<class T> double FeatureSelector::floating(std::vector< Vector2d<T> >& v
return cost.back();
}
-//test
-/* template<class T> double FeatureSelector::mytest(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures, double epsilon, short verbose){ */
-
-/* std::vector< Vector2d<T> > origv=v; */
-
-/* std::vector<T> cost; */
-/* subset.clear(); */
-/* int k=subset.size(); */
-/* while(k<maxFeatures){ */
-/* std::list<int> tmpset=subset;//temporary set of selected features (levels) */
-/* std::vector< Vector2d<T> > tmp(v.size()); */
-/* double cost; */
-/* int maxLevels=v[0][0].size(); */
-/* for(int ilevel=0;ilevel<maxLevels;++ilevel){ */
-/* if(find(tmpset.begin(),tmpset.end(),ilevel)!=tmpset.end()) */
-/* continue; */
-/* tmpset.push_back(ilevel); */
-/* for(int iclass=0;iclass<v.size();++iclass){ */
-/* // tmp[iclass].resize(v[iclass].size()); */
-/* v[iclass].selectCols(tmpset,tmp[iclass]); */
-/* } */
-/* cost=theCostFactory.getCost(tmp); */
-/* // cost.push_back(addFeature(v,theCostFactory,subset,verbose)); */
-/* std::cout << "tmpset.size: " << tmpset.size() << std::endl; */
-/* std::cout << "cost " << tmpset.back() << ": " << cost << std::endl; */
-/* ++k; */
-/* } */
-/* } */
-
-/* std::list<int> tmpset; */
-/* tmpset.push_back(0); */
-/* tmpset.push_back(1); */
-/* std::vector< Vector2d<T> > tmp(origv.size()); */
-
-/* for(int ilevel=0;ilevel<tmpset.size();++ilevel){ */
-/* for(int iclass=0;iclass<origv.size();++iclass){ */
-/* origv[iclass].selectCols(tmpset,tmp[iclass]); */
-/* } */
-/* } */
-/* return(theCostFactory.getCost(tmp)); */
-/* } */
-
//brute force search (search for all possible combinations and select best)
template<class T> double FeatureSelector::bruteForce(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures, short verbose){
int maxLevels=v[0][0].size();
diff --git a/src/apps/pkfsann.cc b/src/apps/pkfsann.cc
index 1ba14cf..a28faa1 100644
--- a/src/apps/pkfsann.cc
+++ b/src/apps/pkfsann.cc
@@ -597,6 +597,7 @@ int main(int argc, char *argv[])
if(verbose_opt[0])
cout <<"cost: " << cost << endl;
+ subset.sort();
for(list<int>::const_iterator lit=subset.begin();lit!=subset.end();++lit)
std::cout << " -b " << *lit;
std::cout << std::endl;
diff --git a/src/apps/pkfssvm.cc b/src/apps/pkfssvm.cc
index 7a6fd7c..7d5fb50 100644
--- a/src/apps/pkfssvm.cc
+++ b/src/apps/pkfssvm.cc
@@ -633,6 +633,7 @@ int main(int argc, char *argv[])
if(verbose_opt[0])
cout <<"cost: " << cost << endl;
+ subset.sort();
for(list<int>::const_iterator lit=subset.begin();lit!=subset.end();++lit)
std::cout << " -b " << *lit;
std::cout << std::endl;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git
More information about the Pkg-grass-devel
mailing list