如何用puthon找到异常值哥离群点
时间: 2024-10-11 17:13:33 浏览: 5
在Python中寻找异常值(离群点)通常有几种方法,这里介绍一些常见的方法:
1. **Z-Score** 或者 **标准差法**:
使用统计学中的Z-score(每个数值减去平均值除以标准差),如果Z分数超过某个阈值(比如3或4),则认为该数值可能是异常值。
```python
from scipy import stats
data = [...] # 输入数据
mean = data.mean()
std_dev = data.std()
threshold = 3
outliers = [x for x in data if abs((x - mean) / std_dev) > threshold]
```
2. **IQR (四分位数范围)**:
计算数据的Q1(第一四分位数)和Q3(第三四分位数),然后找出大于Q3 + 1.5 * IQR或小于Q1 - 1.5 * IQR的数据。
```python
Q1, Q3 = np.percentile(data, [25, 75])
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = [x for x in data if x < lower_bound or x > upper_bound]
```
3. **箱线图(Boxplot)**:
可视化数据并直接识别箱形图上的离群点。
4. **聚类算法**:
如DBSCAN或Isolation Forest,通过算法自动识别簇和潜在的异常点。
```python
from sklearn.ensemble import IsolationForest
clf = IsolationForest(contamination=0.1)
clf.fit(data)
outliers = clf.predict(data)
```