public static IEnumerable <double> ApplyOutlierMode([NotNull] this IOutlierDetector outlierDetector, [NotNull] IEnumerable <double> values, OutlierMode mode) { switch (mode) { case OutlierMode.DontRemove: return(values); case OutlierMode.RemoveUpper: return(outlierDetector.WithoutUpperOutliers(values)); case OutlierMode.RemoveLower: return(outlierDetector.WithoutLowerOutliers(values)); case OutlierMode.RemoveAll: return(outlierDetector.WithoutAllOutliers(values)); default: throw new ArgumentOutOfRangeException(nameof(mode), mode, null); } }
public static bool IsOutlier([NotNull] this IOutlierDetector outlierDetector, double x) { return(outlierDetector.IsLowerOutlier(x) || outlierDetector.IsUpperOutlier(x)); }
public static IEnumerable <double> WithoutAllOutliers([NotNull] this IOutlierDetector outlierDetector, [NotNull] IEnumerable <double> values) { return(values.Where(x => !outlierDetector.IsOutlier(x))); }
public static IEnumerable <double> GetAllOutliers([NotNull] this IOutlierDetector outlierDetector, [NotNull] IEnumerable <double> values) { return(values.Where(outlierDetector.IsOutlier)); }