CSparseFeatures< ST >模板类参考


详细描述

template<class ST>
class shogun::CSparseFeatures< ST >

Template class SparseFeatures implements sparse matrices.

Features are an array of TSparse, sorted w.r.t. vec_index (increasing) and withing same vec_index w.r.t. feat_index (increasing);

Sparse feature vectors can be accessed via get_sparse_feature_vector() and should be freed (this operation is a NOP in most cases) via free_sparse_feature_vector().

As this is a template class it can directly be used for different data types like sparse matrices of real valued, integer, byte etc type.

在文件SparseFeatures.h74行定义。

继承图,类CSparseFeatures< ST >
Inheritance graph
[图例]

所有成员的列表。

公有成员

 CSparseFeatures (int32_t size=0)
 CSparseFeatures (TSparse< ST > *src, int32_t num_feat, int32_t num_vec, bool copy=false)
 CSparseFeatures (ST *src, int32_t num_feat, int32_t num_vec)
 CSparseFeatures (const CSparseFeatures &orig)
 CSparseFeatures (char *fname)
virtual ~CSparseFeatures ()
void free_sparse_feature_matrix ()
void free_sparse_features ()
virtual CFeaturesduplicate () const
ST get_feature (int32_t num, int32_t index)
ST * get_full_feature_vector (int32_t num, int32_t &len)
void get_full_feature_vector (ST **dst, int32_t *len, int32_t num)
virtual int32_t get_nnz_features_for_vector (int32_t num)
TSparseEntry< ST > * get_sparse_feature_vector (int32_t num, int32_t &len, bool &vfree)
ST sparse_dot (ST alpha, TSparseEntry< ST > *avec, int32_t alen, TSparseEntry< ST > *bvec, int32_t blen)
ST dense_dot (ST alpha, int32_t num, ST *vec, int32_t dim, ST b)
void add_to_dense_vec (float64_t alpha, int32_t num, float64_t *vec, int32_t dim, bool abs_val=false)
void free_sparse_feature_vector (TSparseEntry< ST > *feat_vec, int32_t num, bool free)
TSparse< ST > * get_sparse_feature_matrix (int32_t &num_feat, int32_t &num_vec)
void get_sparse_feature_matrix (TSparse< ST > **dst, int32_t *num_feat, int32_t *num_vec, int64_t *nnz)
void clean_tsparse (TSparse< ST > *sfm, int32_t num_vec)
TSparse< ST > * get_transposed (int32_t &num_feat, int32_t &num_vec)
virtual void set_sparse_feature_matrix (TSparse< ST > *src, int32_t num_feat, int32_t num_vec)
ST * get_full_feature_matrix (int32_t &num_feat, int32_t &num_vec)
void get_full_feature_matrix (ST **dst, int32_t *num_feat, int32_t *num_vec)
virtual bool set_full_feature_matrix (ST *src, int32_t num_feat, int32_t num_vec)
virtual bool apply_preproc (bool force_preprocessing=false)
virtual int32_t get_size ()
bool obtain_from_simple (CSimpleFeatures< ST > *sf)
virtual int32_t get_num_vectors ()
int32_t get_num_features ()
int32_t set_num_features (int32_t num)
virtual EFeatureClass get_feature_class ()
virtual EFeatureType get_feature_type ()
void free_feature_vector (TSparseEntry< ST > *feat_vec, int32_t num, bool free)
int64_t get_num_nonzero_entries ()
float64_tcompute_squared (float64_t *sq)
float64_t compute_squared_norm (CSparseFeatures< float64_t > *lhs, float64_t *sq_lhs, int32_t idx_a, CSparseFeatures< float64_t > *rhs, float64_t *sq_rhs, int32_t idx_b)
CLabelsload_svmlight_file (char *fname, bool do_sort_features=true)
void sort_features ()
bool write_svmlight_file (char *fname, CLabels *label)
virtual int32_t get_dim_feature_space ()
virtual float64_t dot (int32_t vec_idx1, int32_t vec_idx2)
virtual float64_t dense_dot (int32_t vec_idx1, const float64_t *vec2, int32_t vec2_len)
virtual const char * get_name () const
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()
template<>
EFeatureType get_feature_type ()

