主要内容

isanomaly

使用隔离森林发现异常数据

    描述

    例子

    特遣部队= isanomaly (森林,资源描述)表中发现异常资源描述使用IsolationForest对象森林并返回逻辑数组特遣部队的元素是真正的在检测到异常时在相应的行资源描述。如果您创建您必须使用这种语法森林通过一个表iforest函数。

    特遣部队= isanomaly (森林,X)发现异常的矩阵X。如果您创建您必须使用这种语法森林通过矩阵的iforest函数。

    例子

    特遣部队= isanomaly (___,名称=值)指定使用一个或多个选项名称参数组合除了任何输入参数在前面的语法。例如,设置ScoreThreshold= 0.5识别异常观测分数在0.5以上。

    (特遣部队,分数)= isanomaly (___)还返回一个异常分数范围内[0,1]为每一个观察资源描述X。得分值接近于0指示一个正常的观察,和一个值接近1显示异常。

    例子

    全部折叠

    创建一个IsolationForest未被污染的培训对象观察使用iforest函数。然后检测小礼品(新数据异常)通过对象和新的数据对象的功能isanomaly

    1994年的人口普查数据加载存储census1994.mat。数据集由人口数据来自美国人口普查局预测一个人是否使每年超过50000美元。

    负载census1994

    census1994包含了训练数据集adultdata和测试数据集成人

    火车一个隔离森林模型adultdata。假设adultdata不包含异常值。

    rng (“默认”)%的再现性[Mdl, tf, s] = iforest (adultdata);

    Mdl是一个IsolationForest对象。iforest还返回异常指标特遣部队和异常分数年代的训练数据adultdata。如果你不指定ContaminationFraction名称参数值大于0,iforest对待所有正常训练观察观察,的值特遣部队都是逻辑0 ()。这个函数设置分数阈值最大的分数值。显示阈值。

    Mdl.ScoreThreshold
    ans = 0.8600

    使用训练有素的隔离森林模型发现异常成人

    [tf_test, s_test] = isanomaly (Mdl,成人);

    isanomaly函数返回异常指标tf_test和分数s_test成人。默认情况下,isanomaly确定观测分数高于阈值(Mdl.ScoreThreshold)异常。

    创建直方图异常分数年代s_test。创建一个垂直线阈值的异常分数。

    直方图(年代,规范化=“概率”)举行直方图(s_test正常化=“概率”)参照线(Mdl.ScoreThreshold“r -”,加入([“阈值”Mdl.ScoreThreshold]))传说(“训练数据”,“测试数据”位置=“西北”)举行

    图包含一个坐标轴对象。坐标轴对象包含3直方图类型的对象,constantline。这些对象代表训练数据,测试数据。

    显示异常的观测指标的测试数据。

    找到(tf_test)
    ans = 15655

    的异常分数分布测试数据与训练数据,isanomaly检测到少量的测试数据与异常默认阈值。您可以指定一个不同的阈值使用ScoreThreshold名称-值参数。例如,看到的指定异常分数阈值

    指定的阈值异常分数通过使用ScoreThreshold名称-值参数isanomaly

    1994年的人口普查数据加载存储census1994.mat。数据集由人口数据来自美国人口普查局预测一个人是否使每年超过50000美元。

    负载census1994

    census1994包含了训练数据集adultdata和测试数据集成人

    火车一个隔离森林模型adultdata

    rng (“默认”)%的再现性[Mdl, tf,分数]= iforest (adultdata);

    画一个柱状图的分数值。在默认的分数阈值创建一条垂直线。

    直方图(分数,正常化=“概率”);参照线(Mdl.ScoreThreshold“r -”,加入([“阈值”Mdl.ScoreThreshold]))

    图包含一个坐标轴对象。坐标轴对象包含2直方图类型的对象,constantline。

    发现的异常测试数据使用训练有素的隔离森林模型。使用不同的阈值从默认阈值训练隔离森林模型时获得的。

    确定分数阈值使用isoutlier函数。

    [~,~,U] = isoutlier(分数)
    U = 0.7449

    指定ScoreThreshold名称参数值为U

    [tf_test, scores_test] = isanomaly (Mdl、成人ScoreThreshold = U);直方图(scores_test正常化=“概率”)参照线(U,“r -”,加入([“阈值”U]))

    图包含一个坐标轴对象。坐标轴对象包含2直方图类型的对象,constantline。

    输入参数

    全部折叠

    训练有素的隔离森林模型,指定为一个IsolationForest对象。

    预测数据,指定为一个表。每一行的资源描述对应于一个观察,每一列对应一个预测变量。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。

    如果你训练森林使用一个表,那么您必须提供预测数据通过使用资源描述,而不是X。所有的预测变量资源描述必须有相同的变量名和数据类型的训练数据。然而,列顺序资源描述不需要训练数据对应的列顺序。

    数据类型:

    预测数据,指定为一个数字矩阵。每一行的X对应于一个观察,每一列对应一个预测变量。

    如果你训练森林使用一个矩阵,那么你必须通过提供预测数据X,而不是资源描述。的变量的列X必须有相同的订单作为训练数据。

    数据类型:|

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    例子:ScoreThreshold = 0.75, UseParallel = true设置阈值的异常分数0.75和指示功能运行并行计算。

    阈值的异常分数,指定为0和1之间的数字标量。isanomaly确定观测与分数高于阈值异常。

    默认值是ScoreThreshold属性值的森林

    例子:ScoreThreshold = 0.5

    数据类型:|

    国旗并行运行,指定为真正的。如果您指定UseParallel = true,isanomaly函数执行for循环迭代并行使用parfor。这个选项需要并行计算工具箱™。

    例子:UseParallel = true

    数据类型:逻辑

    输出参数

    全部折叠

    异常指标,作为一个逻辑返回列向量。一个元素的特遣部队真正的当观察相应的行资源描述X是一个异常,否则。特遣部队一样的长度吗资源描述X

    isanomaly标识的观察与分数高于阈值(ScoreThreshold作为异常值)。

    异常分数,作为一个数字列向量返回的值在0和1之间。分数一样的长度吗资源描述X的每个元素分数包含一个观测的异常分数对应的行资源描述X。得分值接近于0指示一个正常的观察,和一个值接近1显示异常。

    更多关于

    全部折叠

    与世隔绝的森林

    隔离森林算法[1]孤立异常检测异常的使用一个正常点的孤立树。

    iforest函数构建一个隔离森林(合奏的孤立树)训练观察和检测异常值(训练数据中的异常)。每个孤立树是训练的一个子集训练观察,没有更换取样。iforest增加一个孤立树,选择分离变量和随机分割位置,直到每一个观察土地在另一个叶子节点的一个子集。异常很少,不同;因此,异常的土地在一个单独的叶子节点靠近根节点和有一个短的路径长度(从根节点到叶子节点的距离)比正常点。函数识别异常值使用异常分数定义基于平均路径长度超过所有孤立树。

    isanomaly函数使用一个训练有素的隔离森林来检测异常数据。新奇检测(检测异常在新数据与未被污染的训练数据),你可以训练一个隔离森林与未被污染的训练数据(数据没有异常值),用它来检测异常的新数据。对于每个新数据的观察,发现函数的平均路径长度到达一个叶子节点从根节点在森林训练隔离,并返回一个异常标识符和分数。

    更多细节,请参阅异常检测与隔离森林

    异常分数

    隔离森林算法计算异常分数年代(x)的观察x通过规范化路径长度h(x):

    年代 ( x ) = 2 E ( h ( x ) ] c ( n ) ,

    在哪里E(h(x)]平均路径长度超过所有孤立树隔离森林,然后呢c(n)成功搜索的平均路径长度在一个二叉搜索树的n观察。

    • 比分接近1E(h(x)]接近0。因此,一个分数值接近1显示异常。

    • 比分接近0E(h(x)]方法n- 1。同时,比分接近0.5时E(h(x)]方法c(n)。因此,一个分数值小于0.5,接近0表示正常点。

    算法

    isanomaly认为,(空字符向量),”“(空字符串),<失踪>,<定义>资源描述X缺失值。

    • isanomaly不使用观察所有缺失值和分配1观测的异常分数。

    • isanomaly使用观察一些缺失值找到分裂这些观测变量的有效值。

    引用

    [1],f . T。,K. M. Ting, and Z. Zhou. "Isolation Forest,"2008第八届IEEE国际会议数据挖掘。比萨,意大利,2008年,页413 - 422。

    扩展功能

    介绍了R2021b