holgerteichgraeber / TimeSeriesClustering.jl

Julia implementation of unsupervised learning methods for time series datasets. It provides functionality for clustering and aggregating, detecting motifs, and quantifying similarity between time series datasets.
MIT License
82 stars 22 forks source link

ClustConfig? #125

Closed YoungFaithful closed 4 years ago

YoungFaithful commented 4 years ago

What do you think about ClustConfig like:

"""
        ClustConfig{method::String
        representation::String
        n_clust::Number
        n_init::Number
        n_seg::Number
        iterations::Number
        norm_op::String
        norm_scope::String
        attribute_weights::Dict{String,Float64}}
Collection of cluster configuration
"""
struct ClustConfig
        method::String
        representation::String
        n_clust::Number
        n_init::Number
        n_seg::Number
        iterations::Number
        norm_op::String
        norm_scope::String
        attribute_weights::Dict{String,Float64}
end
holgerteichgraeber commented 4 years ago

I am not entirely convinced. I see the advantage of explicitly having defined what the configs are. However, it also limits the scope of the package. As soon as someone has a different application, wants to do something slightly different, this results in code changes in many places (the struct, the constructors of the struct, the code that calls these constructors). That would make it challenging to build additionally functionality on top of the existing one. Happy to chat about it on the phone sometime. I've been thinking about this before and every time, have wondered whether this would actually add more complexity than do good and simplification.