Is diffusion map working?
Closed this issue · 3 comments
yuehhua commented
When I try diffusion map, I encounter this error.
I also found that document needs update.
model = fit(DiffMap, X; dims=2, t=1, ɛ=1.0)
MethodError: no method matching fit(::Type{DiffMap}, ::Array{Float64,2}; dims=2, t=1, ε=1.0)
Closest candidates are:
fit(::Type{DiffMap}, ::AbstractArray{T<:Real,2}; maxoutdim, t, ε) where T<:Real at /home/pika/.julia/packages/ManifoldLearning/jTQMq/src/diffmaps.jl:38 got unsupported keyword argument "dims"
fit(!Matched::Type{StatsBase.Histogram}, ::Any...; kwargs...) at /home/pika/.julia/packages/StatsBase/Zfd1X/src/hist.jl:383
fit(!Matched::StatsBase.StatisticalModel, ::Any...) at /home/pika/.julia/packages/StatsBase/Zfd1X/src/statmodels.jl:152 got unsupported keyword arguments "dims", "t", "ε"
...
Stacktrace:
[1] kwerr(::NamedTuple{(:dims, :t, :ε),Tuple{Int64,Int64,Float64}}, ::Function, ::Type, ::Array{Float64,2}) at ./error.jl:125
[2] (::getfield(StatsBase, Symbol("#kw##fit")))(::NamedTuple{(:dims, :t, :ε),Tuple{Int64,Int64,Float64}}, ::typeof(fit), ::Type{DiffMap}, ::Array{Float64,2}) at ./none:0
[3] top-level scope at In[7]:1
If there is anything I can help, I can fix it myself and pull request.
I just need more information about this error...
wildart commented
it's maxoutdim
not dims
dims
used in selecting an observation layout - columns or rows (as it defined in StatsBase) and this parameters isn't implemented
Fill free to implement it. PRs are always welcome.
yuehhua commented
model = fit(DiffMap, X; maxoutdim=2, t=1, ɛ=1.0)
And I got
┌ Warning: fit(t, x) is deprecated: use fit(t, x, dims=2) instead
│ caller = #standardize#187(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(StatsBase.standardize), ::Type{StatsBase.UnitRangeTransform}, ::Array{Float64,2}) at transformations.jl:384
└ @ StatsBase /home/pika/.julia/packages/StatsBase/Zfd1X/src/transformations.jl:384
MethodError: no method matching StatsBase.UnitRangeTransform(::Int64, ::Nothing, ::Bool, ::Array{Float64,1}, ::Array{Float64,1})
Closest candidates are:
StatsBase.UnitRangeTransform(::Int64, !Matched::Int64, ::Bool, ::Array{T,1}, ::Array{T,1}) where T at /home/pika/.julia/packages/StatsBase/Zfd1X/src/transformations.jl:219
Stacktrace:
[1] #fit#181(::Nothing, ::Bool, ::typeof(fit), ::Type{StatsBase.UnitRangeTransform}, ::Array{Float64,2}) at /home/pika/.julia/packages/StatsBase/Zfd1X/src/transformations.jl:284
[2] fit(::Type{StatsBase.UnitRangeTransform}, ::Array{Float64,2}) at /home/pika/.julia/packages/StatsBase/Zfd1X/src/transformations.jl:270
[3] #standardize#187(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(StatsBase.standardize), ::Type{StatsBase.UnitRangeTransform}, ::Array{Float64,2}) at /home/pika/.julia/packages/StatsBase/Zfd1X/src/transformations.jl:384
[4] standardize(::Type{StatsBase.UnitRangeTransform}, ::Array{Float64,2}) at /home/pika/.julia/packages/StatsBase/Zfd1X/src/transformations.jl:384
[5] #fit#12(::Int64, ::Int64, ::Float64, ::typeof(fit), ::Type{DiffMap}, ::Array{Float64,2}) at /home/pika/.julia/packages/ManifoldLearning/jTQMq/src/diffmaps.jl:38
[6] (::getfield(StatsBase, Symbol("#kw##fit")))(::NamedTuple{(:maxoutdim, :t, :ε),Tuple{Int64,Int64,Float64}}, ::typeof(fit), ::Type{DiffMap}, ::Array{Float64,2}) at ./none:0
[7] top-level scope at In[3]:1
OK, I think I know how to fix it.