Skip to content

Commit

Permalink
Add transformer::apply(features, inplace) api
Browse files Browse the repository at this point in the history
  • Loading branch information
vinx13 authored and vigsterkr committed Jul 12, 2018
1 parent ed287db commit b47d428
Show file tree
Hide file tree
Showing 52 changed files with 67 additions and 56 deletions.
2 changes: 1 addition & 1 deletion src/shogun/converter/Converter.h
Expand Up @@ -37,7 +37,7 @@ class CConverter : public CTransformer
* @param features features to convert
* @return converted features
*/
virtual CFeatures* apply(CFeatures* features) = 0;
virtual CFeatures* apply(CFeatures* features, bool inplace = true) = 0;
};
}
#endif /* CONVERTER_H_ */
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/DiffusionMaps.cpp
Expand Up @@ -58,7 +58,7 @@ const char* CDiffusionMaps::get_name() const
return "DiffusionMaps";
};

CFeatures* CDiffusionMaps::apply(CFeatures* features)
CFeatures* CDiffusionMaps::apply(CFeatures* features, bool inplace)
{
ASSERT(features)
// shorthand for simplefeatures
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/DiffusionMaps.h
Expand Up @@ -45,7 +45,7 @@ class CDiffusionMaps: public CEmbeddingConverter
/** apply preprocessor to features
* @param features
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** embed distance
* @param distance to use for embedding
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/EmbeddingConverter.h
Expand Up @@ -40,7 +40,7 @@ class CEmbeddingConverter: public CConverter
* @param features features to embed
* @return embedding features
*/
virtual CFeatures* apply(CFeatures* features) = 0;
virtual CFeatures* apply(CFeatures* features, bool inplace = true) = 0;

/** embed given features, acts the same as apply, but returns
* DenseFeatures
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/FactorAnalysis.cpp
Expand Up @@ -54,7 +54,7 @@ float64_t CFactorAnalysis::get_epsilon() const
return m_epsilon;
}

CFeatures* CFactorAnalysis::apply(CFeatures* features)
CFeatures* CFactorAnalysis::apply(CFeatures* features, bool inplace)
{
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
parameters.max_iteration = m_max_iteration;
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/FactorAnalysis.h
Expand Up @@ -60,7 +60,7 @@ class CFactorAnalysis : public CEmbeddingConverter
*
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** setter for the maximum number of iterations
*
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/HashedDocConverter.cpp
Expand Up @@ -73,7 +73,7 @@ const char* CHashedDocConverter::get_name() const
return "HashedDocConverter";
}

CFeatures* CHashedDocConverter::apply(CFeatures* features)
CFeatures* CHashedDocConverter::apply(CFeatures* features, bool inplace)
{
ASSERT(features);
if (strcmp(features->get_name(), "StringFeatures")!=0)
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/HashedDocConverter.h
Expand Up @@ -68,7 +68,7 @@ class CHashedDocConverter : public CConverter
* @param features the strings to be hashed. Must be an instance of CStringFeatures.
* @return a CSparseFeatures object containing the hashes of the strings.
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** Hashes the tokens contained in document
*
Expand Down
3 changes: 2 additions & 1 deletion src/shogun/converter/HessianLocallyLinearEmbedding.cpp
Expand Up @@ -25,7 +25,8 @@ const char* CHessianLocallyLinearEmbedding::get_name() const
return "HessianLocallyLinearEmbedding";
};

CFeatures* CHessianLocallyLinearEmbedding::apply(CFeatures* features)
CFeatures*
CHessianLocallyLinearEmbedding::apply(CFeatures* features, bool inplace)
{
CKernel* kernel = new CLinearKernel((CDotFeatures*)features,(CDotFeatures*)features);
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/HessianLocallyLinearEmbedding.h
Expand Up @@ -48,7 +48,7 @@ class CHessianLocallyLinearEmbedding: public CLocallyLinearEmbedding
virtual const char* get_name() const;

/** apply */
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);
};
}

