shark::CircleInSquare Class Reference

#include <shark/Data/DataDistribution.h>

+ Inheritance diagram for shark::CircleInSquare:

Public Member Functions

 CircleInSquare (unsigned int dimensions=2, double noiselevel=0.0, bool class_prob_equal=false)
 
void setLimits (double lower_limit, double upper_limit, double inner_radius, double outer_radius)
 allow for arbitrary box limits
 
void draw (RealVector &input, unsigned int &label) const
 Generates a single pair of input and label.
 
- Public Member Functions inherited from shark::LabeledDataDistribution< RealVector, unsigned int >
virtual ~LabeledDataDistribution ()
 Virtual destructor.
 
std::pair< RealVector, unsigned int > operator() ()
 
LabeledData< RealVector, unsigned int > generateDataset (std::size_t size, std::size_t maximumBatchSize) const
 Generates a dataset with samples from from the distribution.
 
LabeledData< RealVector, unsigned int > generateDataset (std::size_t size) const
 Generates a data set with samples from from the distribution.
 

Protected Attributes

unsigned int m_dimensions
 
double m_noiselevel
 
double m_lowerLimit
 
double m_upperLimit
 
double m_centerpoint
 
double m_inner_radius2
 
double m_outer_radius2
 
bool m_equal_class_prob
 if true, the probability to belong to either class is equal. if false, it is uniform over the cube.
 

Detailed Description

This class randomly fills a (hyper-)square with data points. Points which happen to be within a (hyper-)circle centered in the square of a certain radius get a positive class label. Noise on the labels can be added.

Definition at line 253 of file DataDistribution.h.

Constructor & Destructor Documentation

◆ CircleInSquare()

shark::CircleInSquare::CircleInSquare ( unsigned int  dimensions = 2,
double  noiselevel = 0.0,
bool  class_prob_equal = false 
)
inline

Definition at line 256 of file DataDistribution.h.

Member Function Documentation

◆ draw()

void shark::CircleInSquare::draw ( RealVector &  input,
unsigned int &  label 
) const
inlinevirtual

Generates a single pair of input and label.

Parameters
inputthe generated input
labelthe generated label

Implements shark::LabeledDataDistribution< RealVector, unsigned int >.

Definition at line 280 of file DataDistribution.h.

References shark::random::coinToss(), shark::random::globalRng, m_centerpoint, m_dimensions, m_equal_class_prob, m_inner_radius2, m_lowerLimit, m_noiselevel, m_outer_radius2, m_upperLimit, and shark::random::uni().

◆ setLimits()

void shark::CircleInSquare::setLimits ( double  lower_limit,
double  upper_limit,
double  inner_radius,
double  outer_radius 
)
inline

allow for arbitrary box limits

Definition at line 268 of file DataDistribution.h.

References m_centerpoint, m_inner_radius2, m_lowerLimit, m_outer_radius2, m_upperLimit, and RANGE_CHECK.

Member Data Documentation

◆ m_centerpoint

double shark::CircleInSquare::m_centerpoint
protected

Definition at line 331 of file DataDistribution.h.

Referenced by draw(), and setLimits().

◆ m_dimensions

unsigned int shark::CircleInSquare::m_dimensions
protected

Definition at line 327 of file DataDistribution.h.

Referenced by draw().

◆ m_equal_class_prob

bool shark::CircleInSquare::m_equal_class_prob
protected

if true, the probability to belong to either class is equal. if false, it is uniform over the cube.

Definition at line 334 of file DataDistribution.h.

Referenced by draw().

◆ m_inner_radius2

double shark::CircleInSquare::m_inner_radius2
protected

Definition at line 332 of file DataDistribution.h.

Referenced by draw(), and setLimits().

◆ m_lowerLimit

double shark::CircleInSquare::m_lowerLimit
protected

Definition at line 329 of file DataDistribution.h.

Referenced by draw(), and setLimits().

◆ m_noiselevel

double shark::CircleInSquare::m_noiselevel
protected

Definition at line 328 of file DataDistribution.h.

Referenced by draw().

◆ m_outer_radius2

double shark::CircleInSquare::m_outer_radius2
protected

Definition at line 333 of file DataDistribution.h.

Referenced by draw(), and setLimits().

◆ m_upperLimit

double shark::CircleInSquare::m_upperLimit
protected

Definition at line 330 of file DataDistribution.h.

Referenced by draw(), and setLimits().


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