Phylogeny Clustering: private API

PortfolioOptimisers.HClE_HClType
const HClE_HCl = Union{<:ClustersEstimator{<:Any, <:Any,
                                           <:AbstractHierarchicalClusteringAlgorithm,
                                           <:Any},
                       <:Clusters{<:Clustering.Hclust, <:Any, <:Any, <:Any},
                       <:NetworkClustersEstimator{<:Any,
                                              <:AbstractHierarchicalClusteringAlgorithm}}

Alias for a hierarchical clustering estimator or result.

Matches either a ClustersEstimator parameterised with a hierarchical clustering algorithm, or a Clusters result wrapping a Clustering.Hclust. Used internally for dispatch in hierarchical clustering workflows.

Related

source
PortfolioOptimisers._clusteriseMethod
_clusterise(
    alg::HClustAlgorithm,
    onc::AbstractOptimalNumberClustersEstimator,
    S::AbstractMatrix{<:Union{var"#s136", var"#s53"} where {var"#s136"<:Number, var"#s53"<:AbstractJuMPScalar}},
    D::AbstractMatrix{<:Union{var"#s136", var"#s53"} where {var"#s136"<:Number, var"#s53"<:AbstractJuMPScalar}},
    P::AbstractMatrix{<:Union{var"#s136", var"#s53"} where {var"#s136"<:Number, var"#s53"<:AbstractJuMPScalar}};
    branchorder
) -> Clusters{Clustering.Hclust{T}, var"#s185", var"#s1851", <:AbstractMatrix{var"#s137"}, <:Integer} where {T<:Real, var"#s137"<:(Union{var"#s136", var"#s53"} where {var"#s136"<:Number, var"#s53"<:AbstractJuMPScalar}), var"#s185"<:AbstractMatrix{var"#s137"}, var"#s137"<:(Union{var"#s136", var"#s53"} where {var"#s136"<:Number, var"#s53"<:AbstractJuMPScalar}), var"#s1851"<:AbstractMatrix{var"#s137"}, var"#s137"<:(Union{var"#s136", var"#s53"} where {var"#s136"<:Number, var"#s53"<:AbstractJuMPScalar})}

Internal dispatch helper for constructing a Clusters result within a network-based clustering workflow.

Selects the appropriate clustering routine based on alg, determines the optimal number of clusters, and returns a Clusters result encapsulating all relevant outputs.

Algorithm

  1. Cluster P, through the branch that alg selects, giving res.

  2. Select the number of clusters k with optimal_number_clusters over onc, res and P. The third branch holds k from step 1 already.

  3. Assemble the Clusters result from res, S, D, P and k.

Arguments

  • alg: Clustering algorithm.

    • alg::HClustAlgorithm: Applies hierarchical clustering via Clustering.hclust on the pseudo-distance matrix P.
    • alg::DBHT: Applies Direct Bubble Hierarchical Tree clustering via DBHTs on P and S.
    • alg::AbstractNonHierarchicalClusteringAlgorithm: Applies non-hierarchical clustering via optimal_number_clusters on P.
  • onc: Optimal number of clusters estimator.

  • S: Similarity matrix.

  • D: Distance matrix.

  • P::MatNum: Symmetric pseudo-distance matrix derived from the network or similarity structure.

  • branchorder: Branch ordering strategy for hierarchical clustering.

Returns

  • clr::Clusters: Clustering result containing the clustering object, similarity matrix, distance matrix, pseudo-distance matrix, and optimal number of clusters.

Related

source