OneClassSVM
描述
使用一个看到下面成了一个支持向量金宝app机模型对象OneClassSVM
异常值检测和新奇检测。
创建
创建一个OneClassSVM
通过使用对象ocsvm
函数。
属性
CategoricalPredictors
- - - - - -分类预测指标
向量的正整数|[]
这个属性是只读的。
分类预测指标,指定为一个向量的正整数。CategoricalPredictors
包含索引值表明相应的预测分类。索引值介于1和p
,在那里p
预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([]
)。
ContaminationFraction
- - - - - -部分训练数据的异常
数字标量范围[0,1]
这个属性是只读的。
分数异常的训练数据,指定为数字标量范围[0,1]
。
如果
ContaminationFraction
值为0,那么ocsvm
对待所有正常训练观察观察,并设置分数阈值(ScoreThreshold
属性值)的最大异常分数值训练数据。如果
ContaminationFraction
值范围内(0
,1
],然后ocsvm
确定阈值(ScoreThreshold
属性值),这样的功能检测指定的分数训练观察异常。
KernelScale
- - - - - -内核尺度参数
积极的标量
这个属性是只读的。
内核尺度参数,指定为一个积极的标量。
λ
- - - - - -正则化项的力量
负的标量
这个属性是只读的。
正则化项,指定为负的标量。
NumExpansionDimensions
- - - - - -数量的扩大空间的维度
正整数
这个属性是只读的。
扩大空间的维度,指定为一个正整数。
ObjectiveValue
- - - - - -目标函数值
标量
这个属性是只读的。
值目标函数的内存有限Broyden-Fletcher-Goldfarb-Shanno (LBFGS)支持向量机求解最小化解决看到下面成了问题,指定为一个标量。
PredictorNames
- - - - - -预测变量的名字
单元阵列的特征向量
这个属性是只读的。
预测变量名称,指定为一个单元阵列的特征向量。元素的顺序PredictorNames
对应的顺序预测的名字出现在训练数据。
ScoreThreshold
- - - - - -阈值异常分数
数字标量范围(负无穷到正无穷)
这个属性是只读的。
阈值的异常分数用来识别异常在训练数据,指定为一个数字标量范围(负无穷到正无穷)
。
软件识别观测与异常分数高于阈值异常。
的
ocsvm
功能决定了阈值检测指定的分数(ContaminationFraction
属性)的训练观察异常。
的
isanomaly
目标函数使用ScoreThreshold
属性值的默认值ScoreThreshold
名称-值参数。
对象的功能
isanomaly |
使用看到下面成了发现异常数据支持向量机(SVM)金宝app |
例子
检测异常值
检测异常值(在训练数据异常)使用ocsvm
函数。
加载示例数据集NYCHousing2015
。
负载NYCHousing2015
数据集包括10变量信息属性的销售在2015年在纽约。显示一个总结的数据集。
总结(NYCHousing2015)
双重价值:1分钟3马克斯5社区中位数:91446×1单元阵列的特征向量BUILDINGCLASSCATEGORY: 91446×1单元阵列的特征向量RESIDENTIALUNITS: 91446×1双值:最小值0 8759 Max COMMERCIALUNITS中位数:91446×1双值:最小值0最大612 LANDSQUAREFEET: 91446×1双值:最小值0 1700 Max 2.9306 e + 07 GROSSSQUAREFEET中位数:91446×1双值:最小值0 1056 Max 8.9422 e + 06 YEARBUILT中位数:91446×1双值:0值1939 Max 2016分钟SALEPRICE: 91446×1双值:最小0值3.3333 e + 05年最大4.1111 e + 09 SALEDATE: 91446×1 datetime值:Min 01 - 2015年1月- 2015位数09年7月- Max 31 - 12月- 2015
的SALEDATE
列是datetime
数组,这是不支持的金宝appocsvm
。创建列的月和日数据datetime
值,删除SALEDATE
列。
[~,NYCHousing2015.MM NYCHousing2015。DD] = ymd (NYCHousing2015.SALEDATE);NYCHousing2015。SALEDATE = [];
火车看到下面成了一个支持向量机模型NYCHousing2015
。指定的比例异常的训练观察为0.1,并指定第一个变量(区
)作为分类预测。第一个变量是一个数值数组,所以ocsvm
假设这是一个连续变量,除非你指定变量作为分类变量。此外,指定StandardizeData
作为真正的
输入数据标准化,因为预测在很大程度上不同的尺度。集KernelScale
来“汽车”
这软件选择一个适当的内核使用启发式程序尺度参数。
rng (“默认”)%的再现性(Mdl, tf,分数)= ocsvm (NYCHousing2015 ContaminationFraction = 0.1,…CategoricalPredictors = 1, StandardizeData = true,…KernelScale =“汽车”);
Mdl
是一个OneClassSVM
对象。ocsvm
还返回异常指标(特遣部队
)和异常分数(分数
训练数据)NYCHousing2015
。
画一个柱状图的分数值。创建一个垂直线的分数阈值对应于指定的分数。
直方图(分数)参照线(Mdl.ScoreThreshold,“r -”,(“阈值”Mdl.ScoreThreshold])
如果你想确定异常污染有不同的分数(例如,0.01),你可以训练一个新的看到下面成了一个支持向量机模型。
rng (“默认”)%的再现性(newMdl newtf,分数)= ocsvm (NYCHousing2015,…ContaminationFraction = 0.01, CategoricalPredictors = 1,…KernelScale =“汽车”);
如果你想确定异常有不同的分数阈值(例如,-0.7),你可以通过OneClassSVM
对象,训练数据,和一个新的阈值isanomaly
函数。
[newtf,分数]= isanomaly (Mdl、NYCHousing2015 ScoreThreshold = -0.7);
注意,改变污染分数或分数阈值变化异常指标,并且不影响异常的分数。因此,如果你不想计算异常分数再次利用ocsvm
或isanomaly
,您可以获得一个新的异常指标与现有的评分值。
改变训练数据中的异常的分数为0.01。
newContaminationFraction = 0.01;
找到一个新的分数阈值使用分位数
函数。
1-newContaminationFraction newScoreThreshold =分位数(分数)
newScoreThreshold = -0.3745
获得一个新的异常指标。
newtf = > newScoreThreshold得分;
发现新奇事物
创建一个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 =“日志”;传奇(“训练数据”,“测试数据”位置=“北”)举行从
显示异常的观测指标的测试数据。
找到(tf_test)
ans = 0 x1空双列向量
的异常分数分布测试数据与训练数据,isanomaly
没有发现任何异常的测试数据默认阈值。您可以指定一个不同的阈值使用ScoreThreshold
名称-值参数。例如,看到的指定异常分数阈值。
更多关于
看到下面成了一个支持向量机
看到下面成了SVM、无人监督的支持向量机是一种用于异常检测算法。算法试图单独的数据从原点在转换后的高维空间预测指标。ocsvm
发现基于SVM的原始形式的决策边界与高斯核近似方法。
随机特性扩张
扩张的随机特性,如随机厨房水槽[1]或快餐[2],是一个计划的近似高斯内核内核分类算法用于大数据计算的有效方法。扩张随机特性是更实际的大数据的应用程序有大量训练集,但也可以应用于更小的数据集,适合在内存中。
内核的分类算法搜索最优超平面,分离后的数据分为两类映射到一个高维空间特性。不是线性可分的非线性特性在低维空间中可以分离扩展高维空间。所有的计算仅供超平面分类使用点积。下载188bet金宝搏你可以获得一个非线性分类模型代替点积x1x2”与非线性核函数 ,在那里x我是我(行向量)和观察φ(x我)是一个变换映射x我到一个高维空间(称为“内核技巧”)。然而,评估G(x1,x2)(格拉姆矩阵)每一对观测是计算昂贵的大数据集(大n)。
随机特性扩张计划找到一个随机变换,使其接近高斯点积的内核。也就是说,
在哪里T(x)地图x在 到一个高维空间( )。随机的厨房水槽计划使用随机变换
在哪里 是一个样本来自 和σ是一个内核规模。这个计划需要O(米p)计算和存储。
快餐方案引入了另一个随机的基础V而不是Z利用哈达玛矩阵结合高斯尺度矩阵。这个随机的基础上降低了计算成本O(米日志
p)并减少存储O(米)。
的ocsvm
函数使用随机特性的快餐计划扩张,并使用线性分类训练看到下面成了一个高斯内核分类模型。
引用
[1]拉希米,。,和B. Recht. “Random Features for Large-Scale Kernel Machines.”先进的神经信息处理系统。20卷,2008年,页1177 - 1184。
[2],Q。,T。Sarlós, and A. Smola. “Fastfood — Approximating Kernel Expansions in Loglinear Time.”30学报》国际会议上机器学习。3号卷28日,2013年,页244 - 252。
版本历史
介绍了R2022b
Beispiel offnen
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
MATLAB-Befehl
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。