ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation. |
The PartitionMaxDen_type
class.
More...
Public Member Functions | |
procedure, pass | get => getPartitionMaxDen |
procedure, pass | write => writePartitionMaxDen |
constructPartitionMaxDen | |
Public Member Functions inherited from Partition_mod::Partition_type | |
procedure(getPartition_proc), deferred | get |
procedure(write_proc), deferred | write |
Public Attributes | |
logical(LK) | scaleOptimizationEnabled |
See the interface of constructPartition(). More... | |
logical(LK) | shapeOptimizationEnabled |
See the interface of constructPartition(). More... | |
logical(LK) | shapeAdaptationEnabled |
See the interface of constructPartition(). More... | |
logical(LK) | optimizationEnabled |
A logical variable indicating whether either scale or shape optimization is enabled. More... | |
real(RK), dimension(:), allocatable | LogLikeFitness |
An array of size (nemax) indicating the likelihood of subclustering (0<<1 if successful, else 1<<2 if failed), enlargement (if < 0), being warranted. If further partitioning is warranted but fails, the likelihood will be negative. More... | |
type(ParPropTryDen_type), dimension(:), allocatable | Try |
An array of size (0:nemax) containing the partition tries. More... | |
Public Attributes inherited from Partition_mod::Partition_type | |
integer(IK) | nd |
integer(IK) | np |
See the interface of constructPartition(). More... | |
integer(IK) | nc |
integer(IK) | nt |
See the interface of constructPartition(). More... | |
integer(IK) | nemax |
See the interface of constructPartition(). More... | |
integer(IK) | minSize |
See the interface of constructPartition(). More... | |
integer(IK) | kmeansNumFailMax |
See the interface of constructPartition(). More... | |
integer(IK) | numRecursiveCall |
The total number of recursive calls to the partitioning algorithm. More... | |
integer(IK) | kmeansNumRecursionMax |
See the interface of constructPartition(). More... | |
integer(IK) | convergenceFailureCount |
The number of times the partitioning algorithm has failed to converge. More... | |
integer(IK) | kvolumeNumRecursionMax |
See the interface of constructPartition(). More... | |
logical(LK) | biasCorrectionEnabled |
See the interface of constructPartition(). More... | |
logical(LK) | mahalSqWeightEnabled |
A logical variable indicating whether if the input mahalSqWeight is nonzero. More... | |
logical(LK) | stanEnabled |
See the interface of constructPartition(). More... | |
real(RK) | nplog |
The natural logarithm of np , the initial number of points. More... | |
real(RK) | kmeansRelTol |
See the interface of constructPartition(). More... | |
real(RK) | logExpansion |
See the interface of constructPartition(). More... | |
real(RK) | logShrinkage |
See the interface of constructPartition(). More... | |
real(RK) | pointLogVolNormed |
The estimated volume of a single point based on the input value of parentLogVolNormed . More... | |
real(RK) | parentLogVolNormed |
See the interface of constructPartition(). More... | |
real(RK) | mahalSqWeightExponent |
See the interface of constructPartition(). More... | |
real(RK), dimension(:), allocatable | BiasCorrectionScaleFactorSq |
The empirical corrections to the scale factors squared for different cluster sizes. More... | |
integer(IK), dimension(:), allocatable | PointIndex |
An array of size (np) of indices such that the input Point(1:nd,Index(ip)) is saved at the output Point(1:nd,ip) . More... | |
type(Err_type) | Err |
An object of class Err_type containing information about error occurrence. More... | |
Public Attributes inherited from Partition_mod::PartitionBase_type | |
integer(IK) | ne |
The predicted optimal number of clusters identified in the input data. More... | |
integer(IK), dimension(:,:), allocatable | Final |
An array of size (2,nemax) representing the (it,ic) indices of terminal partitions in Try component. More... | |
real(RK), dimension(:), allocatable | VolNormedCDF |
The normalized cumulative volumes of the final partitions (to be used for selecting partitions uniformly randomly). More... | |
Public Attributes inherited from Partition_mod::BaseProp_type | |
integer(IK), dimension(:), allocatable | Size |
An array of size (nemax) representing the sizes of the corresponding bounding ellipsoids. More... | |
integer(IK), dimension(:), allocatable | CumSumSize |
An array of size (0:nemax) containing the Cumulative sum of the array Size() . More... | |
integer(IK), dimension(:), allocatable | Membership |
An array of size (np) representing the bounding-ellipsoid membership IDs of the corresponding data points. More... | |
integer(IK), dimension(:), allocatable | EffectiveSize |
An array of size (nemax) indicating the likelihood of subclustering (0<<1 if successful, else 1<<2 if failed), enlargement (if < 0), being warranted. If further partitioning is warranted but fails, the likelihood will be negative. More... | |
real(RK), dimension(:), allocatable | LogVolNormed |
An array of size (nemax) representing the log-volumes of the corresponding bounding ellipsoids. More... | |
real(RK), dimension(:,:,:), allocatable | ChoLowCovUpp |
An array of size (nd,nd,nemax) representing the Cholesky lower triangle, diagonal, and covariance matrices of the bounding ellipsoids. More... | |
real(RK), dimension(:,:,:), allocatable | InvCovMat |
An array of size (nd,nd,nemax) representing the full symmetric inverse covariance matrices of the bounding ellipsoids. More... | |
real(RK), dimension(:,:), allocatable | ChoDia |
An array of size (nd,nemax) representing the Cholesky lower triangle, diagonal, and covariance matrices of the bounding ellipsoids. More... | |
real(RK), dimension(:,:), allocatable | Center |
An array of size (nd,nemax) representing the centers of the bounding ellipsoids. More... | |
The PartitionMaxDen_type
class.
This function can serve as the constructor for PartitionMaxDen_type
while also performing the partitioning for the first time. Construct a hierarchical partitioning of the input Point
using a combination of Kmeans, Kvolume, and density maximization algorithms.
[in] | Point | : An array of size (nd = #dimensions, np = #observations) containing the input set of points to partition. |
[in] | parentLogVolNormed | : The logarithm of the volume of the input set of points normalized to the volume of the unit nd -ball. |
[in] | nc | : The number of clusters at each level of partitioning (optional, default = 2 ). |
[in] | nt | : The number of Kmeans clustering tries before choosing the optimal clustering among all (optional, default = 1 ). |
[in] | nemax | : The maximum number of partitions to be expected or identified in the input Point (optional, default = max(nc, 1 + np / (nd + 1)) ). |
[in] | minSize | : The minimum allowed size of a partition, that is, the minimum allowed number of points in a partition (optional, default = 0 ). |
[in] | stanEnabled | : A logical value, indicating weather Point should be standardized prior to each Kmeans clustering (optional, default = .true. ). |
[in] | trimEnabled | : A logical value, indicating weather all allocatable components have been trimmed to the minimum size (optional, default = .false. ). |
[in] | kmeansRelTol | : The relative tolerance below which the Kmeans clustering is assumed to have converged (optional, default = 1.e-4 ). |
[in] | logExpansion | : The factor by which the expected volumes of the bounding ellipsoids are enlarged before any comparisons are made for further sub-partitioning (optional, default = 0. ). |
[in] | logShrinkage | : The logarithm of the factor by which the sum of the volumes of the children bounds must be smaller than their parents to warrant further sub-partitioning (optional, default = 0. ). |
[in] | mahalSqWeightExponent | : The exponent with which the density of the partitions are exponentiated to be used as the Mahalanobis distance weights (optional, default = 0. ). |
[in] | kmeansNumFailMax | : The maximum number of times Kmeans clustering is allowed to fail (optional, default = 10 ). |
[in] | kmeansNumRecursionMax | : The maximum number of times Kmeans clustering is allowed to refine the cluster centers via the algorithm of Lloyd (optional, default = 300 ). |
[in] | kvolumeNumRecursionMax | : The maximum number of times Kvolume algorithm is run to minimize the partition volumes at a given partitioning level (optional, default = 3 ). |
Point
will be reordered.trimEnabled = .false.
, only the first 1:ne
elements of all allocatable
arrays contain meaningful information. As such, the rest of the trailing elements must be properly ignored when using the allocatable Partition components. For example, upon exit, only PartitionLogVolNormed(1:Partitionne)
contain meaningful information.trimEnabled = .true.
, all allocatable
arrays will be trimmed from size nemax
to the size ne
. In such a case, calling the method Partitiontun()
after constructing the Partition
object for the first time will likely lead to segmentation fault error.parentLogVolNormed
, both parentLogVolNormed
and pointLogVolNormed
will (must) be set to NEGBIG_RK
.Definition at line 201 of file Partition_mod.F90.
Partition_mod::PartitionMaxDen_type::constructPartitionMaxDen |
procedure, pass Partition_mod::PartitionMaxDen_type::get |
Definition at line 209 of file Partition_mod.F90.
procedure, pass Partition_mod::PartitionMaxDen_type::write |
Definition at line 210 of file Partition_mod.F90.
real(RK), dimension(:), allocatable Partition_mod::PartitionMaxDen_type::LogLikeFitness |
An array of size (nemax)
indicating the likelihood of subclustering (0<<1
if successful, else 1<<2
if failed), enlargement (if < 0), being warranted. If further partitioning is warranted but fails, the likelihood will be negative.
Definition at line 206 of file Partition_mod.F90.
logical(LK) Partition_mod::PartitionMaxDen_type::optimizationEnabled |
A logical variable indicating whether either scale or shape optimization is enabled.
Definition at line 205 of file Partition_mod.F90.
logical(LK) Partition_mod::PartitionMaxDen_type::scaleOptimizationEnabled |
See the interface of constructPartition().
Definition at line 202 of file Partition_mod.F90.
logical(LK) Partition_mod::PartitionMaxDen_type::shapeAdaptationEnabled |
See the interface of constructPartition().
Definition at line 204 of file Partition_mod.F90.
logical(LK) Partition_mod::PartitionMaxDen_type::shapeOptimizationEnabled |
See the interface of constructPartition().
Definition at line 203 of file Partition_mod.F90.
type(ParPropTryDen_type), dimension(:), allocatable Partition_mod::PartitionMaxDen_type::Try |
An array of size (0:nemax)
containing the partition tries.
Definition at line 207 of file Partition_mod.F90.