Skip to content

Commit

Permalink
Add class AbstractFeatureVector.
Browse files Browse the repository at this point in the history
  • Loading branch information
michael-rapp committed Sep 19, 2023
1 parent 60a3cce commit 5578af0
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* @author Michael Rapp ([email protected])
*/
#pragma once

#include "mlrl/common/data/vector_dok_binary.hpp"
#include "mlrl/common/input/feature_vector.hpp"

#include <memory>

/**
* An abstract base class for all feature vectors that store the values of training examples for a certain feature. It
* allows to keep track of the indices of examples with missing feature values.
*/
class AbstractFeatureVector : public IFeatureVector {
private:

BinaryDokVector missingIndices_;

public:

virtual ~AbstractFeatureVector() override {};

/**
* An iterator that provides read-only access to the indices of examples with missing feature values.
*/
typedef BinaryDokVector::index_const_iterator missing_index_const_iterator;

/**
* Returns a `missing_index_const_iterator` to the beginning of the indices of examples with missing feature
* values.
*
* @return A `missing_index_const_iterator` to the beginning
*/
missing_index_const_iterator missing_indices_cbegin() const;

/**
* Returns a `missing_index_const_iterator` to the end of the indices of examples with missing feature values.
*
* @return A `missing_index_const_iterator` to the end
*/
missing_index_const_iterator missing_indices_cend() const;

/**
* Sets whether the example at a specific index is missing a feature value or not.
*
* @param index The index of the example
* @param missing True, if the example at the given index is missing a feature value, false otherwise
*/
void setMissing(uint32 index, bool missing);

/**
* Returns whether the example at a specific index is missing a feature value or not.
*
* @param index The index of the example
* @return True, if the example at the given index is missing a feature value, false otherwise
*/
bool isMissing(uint32 index) const;
};
1 change: 1 addition & 0 deletions cpp/subprojects/common/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ source_files = [
'src/mlrl/common/input/feature_type_numerical.cpp',
'src/mlrl/common/input/feature_type_ordinal.cpp',
'src/mlrl/common/input/feature_vector.cpp',
'src/mlrl/common/input/feature_vector_common.cpp',
'src/mlrl/common/input/label_matrix_c_contiguous.cpp',
'src/mlrl/common/input/label_matrix_csc.cpp',
'src/mlrl/common/input/label_matrix_csr.cpp',
Expand Down
Empty file.

0 comments on commit 5578af0

Please sign in to comment.