假设我需要使用 IQR 规则删除异常值,即本例中的 (40, 10)(请参阅下面所附的图),我该怎么做?与邻近点相比,(40, 10) 绝对是异常值。但是,Q1 = 11.25,Q3 = 35.751.5 * IQR = 1.5 * (Q3 - Q1) = 36.75仅 y 值低于 11.25-36.75 或大于 35.75+36.75 的点被视为异常值。如果必须使用 IQR 规则,如何使用 IQR 规则查找并删除 (40, 10)?这是我的代码:import pandas as pdimport matplotlib.pyplot as plttest = pd.DataFrame({'x': range(50), 'y': [i if i != 40 else 10 for i in range(50)]})plt.figure(**FIGURE)plt.scatter(test['x'], test['y'], marker='x')plt.show()这是从上面的代码生成的图。
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您使用 IQR 的方式仅考虑 X 轴分量。如果不包括 Y 轴分量,则 (40, 10) 处的点不是异常值。
您应该使用考虑 2D 实例的方法,例如局部异常值因子或任何其他方法。
添加回答
举报
0/150
提交
取消