Skip to content

Commit f7e9474

Browse files
committed
Adicionando VirtualDrift
1 parent c021a89 commit f7e9474

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/modifiers.jl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ FilterModifier(columns::Symbol...) = FilterModifier([columns...])
3838
function apply!(modifier::FilterModifier, data::DataFrame, event::Int)
3939
columns = Symbol[]
4040
for col in modifier.columns
41-
#TODO: Não ficou boa essa checagem.
4241
if !(col in propertynames(data))
4342
#TODO: Colocar para avisar somente uma única vez do problema.
4443
@warn "O stream não possui a $col"
@@ -50,6 +49,7 @@ function apply!(modifier::FilterModifier, data::DataFrame, event::Int)
5049
select!(data, columns)
5150
return nothing
5251
end
52+
5353
struct DriftModifier <: Modifier
5454
column::Symbol
5555
filter::Function
@@ -61,4 +61,16 @@ function apply!(modifier::DriftModifier, data::DataFrame, event::Int)
6161
data[elements, modifier.column] = data[elements, modifier.column] .+ modifier.drift(event)
6262

6363
return nothing
64+
end
65+
66+
sigmoid(x; c1 = 1.0, c2 = 0.0) = 1 / (1 +^ (-c1 * (x - c2)))
67+
68+
function IncrementalVirtualDriftModifier(vetor::Dict{Symbol, T}, filter::Function; c1 = 1.0, c2 = 0.0)::Modifiers where T <: Number
69+
modifiers = EasyStream.Modifier[]
70+
for (column, value) in vetor
71+
drift = DriftModifier(column, filter, x -> value .* sigmoid(x; c1 = c1, c2 = c2))
72+
push!(modifiers, drift)
73+
end
74+
75+
return Modifiers(modifiers)
6476
end

0 commit comments

Comments
 (0)