Skip to content

Commit e925807

Browse files
committed
Implement the 'parameters' function for some transforms
1 parent f44e433 commit e925807

18 files changed

+34
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ Statistics = "1.9"
3838
StatsBase = "0.33, 0.34"
3939
Tables = "1.6"
4040
Transducers = "0.4"
41-
TransformsBase = "1.3"
41+
TransformsBase = "1.4"
4242
Unitful = "1.17"
4343
julia = "1.9"

src/TableTransforms.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ using Transducers: tcollect
2727
using NelderMead: optimise
2828

2929
import Distributions: quantile, cdf
30-
import TransformsBase: assertions, isrevertible, isinvertible
30+
import TransformsBase: assertions, parameters, isrevertible, isinvertible
3131
import TransformsBase: apply, revert, reapply, preprocess, inverse
3232

3333
include("tabletraits.jl")

src/transforms/coalesce.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ Coalesce(; value) = Coalesce(AllSelector(), value)
4242
Coalesce(cols; value) = Coalesce(selector(cols), value)
4343
Coalesce(cols::C...; value) where {C<:Column} = Coalesce(selector(cols), value)
4444

45+
parameters(transform::Coalesce) = (; value=transform.value)
46+
4547
isrevertible(::Type{<:Coalesce}) = false
4648

4749
colcache(::Coalesce, x) = nothing

src/transforms/dropextrema.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ DropExtrema(; low=0.25, high=0.75) = DropExtrema(AllSelector(), low, high)
5050
DropExtrema(cols; low=0.25, high=0.75) = DropExtrema(selector(cols), low, high)
5151
DropExtrema(cols::C...; low=0.25, high=0.75) where {C<:Column} = DropExtrema(selector(cols), low, high)
5252

53+
parameters(transform::DropExtrema) = (low=transform.low, high=transform.high)
54+
5355
isrevertible(::Type{<:DropExtrema}) = false
5456

5557
function preprocess(transform::DropExtrema, feat)

src/transforms/eigenanalysis.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ EigenAnalysis(proj; maxdim=nothing, pratio=1.0) = EigenAnalysis(proj, maxdim, pr
5454

5555
assertions(::EigenAnalysis) = [scitypeassert(Continuous)]
5656

57+
parameters(transform::EigenAnalysis) = (proj=transform.proj, maxdim=transform.maxdim, pratio=transform.pratio)
58+
5759
isrevertible(::Type{EigenAnalysis}) = true
5860

5961
function applyfeat(transform::EigenAnalysis, feat, prep)

src/transforms/indicator.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ Indicator(col::Column; k=10, scale=:quantile, categ=false) = Indicator(selector(
4848

4949
assertions(transform::Indicator) = [scitypeassert(Continuous, transform.selector)]
5050

51+
parameters(transform::Indicator) = (k=transform.k, scale=transform.scale)
52+
5153
isrevertible(::Type{<:Indicator}) = true
5254

5355
function _intervals(transform::Indicator, x)

src/transforms/projectionpursuit.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ ProjectionPursuit(; tol=1e-6, maxiter=100, deg=5, perc=0.9, n=100, rng=Random.GL
4949

5050
assertions(::ProjectionPursuit) = [scitypeassert(Continuous)]
5151

52+
parameters(transform::ProjectionPursuit) = (tol=transform.tol, deg=transform.deg, perc=transform.perc, n=transform.n)
53+
5254
isrevertible(::Type{<:ProjectionPursuit}) = true
5355

5456
# transforms a row of random variables into a convex combination

src/transforms/quantile.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ Quantile(cols::C...; dist=Normal()) where {C<:Column} = Quantile(selector(cols),
4141

4242
assertions(transform::Quantile) = [scitypeassert(Continuous, transform.selector)]
4343

44+
parameters(transform::Quantile) = (; dist=transform.dist)
45+
4446
isrevertible(::Type{<:Quantile}) = true
4547

4648
colcache(::Quantile, x) = EmpiricalDistribution(x)

src/transforms/remainder.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ isrevertible(::Type{<:Remainder}) = true
2222

2323
assertions(::Remainder) = [scitypeassert(Continuous)]
2424

25+
parameters(transform::Remainder) = (; total=transform.total)
26+
2527
function applyfeat(transform::Remainder, feat, prep)
2628
cols = Tables.columns(feat)
2729
names = Tables.columnnames(cols) |> collect

src/transforms/scale.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ Scale(cols::C...; low=0.25, high=0.75) where {C<:Column} = Scale(selector(cols),
5050

5151
assertions(transform::Scale) = [scitypeassert(Continuous, transform.selector)]
5252

53+
parameters(transform::Scale) = (low=transform.low, high=transform.high)
54+
5355
isrevertible(::Type{<:Scale}) = true
5456

5557
function colcache(transform::Scale, x)

0 commit comments

Comments
 (0)