当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn IsolationForest用法及代码示例


本文简要介绍python语言中 sklearn.ensemble.IsolationForest 的用法。

用法:

class sklearn.ensemble.IsolationForest(*, n_estimators=100, max_samples='auto', contamination='auto', max_features=1.0, bootstrap=False, n_jobs=None, random_state=None, verbose=0, warm_start=False)

隔离森林算法。

使用IsolationForest算法返回每个样本的异常分数

IsolationForest ‘isolates’ 观察是通过随机选择一个特征,然后在所选特征的最大值和最小值之间随机选择一个分割值。

由于递归划分可以用树结构表示,因此隔离样本所需的分裂次数等于从根节点到终止节点的路径长度。

这个路径长度,在这些随机树的森林上平均,是衡量正常性和我们的决策函数的指标。

随机分区为异常产生明显更短的路径。因此,当随机树的森林共同为特定样本产生较短的路径长度时,它们很可能是异常的。

在用户指南中阅读更多信息。

参数

n_estimators整数,默认=100

集成中基本估计器的数量。

max_samples“auto”, int 或浮点数,默认=”auto”
从 X 中抽取以训练每个基本估计器的样本数。
  • 如果是 int,则绘制 max_samples 样本。
  • 如果浮点数,则绘制 max_samples * X.shape[0] 样本。
  • 如果 “auto”,那么 max_samples=min(256, n_samples)

如果max_samples 大于提供的样本数,则所有样本将用于所有树(不采样)。

contamination‘auto’ 或浮点数,默认='auto'

数据集的污染量,即数据集中异常值的比例。在拟合时用于定义样本分数的阈值。

  • 如果‘auto’,阈值的确定与原论文相同。

  • 如果浮点数,则污染应在 (0, 0.5] 范围内。

max_featuresint 或浮点数,默认=1.0

从 X 中提取以训练每个基本估计器的特征数。

  • 如果是 int,则绘制 max_features 特征。

  • 如果浮点数,则绘制max_features * X.shape[1] 特征。

bootstrap布尔,默认=假

如果为 True,则单个树适合替换采样的训练数据的随机子集。如果为 False,则执行无放回抽样。

n_jobs整数,默认=无

fitpredict 并行运行的作业数。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关更多详细信息,请参阅术语表。

random_stateint、RandomState 实例或无,默认=无

控制森林中每个分支步骤和每棵树的特征选择和拆分值的pseudo-randomness。

传递 int 以获得跨多个函数调用的可重现结果。请参阅词汇表。

verbose整数,默认=0

控制树构建过程的详细程度。

warm_start布尔,默认=假

当设置为 True 时,重用上一次调用的解决方案以适应并向集成添加更多估计器,否则,只需适应一个全新的森林。请参阅词汇表。

属性

base_estimator_ExtraTreeRegressor 实例

用于创建拟合sub-estimators 集合的子估计器模板。

estimators_ExtraTreeRegressor 实例列表

拟合sub-estimators 的集合。

estimators_features_ndarray 列表

每个基本估计器的绘制特征的子集。

estimators_samples_ndarray 列表

每个基本估计器的抽取样本的子集。

max_samples_int

实际样本数。

offset_浮点数

用于从原始分数定义决策函数的偏移量。我们有关系:decision_function = score_samples - offset_offset_ 定义如下。当污染参数设置为“auto” 时,偏移量等于-0.5,因为内点的得分接近 0,而异常点的得分接近 -1。当提供不同于“auto”的污染参数时,偏移量的定义方式是我们在训练中获得预期的异常值(决策函数<0的样本)数量。

n_features_int

已弃用:属性 n_features_ 在版本 1.0 中已弃用,并将在 1.2 中删除。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

注意

该实现基于 ExtraTreeRegressor 的集合。每棵树的最大深度设置为 ceil(log_2(n)),其中 是用于构建树的样本数量(更多详细信息请参阅 (Liu et al., 2008))。

参考

1

Liu、Fei Tony、Ting、Kai Ming 和 Zhou,Zhi-Hua。 “隔离林。”数据挖掘,2008。ICDM'08。第八届 IEEE 国际会议。

2

Liu、Fei Tony、Ting、Kai Ming 和 Zhou,Zhi-Hua。 “基于隔离的异常检测。” ACM 从数据中发现知识的交易 (TKDD) 6.1 (2012):3。

例子

>>> from sklearn.ensemble import IsolationForest
>>> X = [[-1.1], [0.3], [0.5], [100]]
>>> clf = IsolationForest(random_state=0).fit(X)
>>> clf.predict([[0.1], [0], [90]])
array([ 1,  1, -1])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.ensemble.IsolationForest。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。