DiSMEC++
dismec::MultiLabelData Class Reference

#include <data.h>

Inheritance diagram for dismec::MultiLabelData:
dismec::DatasetBase

Public Member Functions

 MultiLabelData (SparseFeatures x, std::vector< std::vector< long >> y)
 
 MultiLabelData (DenseFeatures x, std::vector< std::vector< long >> y)
 
long num_labels () const noexcept override
 
void get_labels (label_id_t label, Eigen::Ref< BinaryLabelVector > target) const override
 
long num_positives (label_id_t id) const override
 
long num_negatives (label_id_t id) const override
 
const std::vector< long > & get_label_instances (label_id_t label) const
 
void select_labels (label_id_t start, label_id_t end)
 
const std::vector< std::vector< long > > & all_labels () const
 
- Public Member Functions inherited from dismec::DatasetBase
virtual ~DatasetBase ()=default
 
 DatasetBase (const DatasetBase &)=default
 
 DatasetBase (DatasetBase &&)=default
 
DatasetBaseoperator= (DatasetBase &&)=default
 
DatasetBaseoperator= (const DatasetBase &)=default
 
std::shared_ptr< const GenericFeatureMatrixget_features () const
 get a shared pointer to the (immutable) feature data More...
 
std::shared_ptr< GenericFeatureMatrixedit_features ()
 get a shared pointer to mutable feature data. Use with care. More...
 
long num_features () const noexcept
 Get the total number of features, i.e. the number of columns in the feature matrix. More...
 
long num_examples () const noexcept
 Get the total number of instances, i.e. the number of rows in the feature matrix. More...
 
std::shared_ptr< const BinaryLabelVectorget_labels (label_id_t id) const
 

Private Attributes

std::vector< std::vector< long > > m_Labels
 

Additional Inherited Members

- Protected Member Functions inherited from dismec::DatasetBase
 DatasetBase (SparseFeatures x)
 
 DatasetBase (DenseFeatures x)
 
- Protected Attributes inherited from dismec::DatasetBase
std::shared_ptr< GenericFeatureMatrixm_Features
 

Detailed Description

Definition at line 86 of file data.h.

Constructor & Destructor Documentation

◆ MultiLabelData() [1/2]

dismec::MultiLabelData::MultiLabelData ( SparseFeatures  x,
std::vector< std::vector< long >>  y 
)
inline

Definition at line 88 of file data.h.

◆ MultiLabelData() [2/2]

dismec::MultiLabelData::MultiLabelData ( DenseFeatures  x,
std::vector< std::vector< long >>  y 
)
inline

Definition at line 93 of file data.h.

Member Function Documentation

◆ all_labels()

const std::vector<std::vector<long> >& dismec::MultiLabelData::all_labels ( ) const
inline

Definition at line 108 of file data.h.

◆ get_label_instances()

const std::vector< long > & MultiLabelData::get_label_instances ( label_id_t  label) const

Definition at line 72 of file data.cpp.

References m_Labels, and dismec::opaque_int_type< Tag, T >::to_index().

Referenced by dismec::io::save_xmc_dataset().

◆ get_labels()

void MultiLabelData::get_labels ( label_id_t  id,
Eigen::Ref< BinaryLabelVector target 
) const
overridevirtual

Gets the label vector (encoded as dense vector with elements from {-1, 1}) for the id'th class. The weights will be put into the given target buffer. Throws std::out_of_bounds, if id is not in [0, num_labels()).

Implements dismec::DatasetBase.

Definition at line 63 of file data.cpp.

References m_Labels, and dismec::opaque_int_type< Tag, T >::to_index().

◆ num_labels()

long MultiLabelData::num_labels ( ) const
overridevirtualnoexcept

Gets the total number of different labels in the dataset. TODO call this num_classes instead?

Implements dismec::DatasetBase.

Definition at line 59 of file data.cpp.

References m_Labels, and dismec::ssize().

Referenced by dismec::io::save_xmc_dataset(), and select_labels().

◆ num_negatives()

long MultiLabelData::num_negatives ( label_id_t  id) const
overridevirtual

Gets the number of instances where label id is absent (=-1) Throws std::out_of_bounds, if id is not in [0, num_labels()).

Reimplemented from dismec::DatasetBase.

Definition at line 80 of file data.cpp.

References m_Labels, dismec::DatasetBase::num_examples(), and dismec::ssize().

◆ num_positives()

long MultiLabelData::num_positives ( label_id_t  id) const
overridevirtual

Gets the number of instances where label id is present (=+1) Throws std::out_of_bounds, if id is not in [0, num_labels()).

Reimplemented from dismec::DatasetBase.

Definition at line 76 of file data.cpp.

References m_Labels, and dismec::ssize().

◆ select_labels()

void MultiLabelData::select_labels ( label_id_t  start,
label_id_t  end 
)

Definition at line 84 of file data.cpp.

References m_Labels, num_labels(), and dismec::opaque_int_type< Tag, T >::to_index().

Member Data Documentation

◆ m_Labels

std::vector<std::vector<long> > dismec::MultiLabelData::m_Labels
private

The documentation for this class was generated from the following files: