MultivariateStats.jl icon indicating copy to clipboard operation
MultivariateStats.jl copied to clipboard

MethodError: no method matching fit(::Type{MDS}, ::Adjoint{Float64, Matrix{Float64}}

Open zhuxuangao opened this issue 2 years ago • 3 comments

I'm using both MDS and PCA in the package MultivariateStats.jl. My code is

M = fit(PCA, matrix; maxoutdim=2) Yte = predict(M, matrix) M1 = fit(MDS, matrix; maxoutdim=2, distances=false) Yte1 = predict(M1) Soon I found that Yte and Yte1 are always the same since MDS uses Euclidean norm, so MDS is always equivalent to PCA in this case. Then I tried another method.

mds = fit(MDS, matrix; distances=true, metric=isotonic) But I got the error that

MethodError: no method matching fit(::Type{MDS}, ::Adjoint{Float64, Matrix{Float64}}; distances=true, metric=MultivariateStats.isotonic) Closest candidates are: fit(::Type{MDS}, ::AbstractMatrix{T}; maxoutdim, distances) where T<:Real at ~/.julia/packages/MultivariateStats/cFZlL/src/cmds.jl:232 got unsupported keyword argument "metric"

I tried MetricMDS instead of MDS, then I got error UndefVarError: MetricMDS not defined

My version is 1.8.1

I found the example code above in https://juliastats.org/MultivariateStats.jl/dev/mds/#MultivariateStats.MetricMDS

Is there anyway to fix it?

zhuxuangao avatar Nov 15 '22 15:11 zhuxuangao

It's a typo in the docs. Use MetricMDS type as a first parameter instead of MDS, e.g.

mds = fit(MetricMDS, D; distances=true, metric=isotonic)

wildart avatar Nov 15 '22 21:11 wildart

I tried it, and I got "UndefVarError: MetricMDS not defined"

zhuxuangao avatar Nov 15 '22 21:11 zhuxuangao

What package version are you using?

wildart avatar Nov 15 '22 21:11 wildart