00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 1999-2008 Gunnar Raetsch 00008 * Written (W) 1999-2008 Soeren Sonnenburg 00009 * Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max-Planck-Society 00010 */ 00011 00012 #ifndef _CPRUNE_VAR_SUB_MEAN__H__ 00013 #define _CPRUNE_VAR_SUB_MEAN__H__ 00014 00015 #include <shogun/preprocessor/DensePreprocessor.h> 00016 #include <shogun/features/Features.h> 00017 #include <shogun/lib/common.h> 00018 00019 #include <stdio.h> 00020 00021 namespace shogun 00022 { 00029 class CPruneVarSubMean : public CDensePreprocessor<float64_t> 00030 { 00031 public: 00036 CPruneVarSubMean(bool divide=true); 00037 00039 virtual ~CPruneVarSubMean(); 00040 00042 virtual bool init(CFeatures* features); 00043 00045 virtual void cleanup(); 00046 00050 virtual SGMatrix<float64_t> apply_to_feature_matrix(CFeatures* features); 00051 00054 virtual SGVector<float64_t> apply_to_feature_vector(SGVector<float64_t> vector); 00055 00057 virtual const char* get_name() const { return "PruneVarSubMean"; } 00058 00060 virtual EPreprocessorType get_type() const { return P_PRUNEVARSUBMEAN; } 00061 00062 protected: 00064 int32_t* idx; 00066 float64_t* mean; 00068 float64_t* std; 00070 int32_t num_idx; 00072 bool divide_by_std; 00073 00075 bool initialized; 00076 }; 00077 } 00078 #endif