outliers_to_remove = detect_outliers(df, 2, list_of_features)
> Photo by Author
以上代码段展示了如何使用Tukey的曲棍球方法来检测异常值。此方法在数据集的每个特征上分别运行,并使用四分位距(IQR)来确定异常值。我们设置了一个阈值来决定我们认为“过于异常”的数据点。
我们在最后应用了一个额外的筛选步骤,以排除那些在多个特征上被标记为异常的观测值。这可以确保我们不会因为偶然的、孤立的异常值而误删整个观测。
此方法虽然简单,但在处理数据时可能不够精确。为了获得更精确的结果,可以考虑使用更复杂的算法,如DBSCAN和Isolation Forest。
无论使用哪种方法,重要的是要理解其背后的逻辑,并确保在应用之前对数据进行充分的探索和验证。
在继续之前,让我们简要回顾一下我们已经讨论过的几种检测异常值的方法:
- Boxplots(箱线图)和Tukey的曲棍球方法:简单直观,但可能不适用于所有情况。
- DBSCAN:能够识别不同密度区域的聚类,包括离群值。
- Isolation Forest:通过集成学习来识别异常值。
希望这能帮到你!
检测异常值:算法的概述与应用
我们有一段代码,其功能是识别数据集中的离群值。具体实现如下:
函数 detect_outliers(dataset, 2, list_of_features)
被调用,用于找出数据中的异常值。
基本上,此函数执行以下操作:
对于数据集中的每个特征,该函数会计算:
- 第一四分位数(Q1)
- 第三四分位数(Q3)
- IQR(四分位距,即Q3与Q1之差)
接下来,它定义了离群值的判断标准,如同在箱线图中的一样,设为1.5倍的IQR。
接着,异常值通过以下方式进行检测:
- 观察点是否小于(Q1 - 离群值)
- 观察点是否大于(Q3 + 离群步)
之后,该函数会进一步筛选出具有k个异常值的观测值(在此例中,k值为2)。
在数据科学领域,存在多种离群值检测算法。我们熟悉其中三种最常见的算法:DBSCAN、IsolationForest和箱线图。我们建议:
在“泰坦尼克号”数据集上尝试这些方法,并比较哪一个最能有效地检测到异常值。
鼓励大家寻找其他异常检测方法,看看它们的性能是否比初试的方法更优或更差。
感谢各位的关注与支持,我们希望持续为大家提供有深度的内容。此刻,我将暂时停止写作;
```