Expand Down
3 changes: 2 additions & 1 deletion src/shogun/converter/KernelLocallyLinearEmbedding.cpp
Expand Up @@ -31,7 +31,8 @@ CKernelLocallyLinearEmbedding::~CKernelLocallyLinearEmbedding()
{
}

CFeatures* CKernelLocallyLinearEmbedding::apply(CFeatures* features)
CFeatures*
CKernelLocallyLinearEmbedding::apply(CFeatures* features, bool inplace)
{
ASSERT(features)
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/KernelLocallyLinearEmbedding.h
Expand Up @@ -52,7 +52,7 @@ class CKernelLocallyLinearEmbedding: public CLocallyLinearEmbedding
virtual ~CKernelLocallyLinearEmbedding();

/** apply */
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** embed kernel (kernel should be inited)
* @param kernel kernel to construct embed
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/LaplacianEigenmaps.cpp
Expand Up @@ -57,7 +57,7 @@ const char* CLaplacianEigenmaps::get_name() const
return "LaplacianEigenmaps";
};

CFeatures* CLaplacianEigenmaps::apply(CFeatures* features)
CFeatures* CLaplacianEigenmaps::apply(CFeatures* features, bool inplace)
{
// shorthand for simplefeatures
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/LaplacianEigenmaps.h
Expand Up @@ -46,7 +46,7 @@ class CLaplacianEigenmaps: public CEmbeddingConverter
* @param features to embed
* @return embedded features
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** embed distance
* @param distance to use for embedding
Expand Down
3 changes: 2 additions & 1 deletion src/shogun/converter/LinearLocalTangentSpaceAlignment.cpp
Expand Up @@ -26,7 +26,8 @@ const char* CLinearLocalTangentSpaceAlignment::get_name() const
return "LinearLocalTangentSpaceAlignment";
}

CFeatures* CLinearLocalTangentSpaceAlignment::apply(CFeatures* features)
CFeatures*
CLinearLocalTangentSpaceAlignment::apply(CFeatures* features, bool inplace)
{
CKernel* kernel = new CLinearKernel((CDotFeatures*)features,(CDotFeatures*)features);
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
Expand Down
3 changes: 1 addition & 2 deletions src/shogun/converter/LinearLocalTangentSpaceAlignment.h
Expand Up @@ -49,8 +49,7 @@ class CLinearLocalTangentSpaceAlignment: public CLocalTangentSpaceAlignment
virtual const char* get_name() const;

/** apply */
virtual CFeatures* apply(CFeatures* features);

virtual CFeatures* apply(CFeatures* features, bool inplace = true);
};
}

Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/LocalTangentSpaceAlignment.cpp
Expand Up @@ -26,7 +26,7 @@ const char* CLocalTangentSpaceAlignment::get_name() const
return "LocalTangentSpaceAlignment";
};

CFeatures* CLocalTangentSpaceAlignment::apply(CFeatures* features)
CFeatures* CLocalTangentSpaceAlignment::apply(CFeatures* features, bool inplace)
{
CKernel* kernel = new CLinearKernel((CDotFeatures*)features,(CDotFeatures*)features);
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
Expand Down
3 changes: 1 addition & 2 deletions src/shogun/converter/LocalTangentSpaceAlignment.h
Expand Up @@ -47,8 +47,7 @@ class CLocalTangentSpaceAlignment: public CLocallyLinearEmbedding
virtual const char* get_name() const;

/** apply */
virtual CFeatures* apply(CFeatures* features);

virtual CFeatures* apply(CFeatures* features, bool inplace = true);
};
}

Expand Down
3 changes: 2 additions & 1 deletion src/shogun/converter/LocalityPreservingProjections.cpp
Expand Up @@ -26,7 +26,8 @@ const char* CLocalityPreservingProjections::get_name() const
return "LocalityPreservingProjections";
};

