def outlier_detection(window_data: list) -> list:
"""
removes outliers from a list
This algorithm is modified version of Chauvenet's_criterion (https://en.wikipedia.org/wiki/Chauvenet's_criterion)
:param window_data:
:return:
"""
if not window_data:
raise ValueError("List is empty.")
vals = []
for dp in window_data:
vals.append(float(dp.sample))
median = stat.median(vals)
standard_deviation = stat.stdev(vals)
normal_values = list()
for val in window_data:
if (abs(float(val.sample)) - median) < standard_deviation:
normal_values.append(float(val.sample))
return normal_values
评论列表
文章目录