50 #ifndef WHTREEPARTITION_H
51 #define WHTREEPARTITION_H
122 std::vector< float >* partitionValuesPointer,
123 std::vector< std::vector< size_t> >* patitionVectorPointer,
124 const bool verbose =
false );
133 std::vector< std::vector< size_t> >* patitionVectorPointer,
134 const bool verbose =
false );
144 std::vector< float > *partValPoint,
145 std::vector< std::vector< size_t> > *partVectorPoint );
154 const std::vector< float > &partitionValues,
155 const std::vector< std::vector< size_t> > &patitionVector );
184 const HT_CONDITION condition,
const bool excludeLeaves,
const size_t root )
const;
202 const HT_CONDITION condition,
const bool excludeLeaves,
const size_t root,
const size_t levelDepth )
const;
214 std::vector<nodeID_t>*
const partition,
215 const bool excludeLeaves,
217 const bool normalized )
const;
227 float partitionSmooth(
const float compValue, std::vector<nodeID_t>*
const partition,
const bool excludeLeaves,
const size_t root )
const;
271 float evalSSindex(
const std::vector<size_t> &partition )
const;
278 float evalSSindex(
const std::vector<nodeID_t> &partition )
const;
346 std::vector< std::vector< dist_t > >
getICDmatrix(
const std::vector<size_t> &oldPartition,
347 size_t branchPos = 0,
348 std::vector<size_t> branch = std::vector<size_t>(),
349 std::vector< std::vector< dist_t > > oldMatrix = std::vector< std::vector< dist_t > >() );
357 float evalPartInterDist(
const std::vector<size_t> &partition,
const std::vector< std::vector < dist_t > > &icdMatrix )
const;
365 float evalPartInterDistWeighted(
const std::vector<size_t> &partition,
const std::vector< std::vector < dist_t > > &icdMatrix )
const;
this class operates over the class WHtree to extract partitions and analyze partition quality it may ...
std::pair< float, float > evalPartClustSizeDiff(const std::vector< size_t > &partition) const
Evaluate partition cluster size difference (using only non-leaf node ID)
void writePartitionSet(std::string partFileName, const std::vector< float > &partitionValues, const std::vector< std::vector< size_t > > &patitionVector)
write a set of partitions and their quality values to a text file
WHtreePartition(WHtree *const tree)
Constructor.
float evalSSindex(const std::vector< size_t > &partition) const
Evaluate spread-separation index for selected partition (using only non-leaf node ID)
float evalPartInterDist(const std::vector< size_t > &partition, const std::vector< std::vector< dist_t > > &icdMatrix) const
Evaluate full inter cluster distance factor for selected partition (DEPRECATED)
void scanOptimalPartitions(const size_t levelDepth, std::vector< float > *partitionValuesPointer, std::vector< std::vector< size_t > > *patitionVectorPointer, const bool verbose=false)
Obtain the partition quality values for the optimized (inter vs weighted intra cluster distance) part...
size_t filterMaxPartitions(const unsigned int filterRadius, std::vector< float > *partValPoint, std::vector< std::vector< size_t > > *partVectorPoint)
Filter a set of partitions across granularity levels in orther to keep only local maxima within a cer...
float evalPartOptimal(const std::vector< size_t > &partition) const
Evaluate partition quality: spread-separation index (using only non-leaf node ID)
float evalPartIntraDist(const std::vector< size_t > &partition) const
Evaluate intra cluster distance factor for selected partition (using only non-leaf node ID)
float evalPartIntraDistWeighted(const std::vector< size_t > &partition) const
Evaluate weighted intra cluster distance factor for selected partition (using only non-leaf node ID)
std::vector< std::vector< dist_t > > getICDmatrix(const std::vector< size_t > &oldPartition, size_t branchPos=0, std::vector< size_t > branch=std::vector< size_t >(), std::vector< std::vector< dist_t > > oldMatrix=std::vector< std::vector< dist_t > >())
Obtain pairwise intercluster distance matrix for the selected partition, or derive new icd matrix fro...
float evalPartInterDistWeighted(const std::vector< size_t > &partition, const std::vector< std::vector< dist_t > > &icdMatrix) const
Evaluate full weighted inter cluster distance factor for selected partition (DEPRECATED)
float partitionClassic(float compValue, std::vector< nodeID_t > *const partition, const HT_PARTMODE mode, const HT_CONDITION condition, const bool excludeLeaves, const size_t root) const
Gets a classic partition for the tree (those where clusters are further subdivided until a condition ...
void level2granularity(std::vector< nodeID_t > *partition) const
obtain the partition corresponding to the second lowest level of granularity of a tree (using full bo...
float evalPartBranchDistWeighted(const std::vector< size_t > &partition) const
Evaluate approximated weighted inter cluster distance factor for selected partition (using only non-l...
float partitionSharp(const float compValue, std::vector< nodeID_t > *const partition, const bool excludeLeaves, const size_t root, const bool normalized) const
Finds clusters with sharp boundaries (long branches) the tree.
float evalPartBranchDist(const std::vector< size_t > &partition) const
Evaluate approximated inter cluster distance factor for selected partition (using only non-leaf node ...
WHtree & m_tree
tree object
float partitionOptimized(float compValue, std::vector< nodeID_t > *const partition, const HT_PARTMODE2 mode, const HT_CONDITION condition, const bool excludeLeaves, const size_t root, const size_t levelDepth) const
Gets an optimized partition for the tree (those where a partition characteristic must be cosnidered f...
float partitionSmooth(const float compValue, std::vector< nodeID_t > *const partition, const bool excludeLeaves, const size_t root) const
Finds regions without sharp inner boundaries the tree.
~WHtreePartition()
Destructor.
void scanHozPartitions(std::vector< float > *partitionValuesPointer, std::vector< std::vector< size_t > > *patitionVectorPointer, const bool verbose=false)
Obtain the partition quality values for the classic partitions at each granulairty of the tree.
this class implements a hierarchical tree and provides functions for creation, partitioning,...
implements a compare operator for clusters, depending on custom value of the cluster