-
Notifications
You must be signed in to change notification settings - Fork 98
Closed
Description
Trying a simple custom metric (which is just euclidian distan)
struct MyMetric <: SemiMetric end
function (::MyMetric)(a::AbstractVector, b::AbstractVector)
sum(abs.(a - b))
end
R = kmeans(vecs, clusters_num; maxiter=400, display=:iter, distance=MyMetric())
I'm getting
ERROR: MethodError: no method matching (::MyMetric)(::Float64, ::Float64)
Stacktrace:
[1] result_type(f::MyMetric, a::Type, b::Type)
@ Distances ~/.julia/packages/Distances/yhVAl/src/generic.jl:36
[2] result_type(dist::MyMetric, a::Matrix{Float64}, b::LinearAlgebra.Adjoint{Float64, Matrix{Float64}})
@ Distances ~/.julia/packages/Distances/yhVAl/src/generic.jl:35
[3] pairwise(metric::MyMetric, a::Matrix{Float64}, b::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}; dims::Int64)
@ Distances ~/.julia/packages/Distances/yhVAl/src/generic.jl:320
[4] _kmeans!(X::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, weights::Nothing, centers::Matrix{Float64}, maxiter::Int64, tol::Float64, displevel::Int64, distance::MyMetric, rng::Random._GLOBAL_RNG)
@ Clustering ~/.julia/packages/Clustering/8WUOQ/src/kmeans.jl:141
[5] kmeans!(X::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, centers::Matrix{Float64}; weights::Nothing, maxiter::Int64, tol::Float64, display::Symbol, distance::MyMetric, rng::Random._GLOBAL_RNG)
@ Clustering ~/.julia/packages/Clustering/8WUOQ/src/kmeans.jl:71
[6] kmeans!
@ ~/.julia/packages/Clustering/8WUOQ/src/kmeans.jl:46 [inlined]
[7] kmeans(X::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, k::Int64; weights::Nothing, init::Symbol, maxiter::Int64, tol::Float64, display::Symbol, distance::MyMetric, rng::Random._GLOBAL_RNG)
@ Clustering ~/.julia/packages/Clustering/8WUOQ/src/kmeans.jl:114
Any idea what am I missing ?
Metadata
Metadata
Assignees
Labels
No labels