Skip to content

Commit 7183d89

Browse files
committed
rename classes_seen field of Obs subtypes to levels_seen
1 parent cbdc3d8 commit 7183d89

File tree

6 files changed

+28
-28
lines changed

6 files changed

+28
-28
lines changed

src/backends.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ If [`Sage`](@ref)`(multitarget=..., code_type=...)` has been implemented, then
3131
`observations.target` has an integer element type controlled by `code_type`, and we
3232
additionally have:
3333
34-
- `observations.classes`: A categorical vector of the ordered target levels, as actually
34+
- `observations.levels`: A categorical vector of the ordered target levels, as actually
3535
seen in the user-supplied target, with the full pool of levels available by applying
3636
`Categorical.levels` to the result. The corresponding integer codes will be
3737
`sort(unique(observations.target))`.
@@ -111,7 +111,7 @@ struct SageObs{F,T,E,D} <: Obs
111111
features::F # p x n
112112
names::Vector{Symbol}
113113
target::T
114-
classes_seen::CategoricalArrays.CategoricalVector{E}
114+
levels_seen::CategoricalArrays.CategoricalVector{E}
115115
decoder::D
116116
end
117117

@@ -122,8 +122,8 @@ function Base.show(io::IO, ::MIME"text/plain", observations::SageObs)
122122
println(io, " features :: $(typeof(A))($(size(A)))")
123123
println(io, " names: $(observations.names)")
124124
println(io, " target :: $(typeof(y))($(size(y)))")
125-
println(io, " classes_seen: "*
126-
"$(CategoricalArrays.unwrap.(observations.classes_seen)) "*
125+
println(io, " levels_seen: "*
126+
"$(CategoricalArrays.unwrap.(observations.levels_seen)) "*
127127
"(categorical vector with complete pool)")
128128
print(io, " decoder: <callable>")
129129
end
@@ -133,7 +133,7 @@ Base.getindex(observations::SageObs, idx) =
133133
MLCore.getobs(observations.features, idx),
134134
observations.names,
135135
MLCore.getobs(observations.target, idx),
136-
observations.classes_seen,
136+
observations.levels_seen,
137137
observations.decoder,
138138
)
139139

src/saffron.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,10 @@ function finalize(x, names, y, int) # here `int` is `levelcode` or `refcode` fu
153153
l = CategoricalArrays.levels(y)
154154
u = unique(y)
155155
mask = map(in(u), l)
156-
_classes_seen = l[mask]
156+
_levels_seen = l[mask]
157157
_decoder = LearnDataFrontEnds.decoder(l)
158158

159-
return SageObs(x, names, int.(y), _classes_seen, _decoder)
159+
return SageObs(x, names, int.(y), _levels_seen, _decoder)
160160
end
161161

162162
# for input `(x::AbstractMatrix, y::MatrixOrVector)`:

