机器学习 - 异常检测 Anomaly Detection(学习笔记)

根据输入数据,对不符合预期的模式的数据进行识别,寻找低概率数据(事件)。

机器学习 - 异常检测 Anomaly Detection(学习笔记)_第1张图片

# train the model (unsupervised study)
# 修改概率密度阈值contamination,可调整异常点检测的灵敏度
from sklearn.covariance import EllipticEnvelope
ad_model = EllipticEnvelope(contamination=0.03)
ad_model.fit(data)

#predict the result
y_predict = ad_model.predict(data)
print(pd.value_counts(y_predict))

# visualize the result
fig = plt.figure(figsize=(10,6))
orginal_data=plt.scatter(data.loc[:,'x1'],data.loc[:,'x2'],marker='x') 
anomaly_data=plt.scatter(data.loc[:,'x1'][y_predict==-1],data.loc[:,'x2'][y_predict==-1],marker='o',facecolor='none',edgecolor='red',s=150)
#y_predict==-1即是异常点; marker='o'将异常点用圆圈圈起来; facecolor='none' 不填充,即空心圆; edgecolor='red' 颜色为红色; s=150 圆圈的大小.
plt.title('anomaly detection result')
plt.xlabel('x1')
plt.ylabel('x2')
plt.legend((orginal_data,anomaly_data),('orginal_data','anomaly_data'))
plt.show()

你可能感兴趣的:(机器学习,学习笔记,机器学习)