CFeatures* CLocalityPreservingProjections::apply(CFeatures* features)
CFeatures*
CLocalityPreservingProjections::apply(CFeatures* features, bool inplace)
{
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
m_distance->init(features,features);
Expand Down
3 changes: 1 addition & 2 deletions src/shogun/converter/LocalityPreservingProjections.h
Expand Up @@ -44,8 +44,7 @@ class CLocalityPreservingProjections: public CLaplacianEigenmaps
virtual const char* get_name() const;

/** apply */
virtual CFeatures* apply(CFeatures* features);

virtual CFeatures* apply(CFeatures* features, bool inplace = true);
};
}

Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/LocallyLinearEmbedding.cpp
Expand Up @@ -74,7 +74,7 @@ const char* CLocallyLinearEmbedding::get_name() const
return "LocallyLinearEmbedding";
}

CFeatures* CLocallyLinearEmbedding::apply(CFeatures* features)
CFeatures* CLocallyLinearEmbedding::apply(CFeatures* features, bool inplace)
{
// oh my let me dirty cast it
CKernel* kernel = new CLinearKernel((CDotFeatures*)features,(CDotFeatures*)features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/LocallyLinearEmbedding.h
Expand Up @@ -52,7 +52,7 @@ class CLocallyLinearEmbedding: public CEmbeddingConverter
/** apply preprocessor to features
* @param features
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** setter for k parameter
* @param k k value
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ManifoldSculpting.cpp
Expand Up @@ -72,7 +72,7 @@ int32_t CManifoldSculpting::get_max_iteration() const
return m_max_iteration;
}

CFeatures* CManifoldSculpting::apply(CFeatures* features)
CFeatures* CManifoldSculpting::apply(CFeatures* features, bool inplace)
{
CDenseFeatures<float64_t>* feats = (CDenseFeatures<float64_t>*)features;
SG_REF(feats);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ManifoldSculpting.h
Expand Up @@ -37,7 +37,7 @@ class CManifoldSculpting : public CEmbeddingConverter
*
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** setter for the k
*
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/MultidimensionalScaling.cpp
Expand Up @@ -96,7 +96,7 @@ CDenseFeatures<float64_t>* CMultidimensionalScaling::embed_distance(CDistance* d
return embedding;
}

CFeatures* CMultidimensionalScaling::apply(CFeatures* features)
CFeatures* CMultidimensionalScaling::apply(CFeatures* features, bool inplace)
{
SG_REF(features);
ASSERT(m_distance)
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/MultidimensionalScaling.h
Expand Up @@ -75,7 +75,7 @@ class CMultidimensionalScaling: public CEmbeddingConverter
* @param features features which feature matrix should be processed
* @return new feature matrix
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** get name */
const char* get_name() const;
Expand Down
3 changes: 2 additions & 1 deletion src/shogun/converter/NeighborhoodPreservingEmbedding.cpp
Expand Up @@ -27,7 +27,8 @@ const char* CNeighborhoodPreservingEmbedding::get_name() const
return "NeighborhoodPreservingEmbedding";
}

CFeatures* CNeighborhoodPreservingEmbedding::apply(CFeatures* features)
CFeatures*
CNeighborhoodPreservingEmbedding::apply(CFeatures* features, bool inplace)
{
CKernel* kernel = new CLinearKernel((CDotFeatures*)features,(CDotFeatures*)features);
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
Expand Down
3 changes: 1 addition & 2 deletions src/shogun/converter/NeighborhoodPreservingEmbedding.h
Expand Up @@ -49,8 +49,7 @@ class CNeighborhoodPreservingEmbedding: public CLocallyLinearEmbedding
virtual const char* get_name() const;

/** apply */
virtual CFeatures* apply(CFeatures* features);

virtual CFeatures* apply(CFeatures* features, bool inplace = true);
};
}

Expand Down
3 changes: 2 additions & 1 deletion src/shogun/converter/StochasticProximityEmbedding.cpp
Expand Up @@ -105,7 +105,8 @@ const char * CStochasticProximityEmbedding::get_name() const
return "StochasticProximityEmbedding";
}