保护成员

virtual TSparseEntry< ST > * compute_sparse_feature_vector (int32_t num, int32_t &len, TSparseEntry< ST > *target=NULL)

保护属性

int32_t num_vectors
 total number of vectors
int32_t num_features
 total number of features
TSparse< ST > * sparse_feature_matrix
 array of sparse vectors of size num_vectors
CCache< TSparseEntry< ST > > * feature_cache

构造及析构函数文档

CSparseFeatures ( int32_t  size = 0  ) 

constructor

参数:
size cache size

在文件SparseFeatures.h81行定义。

CSparseFeatures ( TSparse< ST > *  src,
int32_t  num_feat,
int32_t  num_vec,
bool  copy = false 
)

convenience constructor that creates sparse features from the ones passed as argument

参数:
src dense feature matrix
num_feat number of features
num_vec number of vectors
copy true to copy feature matrix

在文件SparseFeatures.h94行定义。

CSparseFeatures ( ST *  src,
int32_t  num_feat,
int32_t  num_vec 
)

convenience constructor that creates sparse features from dense features

参数:
src dense feature matrix
num_feat number of features
num_vec number of vectors

在文件SparseFeatures.h120行定义。

CSparseFeatures ( const CSparseFeatures< ST > &  orig  ) 

copy constructor

在文件SparseFeatures.h128行定义。

CSparseFeatures ( char *  fname  ) 

constructor

参数:
fname filename to load features from

在文件SparseFeatures.h152行定义。

virtual ~CSparseFeatures (  )  [virtual]

在文件SparseFeatures.h157行定义。


成员函数文档

void add_to_dense_vec ( float64_t  alpha,
int32_t  num,
float64_t vec,
int32_t  dim,
bool  abs_val = false 
) [virtual]

add a sparse feature vector onto a dense one dense+=alpha*sparse

参数:
alpha scalar to multiply with
num index of feature vector
vec dense vector
dim length of the dense vector
abs_val if true, do dense+=alpha*abs(sparse)

实现了CDotFeatures

在文件SparseFeatures.h469行定义。

virtual bool apply_preproc ( bool  force_preprocessing = false  )  [virtual]

apply preprocessor

参数:
force_preprocessing if preprocssing shall be forced
返回:
if applying was successful

在文件SparseFeatures.h805行定义。

void clean_tsparse ( TSparse< ST > *  sfm,
int32_t  num_vec 
)

clean TSparse

参数:
sfm sparse feature matrix
num_vec number of vectors in matrix

在文件SparseFeatures.h547行定义。

virtual TSparseEntry<ST>* compute_sparse_feature_vector ( int32_t  num,
int32_t &  len,
TSparseEntry< ST > *  target = NULL 
) [protected, virtual]

compute feature vector for sample num if target is set the vector is written to target len is returned by reference

NOT IMPLEMENTED!

参数:
num num
len len
target target

在文件SparseFeatures.h1346行定义。

float64_t* compute_squared ( float64_t sq  ) 

compute a^2 on all feature vectors

参数:
sq the square for each vector is stored in here
返回:
the square for each vector

在文件SparseFeatures.h928行定义。

float64_t compute_squared_norm ( CSparseFeatures< float64_t > *  lhs,
float64_t sq_lhs,
int32_t  idx_a,
CSparseFeatures< float64_t > *  rhs,
float64_t sq_rhs,
int32_t  idx_b 
)

compute (a-b)^2 (== a^2+b^2+2ab) usually called by kernels'/distances' compute functions works on two feature vectors, although it is a member of a single feature: can either be called by lhs or rhs.

