aboutsummaryrefslogtreecommitdiff
path: root/FEAST
diff options
context:
space:
mode:
authorCalvin <calvin@EESI>2013-03-25 16:10:06 -0400
committerCalvin <calvin@EESI>2013-03-25 16:10:06 -0400
commitcc8970858d15f4596f3f0726d92b494b1e34bd42 (patch)
treee21702c1ae959bb328538f9cd4cb9fc8d521b97c /FEAST
parent308c5ffba14dc5211689e7afd90c5d58d9c5d581 (diff)
modified C files to return the output array
Diffstat (limited to 'FEAST')
-rw-r--r--FEAST/FEAST/FSToolbox/BetaGamma.c3
-rw-r--r--FEAST/FEAST/FSToolbox/CMIM.c3
-rw-r--r--FEAST/FEAST/FSToolbox/CondMI.c4
-rw-r--r--FEAST/FEAST/FSToolbox/DISR.c3
-rw-r--r--FEAST/FEAST/FSToolbox/FSAlgorithms.h14
-rw-r--r--FEAST/FEAST/FSToolbox/ICAP.c4
-rw-r--r--FEAST/FEAST/FSToolbox/JMI.c5
-rw-r--r--FEAST/FEAST/FSToolbox/mRMR_D.c3
8 files changed, 24 insertions, 15 deletions
diff --git a/FEAST/FEAST/FSToolbox/BetaGamma.c b/FEAST/FEAST/FSToolbox/BetaGamma.c
index d500752..925ef8b 100644
--- a/FEAST/FEAST/FSToolbox/BetaGamma.c
+++ b/FEAST/FEAST/FSToolbox/BetaGamma.c
@@ -57,7 +57,7 @@
/* MIToolbox includes */
#include "MutualInformation.h"
-void BetaGamma(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures, double betaParam, double gammaParam)
+double* BetaGamma(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures, double betaParam, double gammaParam)
{
double **feature2D = (double **) CALLOC_FUNC(noOfFeatures,sizeof(double *));
@@ -183,5 +183,6 @@ void BetaGamma(int k, int noOfSamples, int noOfFeatures, double *featureMatrix,
outputFeatures[i] += 1; /*C++ indexes from 0 not 1*/
}/*for number of selected features*/
+ return outputFeatures;
}/*BetaGamma(int,int,int,double[][],double[],double[],double,double)*/
diff --git a/FEAST/FEAST/FSToolbox/CMIM.c b/FEAST/FEAST/FSToolbox/CMIM.c
index 8815644..9ef21ad 100644
--- a/FEAST/FEAST/FSToolbox/CMIM.c
+++ b/FEAST/FEAST/FSToolbox/CMIM.c
@@ -53,7 +53,7 @@
/* MIToolbox includes */
#include "MutualInformation.h"
-void CMIM(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
+double* CMIM(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
{
/*holds the class MI values
**the class MI doubles as the partial score from the CMIM paper
@@ -137,5 +137,6 @@ void CMIM(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, doubl
lastUsedFeature = NULL;
feature2D = NULL;
+ return outputFeatures;
}/*CMIM(int,int,int,double[][],double[],double[])*/
diff --git a/FEAST/FEAST/FSToolbox/CondMI.c b/FEAST/FEAST/FSToolbox/CondMI.c
index e1f746a..ea6f8ee 100644
--- a/FEAST/FEAST/FSToolbox/CondMI.c
+++ b/FEAST/FEAST/FSToolbox/CondMI.c
@@ -52,7 +52,7 @@
#include "MutualInformation.h"
#include "ArrayOperations.h"
-void CondMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
+double* CondMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
{
/*holds the class MI values*/
double *classMI = (double *)CALLOC_FUNC(noOfFeatures,sizeof(double));
@@ -160,5 +160,7 @@ void CondMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, dou
feature2D = NULL;
featureMIMatrix = NULL;
selectedFeatures = NULL;
+
+ return outputFeatures;
}/*CondMI(int,int,int,double[][],double[],double[])*/
diff --git a/FEAST/FEAST/FSToolbox/DISR.c b/FEAST/FEAST/FSToolbox/DISR.c
index f8b19e6..3ec7676 100644
--- a/FEAST/FEAST/FSToolbox/DISR.c
+++ b/FEAST/FEAST/FSToolbox/DISR.c
@@ -53,7 +53,7 @@
#include "Entropy.h"
#include "ArrayOperations.h"
-void DISR(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
+double* DISR(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
{
/*holds the class MI values*/
double *classMI = (double *)CALLOC_FUNC(noOfFeatures,sizeof(double));
@@ -177,5 +177,6 @@ void DISR(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, doubl
featureMIMatrix = NULL;
selectedFeatures = NULL;
+ return outputFeatures;
}/*DISR(int,int,int,double[][],double[],double[])*/
diff --git a/FEAST/FEAST/FSToolbox/FSAlgorithms.h b/FEAST/FEAST/FSToolbox/FSAlgorithms.h
index f53990c..e6ddba8 100644
--- a/FEAST/FEAST/FSToolbox/FSAlgorithms.h
+++ b/FEAST/FEAST/FSToolbox/FSAlgorithms.h
@@ -76,7 +76,7 @@
** "Feature Selection Based on Mutual Information: Criteria of Max-Dependency, Max-Relevance, and Min-Redundancy"
** H. Peng et al. IEEE Pattern Analysis and Machine Intelligence (PAMI) (2005)
*******************************************************************************/
-void mRMR_D(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
+double* mRMR_D(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
/*******************************************************************************
** CMIM() implements a discrete version of the
@@ -86,7 +86,7 @@ void mRMR_D(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, dou
** "Fast Binary Feature Selection using Conditional Mutual Information Maximisation"
** F. Fleuret, JMLR (2004)
*******************************************************************************/
-void CMIM(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
+double* CMIM(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
/*******************************************************************************
** JMI() implements the JMI criterion from
@@ -94,7 +94,7 @@ void CMIM(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, doubl
** "Data Visualization and Feature Selection: New Algorithms for Nongaussian Data"
** H. Yang and J. Moody, NIPS (1999)
*******************************************************************************/
-void JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
+double* JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
/*******************************************************************************
** DISR() implements the Double Input Symmetrical Relevance criterion
@@ -103,7 +103,7 @@ void JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double
** "On the Use of Variable Complementarity for Feature Selection in Cancer Classification"
** P. Meyer and G. Bontempi, (2006)
*******************************************************************************/
-void DISR(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
+double* DISR(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
/*******************************************************************************
** ICAP() implements the Interaction Capping criterion from
@@ -111,12 +111,12 @@ void DISR(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, doubl
** "Machine Learning Based on Attribute Interactions"
** A. Jakulin, PhD Thesis (2005)
*******************************************************************************/
-void ICAP(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
+double* ICAP(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
/*******************************************************************************
** CondMI() implements the CMI criterion using a greedy forward search
*******************************************************************************/
-void CondMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
+double* CondMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures);
/*******************************************************************************
** betaGamma() implements the Beta-Gamma space from Brown (2009).
@@ -133,6 +133,6 @@ void CondMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, dou
** G. Brown, A. Pocock, M.-J. Zhao, M. Lujan
** Journal of Machine Learning Research (JMLR), 2011
*******************************************************************************/
-void BetaGamma(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures, double beta, double gamma);
+double* BetaGamma(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures, double beta, double gamma);
#endif
diff --git a/FEAST/FEAST/FSToolbox/ICAP.c b/FEAST/FEAST/FSToolbox/ICAP.c
index 8f1e260..00953a7 100644
--- a/FEAST/FEAST/FSToolbox/ICAP.c
+++ b/FEAST/FEAST/FSToolbox/ICAP.c
@@ -51,7 +51,7 @@
/* MIToolbox includes */
#include "MutualInformation.h"
-void ICAP(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
+double* ICAP(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
{
/*holds the class MI values*/
double *classMI = (double *)CALLOC_FUNC(noOfFeatures,sizeof(double));
@@ -178,5 +178,7 @@ void ICAP(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, doubl
featureMIMatrix = NULL;
featureCMIMatrix = NULL;
selectedFeatures = NULL;
+
+ return outputFeatures;
}/*ICAP(int,int,int,double[][],double[],double[])*/
diff --git a/FEAST/FEAST/FSToolbox/JMI.c b/FEAST/FEAST/FSToolbox/JMI.c
index 64f8807..30ef1bc 100644
--- a/FEAST/FEAST/FSToolbox/JMI.c
+++ b/FEAST/FEAST/FSToolbox/JMI.c
@@ -52,7 +52,7 @@
#include "MutualInformation.h"
#include "ArrayOperations.h"
-void JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
+double* JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
{
/*holds the class MI values*/
double *classMI = (double *)CALLOC_FUNC(noOfFeatures,sizeof(double));
@@ -156,7 +156,6 @@ void JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double
for (i = 0; i < k; i++)
{
- printf("%f\n", outputFeatures[i]);
outputFeatures[i] += 1; /*C indexes from 0 not 1*/
}/*for number of selected features*/
@@ -172,5 +171,7 @@ void JMI(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double
mergedVector = NULL;
selectedFeatures = NULL;
+ return outputFeatures;
+
}/*JMI(int,int,int,double[][],double[],double[])*/
diff --git a/FEAST/FEAST/FSToolbox/mRMR_D.c b/FEAST/FEAST/FSToolbox/mRMR_D.c
index 6710866..3eeb2a4 100644
--- a/FEAST/FEAST/FSToolbox/mRMR_D.c
+++ b/FEAST/FEAST/FSToolbox/mRMR_D.c
@@ -52,7 +52,7 @@
/* MIToolbox includes */
#include "MutualInformation.h"
-void mRMR_D(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
+double* mRMR_D(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, double *classColumn, double *outputFeatures)
{
double **feature2D = (double**) CALLOC_FUNC(noOfFeatures,sizeof(double*));
/*holds the class MI values*/
@@ -165,5 +165,6 @@ void mRMR_D(int k, int noOfSamples, int noOfFeatures, double *featureMatrix, dou
featureMIMatrix = NULL;
selectedFeatures = NULL;
+ return outputFeatures;
}/*mRMR(int,int,int,double[][],double[],double[])*/