本文主要是介绍异常数据检测 | Python实现孤立森林(IsolationForest)异常检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
孤立森林(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’] =
这篇关于异常数据检测 | Python实现孤立森林(IsolationForest)异常检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!