MAD算法代码
时间: 2023-07-03 15:09:48 浏览: 158
算法代码
以下是一个使用MAD算法求解异常值的Python代码示例:
```python
import numpy as np
def median_absolute_deviation(data):
"""
计算数据集的中位数和MAD
:param data: 数据集
:return: 中位数,MAD
"""
median = np.median(data)
deviations = np.abs(data - median)
mad = np.median(deviations)
return median, mad
def is_outlier(point, median, mad, threshold=3.5):
"""
判断给定点是否为异常值
:param point: 数据点
:param median: 中位数
:param mad: MAD
:param threshold: 阈值,默认取3.5
:return: True表示为异常值,False表示不是异常值
"""
return abs(point - median) / mad > threshold
# 示例用法
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 100])
median, mad = median_absolute_deviation(data)
outliers = [point for point in data if is_outlier(point, median, mad)]
print(outliers)
```
在该代码中,`median_absolute_deviation`函数计算数据集的中位数和MAD。`is_outlier`函数使用阈值和MAD来判断给定点是否为异常值。在示例中,我们使用一个包含10个数据点和1个异常值的数组来进行测试,并打印出所有的异常值。
阅读全文