参数:
lhs left-hand side features
sq_lhs squared values of left-hand side
idx_a index of left-hand side's vector to compute
rhs right-hand side features
sq_rhs squared values of right-hand side
idx_b index of right-hand side's vector to compute

在文件SparseFeatures.h961行定义。

virtual float64_t dense_dot ( int32_t  vec_idx1,
const float64_t vec2,
int32_t  vec2_len 
) [virtual]

compute dot product between vector1 and a dense vector

参数:
vec_idx1 index of first vector
vec2 pointer to real valued vector
vec2_len length of real valued vector

实现了CDotFeatures

在文件SparseFeatures.h1311行定义。

ST dense_dot ( ST  alpha,
int32_t  num,
ST *  vec,
int32_t  dim,
ST  b 
)

compute the dot product between dense weights and a sparse feature vector alpha * sparse^T * w + b

参数:
alpha scalar to multiply with
num index of feature vector
vec dense vector to compute dot product with
dim length of the dense vector
b bias
返回:
dot product between dense weights and a sparse feature vector

在文件SparseFeatures.h440行定义。

virtual float64_t dot ( int32_t  vec_idx1,
int32_t  vec_idx2 
) [virtual]

compute dot product between vector1 and vector2, appointed by their indices

参数:
vec_idx1 index of first vector
vec_idx2 index of second vector

实现了CDotFeatures

在文件SparseFeatures.h1290行定义。

virtual CFeatures* duplicate (  )  const [virtual]

duplicate feature object

返回:
feature object

实现了CFeatures

在文件SparseFeatures.h187行定义。

void free_feature_vector ( TSparseEntry< ST > *  feat_vec,
int32_t  num,
bool  free 
)

free feature vector

参数:
feat_vec feature vector to free
num index of vector in cache
free if vector really should be deleted

在文件SparseFeatures.h901行定义。

void free_sparse_feature_matrix (  ) 

free sparse feature matrix

在文件SparseFeatures.h165行定义。

void free_sparse_feature_vector ( TSparseEntry< ST > *  feat_vec,
int32_t  num,
bool  free 
)

free sparse feature vector

参数:
feat_vec feature vector to free
num index of this vector in the cache
free if vector should be really deleted

在文件SparseFeatures.h501行定义。

void free_sparse_features (  ) 

free sparse feature matrix and cache

在文件SparseFeatures.h176行定义。

virtual int32_t get_dim_feature_space (  )  [virtual]

obtain the dimensionality of the feature space

(not mix this up with the dimensionality of the input space, usually obtained via get_num_features())

返回:
dimensionality

实现了CDotFeatures

在文件SparseFeatures.h1279行定义。

ST get_feature ( int32_t  num,
int32_t  index 
)

get a single feature

参数:
num number of feature vector to retrieve
index index of feature in this vector
返回:
sum of features that match dimension index and 0 if none is found

在文件SparseFeatures.h199行定义。

virtual EFeatureClass get_feature_class (  )  [virtual]

get feature class

返回:
feature class SPARSE

实现了CFeatures

在文件SparseFeatures.h887行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the LONGREAL feature can deal with

返回:
feature type LONGREAL

实现了CFeatures

在文件SparseFeatures.h1470行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the DREAL feature can deal with

返回:
feature type DREAL

实现了CFeatures

在文件SparseFeatures.h1461行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the SHORTREAL feature can deal with

返回:
feature type SHORTREAL

实现了CFeatures

在文件SparseFeatures.h1452行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the ULONG feature can deal with

返回:
feature type ULONG

实现了CFeatures

在文件SparseFeatures.h1443行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the LONG feature can deal with

返回:
feature type LONG

实现了CFeatures

在文件SparseFeatures.h1434行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the UINT feature can deal with

返回:
feature type UINT

实现了CFeatures

在文件SparseFeatures.h1425行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the INT feature can deal with

返回:
feature type INT

实现了CFeatures

在文件SparseFeatures.h1416行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the WORD feature can deal with

返回:
feature type WORD

实现了CFeatures

