From a0ad42c1c3e904475e58e595fed42a0dc12049f0 Mon Sep 17 00:00:00 2001 From: Alexey Velikiy Date: Tue, 9 Nov 2021 21:36:07 +0300 Subject: [PATCH] svm weight instead of prediction --- .../analytic_unit/pattern_analytic_unit.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/src/services/analytic_service/analytic_unit/pattern_analytic_unit.rs b/server/src/services/analytic_service/analytic_unit/pattern_analytic_unit.rs index e029e86..6377581 100644 --- a/server/src/services/analytic_service/analytic_unit/pattern_analytic_unit.rs +++ b/server/src/services/analytic_service/analytic_unit/pattern_analytic_unit.rs @@ -362,20 +362,20 @@ impl AnalyticUnit for PatternAnalyticUnit { } } - let model_positive = { + let model_weight = { let mut backet = Vec::::new(); for j in 0..pattern_match_len { backet.push(nan_to_zero(ts[i + j].1)); } let fs = PatternAnalyticUnit::get_features(&backet); - lr.model.lock().predict(Array::from_vec(fs.to_vec())) + let lk = lr.model.lock(); + lk.weighted_sum(&Array::from_vec(fs.to_vec())) - lk.rho }; let mut score = pattern_match_score * self.config.correlation_score; score -= anti_pattern_match_score * self.config.anti_correlation_score; - if model_positive { - score += self.config.model_score; - } + score += (model_weight as f32) * self.config.model_score; + if score >= self.config.threshold_score { results.push((ts[i].0, ts[i + pattern_match_len - 1].0)); }