Revize 0e7b6b11
Přidáno uživatelem Roman Kalivoda před téměř 4 roky(ů)
Server/ServerApp/Predictor/FeatureExtractor.cs | ||
---|---|---|
17 | 17 |
/// </summary> |
18 | 18 |
class FeatureExtractor |
19 | 19 |
{ |
20 |
|
|
21 |
private const double Confidence = 99.0; |
|
22 |
|
|
20 | 23 |
private static readonly ILog _log = LogManager.GetLogger(typeof(FeatureExtractor)); |
21 | 24 |
|
22 | 25 |
/// <summary> |
... | ... | |
90 | 93 |
{ |
91 | 94 |
MLContext mlContext = new MLContext(); |
92 | 95 |
IDataView input = mlContext.Data.LoadFromEnumerable(data); |
93 |
var pipeline = mlContext.Transforms.Conversion.ConvertType(nameof(ActivityInfo.amount)).Append(mlContext.Transforms.DetectIidSpike(nameof(AnomalyDetectionResult.Prediction), nameof(ActivityInfo.amount), 99.0, data.Count / 4));
|
|
96 |
var pipeline = mlContext.Transforms.Conversion.ConvertType(nameof(ActivityInfo.amount)).Append(mlContext.Transforms.DetectIidSpike(nameof(AnomalyDetectionResult.Prediction), nameof(ActivityInfo.amount), Confidence, data.Count / 4));
|
|
94 | 97 |
ITransformer transformer = pipeline.Fit(mlContext.Data.LoadFromEnumerable(new List<ActivityInfo>())); |
95 | 98 |
IDataView transformedData = transformer.Transform(input); |
96 | 99 |
List<AnomalyDetectionResult> predictions = mlContext.Data.CreateEnumerable<AnomalyDetectionResult>(transformedData, false).ToList(); |
... | ... | |
98 | 101 |
|
99 | 102 |
for (int i=0; i<predictions.Count; i++) |
100 | 103 |
{ |
101 |
if(predictions[i].Prediction[0] == 1)
|
|
104 |
if(predictions[i].Prediction[2] < (1 - Confidence))
|
|
102 | 105 |
{ |
103 | 106 |
_log.Debug($"Rejecting an outlier activity: {predictions[i].Prediction[1]}, p-value: {predictions[i].Prediction[2]}, from: {data[i].startTime}"); |
104 | 107 |
} else |
Také k dispozici: Unified diff
Re #9049 Implementation of GetDataFileNames and Load methods