在文件SparseFeatures.h1407行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the SHORT feature can deal with

返回:
feature type SHORT

实现了CFeatures

在文件SparseFeatures.h1398行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the BYTE feature can deal with

返回:
feature type BYTE

实现了CFeatures

在文件SparseFeatures.h1389行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the CHAR feature can deal with

返回:
feature type CHAR

实现了CFeatures

在文件SparseFeatures.h1380行定义。

EFeatureType get_feature_type (  )  [virtual]

get feature type the BOOL feature can deal with

返回:
feature type BOOL

实现了CFeatures

在文件SparseFeatures.h1371行定义。

virtual EFeatureType get_feature_type (  )  [virtual]

get feature type

返回:
templated feature type

实现了CFeatures

void get_full_feature_matrix ( ST **  dst,
int32_t *  num_feat,
int32_t *  num_vec 
)

gets a copy of a full feature matrix (swig compatible) num_feat,num_vectors are returned by reference

参数:
dst full feature matrix
num_feat number of features in matrix
num_vec number of vectors in matrix

在文件SparseFeatures.h681行定义。

ST* get_full_feature_matrix ( int32_t &  num_feat,
int32_t &  num_vec 
)

gets a copy of a full feature matrix num_feat,num_vectors are returned by reference

参数:
num_feat number of features in matrix
num_vec number of vectors in matrix
返回:
full feature matrix

在文件SparseFeatures.h646行定义。

void get_full_feature_vector ( ST **  dst,
int32_t *  len,
int32_t  num 
)

get the fully expanded dense feature vector num

参数:
dst feature vector
len length is returned by reference
num index of feature vector

在文件SparseFeatures.h263行定义。

ST* get_full_feature_vector ( int32_t  num,
int32_t &  len 
)

converts a sparse feature vector into a dense one preprocessed compute_feature_vector caller cleans up

参数:
num index of feature vector
len length is returned by reference
返回:
dense feature vector

在文件SparseFeatures.h231行定义。

virtual const char* get_name (  )  const [virtual]
返回:
object name

实现了CSGObject

在文件SparseFeatures.h1333行定义。

virtual int32_t get_nnz_features_for_vector ( int32_t  num  )  [virtual]

get number of non-zero features in vector

参数:
num which vector
返回:
number of non-zero features in vector

实现了CDotFeatures

在文件SparseFeatures.h295行定义。

int32_t get_num_features (  ) 

get number of features

返回:
number of features

在文件SparseFeatures.h862行定义。

int64_t get_num_nonzero_entries (  ) 

get number of non-zero entries in sparse feature matrix

返回:
number of non-zero entries in sparse feature matrix

在文件SparseFeatures.h914行定义。

virtual int32_t get_num_vectors (  )  [virtual]

get number of feature vectors

返回:
number of feature vectors

实现了CFeatures

在文件SparseFeatures.h856行定义。

virtual int32_t get_size (  )  [virtual]

get memory footprint of one feature

返回:
memory footprint of one feature

实现了CFeatures

在文件SparseFeatures.h835行定义。

void get_sparse_feature_matrix ( TSparse< ST > **  dst,
int32_t *  num_feat,
int32_t *  num_vec,
int64_t *  nnz 
)

get the pointer to the sparse feature matrix (swig compatible) num_feat,num_vectors are returned by reference

参数:
dst feature matrix
num_feat number of features in matrix
num_vec number of vectors in matrix
nnz number of nonzero elements

在文件SparseFeatures.h533行定义。

TSparse<ST>* get_sparse_feature_matrix ( int32_t &  num_feat,
int32_t &  num_vec 
)

get the pointer to the sparse feature matrix num_feat,num_vectors are returned by reference

参数:
num_feat number of features in matrix
num_vec number of vectors in matrix
返回:
feature matrix

在文件SparseFeatures.h517行定义。

TSparseEntry<ST>* get_sparse_feature_vector ( int32_t  num,
int32_t &  len,
bool &  vfree 
)

