孤立森林(IsolationForest)异常检测
IsolationForest[6]算法它是一种集成算法(类似于随机森林)主要用于挖掘异常(Anomaly)数据,或者说离群点挖掘,总之是在一大堆数据中,找出与其它数据的规律不太符合的数据。该算法不采样任何基于聚类或距离的方法,因此他和那些基于距离的的异常值检测算法有着根本上的不同,孤立森林认定异常值的原则是异常值是少数的和不同的数据。它通常用于网络安全中的攻击检测和流量异常等分析,金融机构则用于挖掘出欺诈行为。
当我们使用IsolationForest[7]算法时需要设置一个异常值比例的参数contamination, 该参数的作用类似于之前的outliers_fraction。
使用 fit 方法对孤立森林模型进行训练
使用 predict 方法去发现数据中的异常值。返回1表示正常值,-1表示异常值。
data = df[[‘price_usd’, ‘srch_booking_window’, ‘srch_saturday_night_bool’]]
scaler = StandardScaler()
np_scaled = scaler.fit_transform(data)
data = pd.DataFrame(np_scaled)
训练孤立森林模型
model = IsolationForest(contamination=outliers_fraction)
model.fit(data)
#返回1表示正常值,-1表示异常值
df[‘anomaly2’] = pd.Series(model.predict(data))
fig, ax = plt.subplots(figsize=(10,6))
a = df.loc[df[‘anomaly2’] =
原文地址:https://blog.csdn.net/qq_59771180/article/details/134701043
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_15069.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!