src/sage.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,12 @@ function LearnAPI.fit(
104104
X = observations.features # p x n matrix
105105
y = observations.target # n-vector or q x n matrix
106106
decoder = observations.decoder
107-
classes_seen = observations.classes_seen
107+
levels_seen = observations.levels_seen
108108
feature_names = observations.names
109109
110110
# do stuff with `X`, `y` and `feature_names`:
111111
# return a `model` object which also stores the `decoder` and/or
112-
# `classes_seen` to make them available to `predict`.
112+
# `levels_seen` to make them available to `predict`.
113113
...
114114
115115
end
@@ -127,10 +127,10 @@ function LearnAPI.predict(model::MyModel, :K, observations::Obs)
127127
128128
# Do stuff with `X` and `model` to obtain raw `predictions` (a vector of integer
129129
# codes for `K = Point`, or an `n x c` matrix of probabilities for `K = Distribution`).
130-
# Extract `decoder` or `classes_seen` from `model`.
130+
# Extract `decoder` or `levels_seen` from `model`.
131131
# For `K = Point`, return `decoder.(predictions)`.
132132
# For `K = Distribution`, return, say,
133-
# `CategoricalDistributions.Univariate(classes_seen, predictions)`.
133+
# `CategoricalDistributions.Univariate(levels_seen, predictions)`.
134134
...
135135
end
136136
LearnAPI.predict(model::MyModel, kind_of_proxy, X) = LearnAPI.predict(model,

src/tools.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ function decompose(X, v, _targets::NTuple)
113113
end
114114

115115
struct CategoricalDecoder{V,R}
116-
classes::CategoricalArrays.CategoricalVector{
116+
levels::CategoricalArrays.CategoricalVector{
117117
V,
118118
R,
119119
V,
@@ -146,4 +146,4 @@ pool as `x`.
146146
decoder(x) = CategoricalDecoder(CategoricalArrays.levels(x))
147147

148148
(d::CategoricalDecoder{V,R})(i::Integer) where {V,R} =
149-
CategoricalArrays.CategoricalValue{V,R}(d.classes[i])
149+
CategoricalArrays.CategoricalValue{V,R}(d.levels[i])

test/backends.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import CategoricalArrays
1818
"[:x1, :x2]\n target :: Vector{Int64}((3,))"
1919
@test sprint(show, mime, LearnDataFrontEnds.SageObs(x, names, y, c, d)) ==
2020
"SageObs\n features :: Matrix{Int64}((2, 3))\n names: "*
21-
"[:x1, :x2]\n target :: Vector{Int64}((3,))\n classes_seen: "*
21+
"[:x1, :x2]\n target :: Vector{Int64}((3,))\n levels_seen: "*
2222
"[1, 2, 3] (categorical vector with complete pool)\n decoder: <callable>"
2323
end
2424

test/sage.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ f = @formula(t ~ c + a)
6262
@test o.names == [:x1, :x2]
6363
@test o.target == repeat([1, 2, 1], n)
6464
@test eltype(o.target) == Int
65-
@test o.classes_seen == CA.levels(y)[1:2]
66-
@test o.classes_seen isa CA.CategoricalArray
65+
@test o.levels_seen == CA.levels(y)[1:2]
66+
@test o.levels_seen isa CA.CategoricalArray
6767
yy = o.decoder.(o.target)
6868
@test yy == y
6969
@test yy isa CA.CategoricalVector
@@ -87,8 +87,8 @@ end
8787
@test o.names == [:c, :a]
8888
@test o.target == repeat([1, 2, 1], n)
8989
@test eltype(o.target) == Int
90-
@test o.classes_seen == CA.levels(y)[1:2]
91-
@test o.classes_seen isa CA.CategoricalArray
90+
@test o.levels_seen == CA.levels(y)[1:2]
91+
@test o.levels_seen isa CA.CategoricalArray
9292
yy = o.decoder.(o.target)
9393
@test yy == y
9494
@test yy isa CA.CategoricalVector
@@ -112,8 +112,8 @@ end
112112
@test o.features == x
113113
@test o.target == repeat([1, 2, 1], n)
114114
@test eltype(o.target) == Int
115-
@test o.classes_seen == CA.levels(y)[1:2]
116-
@test o.classes_seen isa CA.CategoricalArray
115+
@test o.levels_seen == CA.levels(y)[1:2]
116+
@test o.levels_seen isa CA.CategoricalArray
117117
yy = o.decoder.(o.target)
118118
@test yy == y
119119
@test yy isa CA.CategoricalVector
@@ -138,8 +138,8 @@ end
138138
@test o.names == [:c, :a]
139139
@test o.target == repeat([1, 2, 1], n)
140140
@test eltype(o.target) == Int
141-
@test o.classes_seen == CA.levels(y)[1:2]
142-
@test o.classes_seen isa CA.CategoricalArray
141+
@test o.levels_seen == CA.levels(y)[1:2]
142+
@test o.levels_seen isa CA.CategoricalArray
143143
yy = o.decoder.(o.target)
144144
@test yy == y
145145
@test yy isa CA.CategoricalVector
@@ -163,8 +163,8 @@ end
163163
@test o.names == [:c, :a]
164164
@test o.target == repeat([1, 2, 1], n)
165165
@test eltype(o.target) == Int
166-
@test o.classes_seen == CA.levels(y)[1:2]
167-
@test o.classes_seen isa CA.CategoricalArray
166+
@test o.levels_seen == CA.levels(y)[1:2]
167+
@test o.levels_seen isa CA.CategoricalArray
168168
yy = o.decoder.(o.target)
169169
@test yy == y
170170
@test yy isa CA.CategoricalVector
@@ -223,7 +223,7 @@ struct ConstantClassifierFitted
223223
learner::ConstantClassifier
224224
probabilities
225225
names::Vector{Symbol}
226-
classes_seen
226+
levels_seen
227227
codes_seen
228228
decoder
229229
end
@@ -256,7 +256,7 @@ function LearnAPI.fit(learner::ConstantClassifier, observations::Obs; verbosity=
256256

257257
y = observations.target # integer "codes"
258258
names = observations.names
259-
classes_seen = observations.classes_seen
259+
levels_seen = observations.levels_seen
260260
codes_seen = sort(unique(y))
261261
decoder = observations.decoder
262262

@@ -268,7 +268,7 @@ function LearnAPI.fit(learner::ConstantClassifier, observations::Obs; verbosity=
268268
learner,
269269
probabilities,
270270
names,
271-
classes_seen,
271+
levels_seen,
272272
codes_seen,
273273
decoder,
274274
)
@@ -290,7 +290,7 @@ function LearnAPI.predict(model::ConstantClassifierFitted, ::Distribution, obser
290290
probs = model.probabilities
291291
# repeat vertically to get rows of a matrix:
292292
probs_matrix = reshape(repeat(probs, n), (length(probs), n))'
293-
return CategoricalDistributions.UnivariateFinite(model.classes_seen, probs_matrix)
293+
return CategoricalDistributions.UnivariateFinite(model.levels_seen, probs_matrix)
294294
end
295295
LearnAPI.predict(model::ConstantClassifierFitted, ::Distribution, Xnew) =
296296
predict(model, Distribution(), obs(model, Xnew))

0 commit comments

Comments
 (0)