get sparse feature vector for sample num from the matrix as it is if matrix is initialized, else return preprocessed compute_feature_vector

参数:
num index of feature vector
len number of sparse entries is returned by reference
vfree whether returned vector must be freed by caller via free_sparse_feature_vector
返回:
sparse feature vector

在文件SparseFeatures.h314行定义。

TSparse<ST>* get_transposed ( int32_t &  num_feat,
int32_t &  num_vec 
)

compute and return the transpose of the sparse feature matrix which will be prepocessed. num_feat, num_vectors are returned by reference caller has to clean up

参数:
num_feat number of features in matrix
num_vec number of vectors in matrix
返回:
transposed sparse feature matrix

在文件SparseFeatures.h567行定义。

CLabels* load_svmlight_file ( char *  fname,
bool  do_sort_features = true 
)

load features from file

参数:
fname filename to load from
do_sort_features if true features will be sorted to ensure they are in ascending order
返回:
label object with corresponding labels

在文件SparseFeatures.h1024行定义。

bool obtain_from_simple ( CSimpleFeatures< ST > *  sf  ) 

obtain sparse features from simple features

参数:
sf simple features
返回:
if obtaining was successful

在文件SparseFeatures.h842行定义。

virtual bool set_full_feature_matrix ( ST *  src,
int32_t  num_feat,
int32_t  num_vec 
) [virtual]

creates a sparse feature matrix from a full dense feature matrix necessary to set feature_matrix, num_features and num_vectors where num_features is the column offset, and columns are linear in memory see above for definition of sparse_feature_matrix

参数:
src full feature matrix
num_feat number of features in matrix
num_vec number of vectors in matrix

在文件SparseFeatures.h716行定义。

int32_t set_num_features ( int32_t  num  ) 

set number of features

Sometimes when loading sparse features not all possible dimensions are used. This may pose a problem to classifiers when being applied to higher dimensional test-data. This function allows to artificially explode the feature space

参数:
num the number of features, must be larger than the current number of features
返回:
previous number of features

在文件SparseFeatures.h875行定义。

virtual void set_sparse_feature_matrix ( TSparse< ST > *  src,
int32_t  num_feat,
int32_t  num_vec 
) [virtual]

set feature matrix necessary to set feature_matrix, num_features, num_vectors, where num_features is the column offset, and columns are linear in memory see below for definition of feature_matrix

参数:
src new sparse feature matrix
num_feat number of features in matrix
num_vec number of vectors in matrix

在文件SparseFeatures.h630行定义。

void sort_features (  ) 

ensure that features occur in ascending order, only call when no preprocessors are attached

在文件SparseFeatures.h1191行定义。

ST sparse_dot ( ST  alpha,
TSparseEntry< ST > *  avec,
int32_t  alen,
TSparseEntry< ST > *  bvec,
int32_t  blen 
)

compute the dot product between two sparse feature vectors alpha * vec^T * vec

参数:
alpha scalar to multiply with
avec first sparse feature vector
alen avec's length
bvec second sparse feature vector
blen bvec's length
返回:
dot product between the two sparse feature vectors

在文件SparseFeatures.h382行定义。

bool write_svmlight_file ( char *  fname,
CLabels label 
)

write features to file using svm light format

参数:
fname filename to write to
label Label object (number of labels must correspond to number of features)
返回:
true if successful

在文件SparseFeatures.h1239行定义。


成员数据文档

CCache< TSparseEntry<ST> >* feature_cache [protected]

feature cache

在文件SparseFeatures.h1364行定义。

int32_t num_features [protected]

total number of features

在文件SparseFeatures.h1358行定义。

int32_t num_vectors [protected]

total number of vectors

在文件SparseFeatures.h1355行定义。

TSparse<ST>* sparse_feature_matrix [protected]

array of sparse vectors of size num_vectors

在文件SparseFeatures.h1361行定义。


该类的文档由以下文件生成:

SHOGUN Machine Learning Toolbox - Documentation