package com.linkedin.thirdeye.anomalydetection.alertFilterAutotune;
import com.linkedin.thirdeye.datalayer.dto.AnomalyFunctionDTO;
import com.linkedin.thirdeye.datalayer.dto.MergedAnomalyResultDTO;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* Created by ychung on 2/9/17.
*/
public interface AlertFilterAutoTune {
// get initiated alert filter when input has no positive label, use nExpectedAnomalies
// return the alert filter that can guarantee top nExpectedAnomalies to recommend to clients
Map<String, String> initiateAutoTune(List<MergedAnomalyResultDTO> anomalyResults, int nExpectedAnomalies) throws Exception;
// Tune the alert filter properties using labeled anomalies
// precision and recall need to be improved over old setting
Map<String, String> tuneAlertFilter(List<MergedAnomalyResultDTO> anomalyResults, double currentPrecision, double currentRecall) throws Exception;
// True if model has been updated (improved)
boolean isUpdated();
}