CFeatures* CStochasticProximityEmbedding::apply(CFeatures* features)
CFeatures*
CStochasticProximityEmbedding::apply(CFeatures* features, bool inplace)
{
if ( !features )
SG_ERROR("Features are required to apply SPE\n")
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/StochasticProximityEmbedding.h
Expand Up @@ -72,7 +72,7 @@ class CStochasticProximityEmbedding : public CEmbeddingConverter
* @param features features to embed
* @return embedding features
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** setter for number of neighbors k in local strategy
*
Expand Down
Expand Up @@ -55,7 +55,8 @@ float64_t CTDistributedStochasticNeighborEmbedding::get_perplexity() const
return m_perplexity;
}

CFeatures* CTDistributedStochasticNeighborEmbedding::apply(CFeatures* features)
CFeatures* CTDistributedStochasticNeighborEmbedding::apply(
CFeatures* features, bool inplace)
{
TAPKEE_PARAMETERS_FOR_SHOGUN parameters;
parameters.sne_theta = m_theta;
Expand Down
Expand Up @@ -38,7 +38,7 @@ class CTDistributedStochasticNeighborEmbedding : public CEmbeddingConverter
*
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** setter for the learning rate
*
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/FFSep.cpp
Expand Up @@ -52,7 +52,7 @@ SGNDArray<float64_t> CFFSep::get_covs() const
return m_covs;
}

CFeatures* CFFSep::apply(CFeatures* features)
CFeatures* CFFSep::apply(CFeatures* features, bool inplace)
{
ASSERT(features);
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/FFSep.h
Expand Up @@ -42,7 +42,7 @@ class CFFSep: public CICAConverter
/** apply to features
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** getter for tau parameter
* @return tau vector
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/FastICA.cpp
Expand Up @@ -66,7 +66,7 @@ bool CFastICA::get_whiten() const
return whiten;
}

CFeatures* CFastICA::apply(CFeatures* features)
CFeatures* CFastICA::apply(CFeatures* features, bool inplace)
{
ASSERT(features);
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/FastICA.h
Expand Up @@ -38,7 +38,7 @@ class CFastICA: public CICAConverter
/** apply to features
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** setter for whiten flag
* whether to whiten the data or not
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/ICAConverter.h
Expand Up @@ -33,7 +33,7 @@ class CICAConverter: public CConverter
/** apply to features
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features) = 0;
virtual CFeatures* apply(CFeatures* features, bool inplace = true) = 0;

/** setter for mixing matrix, if the mixing matrix is set it will be
* used as an initial guess if supported by the algorithm
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/Jade.cpp
Expand Up @@ -40,7 +40,7 @@ SGMatrix<float64_t> CJade::get_cumulant_matrix() const
return m_cumulant_matrix;
}

CFeatures* CJade::apply(CFeatures* features)
CFeatures* CJade::apply(CFeatures* features, bool inplace)
{
ASSERT(features);
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/Jade.h
Expand Up @@ -43,7 +43,7 @@ class CJade: public CICAConverter
/** apply to features
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** getter for cumulant_matrix
* @return cumulant_matrix
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/JediSep.cpp
Expand Up @@ -52,7 +52,7 @@ SGNDArray<float64_t> CJediSep::get_covs() const
return m_covs;
}

CFeatures* CJediSep::apply(CFeatures* features)
CFeatures* CJediSep::apply(CFeatures* features, bool inplace)
{
REQUIRE(features, "features is null");
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/JediSep.h
Expand Up @@ -41,7 +41,7 @@ class CJediSep: public CICAConverter
/** apply to features
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** getter for tau parameter
* @return tau vector
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/SOBI.cpp
Expand Up @@ -52,7 +52,7 @@ SGNDArray<float64_t> CSOBI::get_covs() const
return m_covs;
}

CFeatures* CSOBI::apply(CFeatures* features)
CFeatures* CSOBI::apply(CFeatures* features, bool inplace)
{
ASSERT(features);
SG_REF(features);
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/converter/ica/SOBI.h
Expand Up @@ -43,7 +43,7 @@ class CSOBI: public CICAConverter
/** apply to features
* @param features features to embed
*/
virtual CFeatures* apply(CFeatures* features);
virtual CFeatures* apply(CFeatures* features, bool inplace = true);

/** getter for tau parameter
* @return tau vector
Expand Down

0 comments on commit b47d428

Please sign in to comment.