机器学习之异常检测

异常检测

异常检测(Anomaly Detection):根据输入数据,对不符合预期模式的数据进行识别

概率密度

概率密度:描述随机变量在某个确定的取值点附近的可能性的函数
在这里插入图片描述

  • 计算数据均值µ,标准差σ
  • 计算对应的高斯分布概率函数
  • 根据数据点概率,进行判断,如果p(x) < ε;该点为异常点

当数据维度高于一维时:
在这里插入图片描述

同理,根据数据点概率,进行判断,如果p(x) < ε;该点为异常点

代码实现

#数据分布统计
plt.hist(x1,bins = 100)
#计算数据均值、标准差
x1_mean = x1.mean()
x1_sigma = x1.std()
# 计算对应的高斯分布数值:
from scipy.stats import norm
x1_range = np.linspace(0,20,300)
normal1 = norm.pdf(x1_range,x1_mean,x1_sigma)
# 可视化高斯分布曲线:
Plt.plot(x1_range,normal1)
# 模型训练:
from sklearn.covariance import EllipticEnvelope
clf = EllipticEnvelope()
clf.fit(data)
# 可视化异常数据:
anamoly_points = plt.scatter(
data.loc[:,'x1'][y_predict == -1],
data.loc[:,'x2'][y_predcit == -1],
marker = "o",
facecolor = "none",
edgecolor = "red", s = 250
)
posted @ 2020-10-24 16:03  samuelzhou  阅读(64)  评论(0)    收藏  举报