主要内容

isanomaly

使用看到下面成了发现异常数据支持向量机(SVM)金宝app

自从R2022b

    描述

    例子

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

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

    例子

    特遣部队= isanomaly (___ScoreThreshold =scoreThreshold)指定阈值的异常分数使用任何输入参数组合在前面的语法。isanomaly确定观测分数scoreThreshold异常。

    (特遣部队,分数)= isanomaly (___)还返回一个异常分数范围内(负无穷到正无穷)为每一个观察资源描述X。负的分数值与大级显示正常的观察,和一个大正值显示异常。

    例子

    全部折叠

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

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

    负载census1994

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

    ocsvm不使用观察用缺失值。删除缺失值的数据集,以减少内存消耗,加快培训。

    adultdata = rmmissing (adultdata);成人= rmmissing(成人);

    支持向量机训练看到下面成了adultdata。假设adultdata不包含异常值。指定StandardizeData作为真正的标准化的输入数据,并设置KernelScale“汽车”让函数选择适当的内核使用启发式程序尺度参数。

    rng (“默认”)%的再现性(Mdl ~ s) = ocsvm (adultdata StandardizeData = true, KernelScale =“汽车”);

    Mdl是一个OneClassSVM对象。如果你不指定ContaminationFraction名称参数值大于0,ocsvm把所有训练观察正常观测。这个函数设置分数阈值最大的分数值。显示阈值。

    Mdl.ScoreThreshold
    ans = 0.0322

    发现异常成人通过训练看到下面成了一个支持向量机模型。因为你指定的StandardizeData = true当你训练模型,isanomaly函数标准化输入数据通过使用预测手段和训练数据存储在的标准差μσ属性,分别。

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

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

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

    h1 =直方图(年代,NumBins = 50,标准化=“概率”);持有h2 =直方图(s_test h1.BinEdges正常化=“概率”);参照线(Mdl.ScoreThreshold“r -”,加入([“阈值”h1.Parent Mdl.ScoreThreshold]))。YScale =“日志”;h2.Parent。YScale =“日志”;传奇(“训练数据”,“测试数据”位置=“北”)举行

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

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

    找到(tf_test)
    ans = 0 x1空双列向量

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

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

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

    负载census1994

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

    ocsvm不使用观察用缺失值。删除缺失值的数据集,以减少内存消耗,加快培训。

    adultdata = rmmissing (adultdata);成人= rmmissing(成人);

    火车看到下面成了一个支持向量机模型adultdata。指定StandardizeData作为真正的标准化的输入数据,并设置KernelScale“汽车”让函数选择适当的内核使用启发式程序尺度参数。

    rng (“默认”)%的再现性(Mdl ~,分数)= ocsvm (adultdata,StandardizeData = true, KernelScale =“汽车”);

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

    h =直方图(分数,NumBins = 50,标准化=“概率”);h.Parent。YScale =“日志”;参照线(Mdl.ScoreThreshold“r -”,加入([“阈值”Mdl.ScoreThreshold]))

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

    发现异常的测试数据使用SVM训练看到下面成了一个模型。使用不同的阈值从默认阈值训练模型时获得的。

    首先,确定分数阈值使用isoutlier函数。

    [~,~,U] = isoutlier(分数)
    U = -0.5342

    指定的值ScoreThreshold名称-值参数为U。因为你指定的StandardizeData作为真正的当你训练Mdl,isanomaly功能标准化新输入数据使用中存储的均值和标准差Mdl.MuMdl.Sigma,分别。

    [tf_test, scores_test] = isanomaly (Mdl、成人ScoreThreshold = U);h =直方图(scores_test NumBins = 50,标准化=“概率”);h.Parent。YScale =“日志”;参照线(U,“r -”,加入([“阈值”U]))

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

    输入参数

    全部折叠

    看到下面成了训练支持向量机模型,指定为一个OneClassSVM对象。

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

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

    数据类型:

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

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

    数据类型:|

    阈值的异常分数,指定为数字标量范围(负无穷到正无穷)isanomaly确定观测与分数高于阈值异常。

    默认值是ScoreThreshold属性值的Mdl

    例子:ScoreThreshold = 0.5

    数据类型:|

    输出参数

    全部折叠

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

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

    异常分数,作为一个数字列向量返回的值范围内(负无穷到正无穷)分数一样的长度吗资源描述X的每个元素分数包含一个观测的异常分数对应的行资源描述X。负的分数值与大级显示正常的观察,和一个大正值显示异常。

    版本历史

    介绍了R2022b