rrcforest
语法
描述
使用rrcforest
函数以适应鲁棒随机森林减少异常值检测和新奇检测模型。
异常值检测(检测异常的训练数据)——使用输出参数
特遣部队
的rrcforest
在训练数据异常识别。新奇检测(检测异常在新数据与未被污染的训练数据),创建一个
RobustRandomCutForest
模型对象通过未被污染的训练数据(数据没有异常值)rrcforest
。检测异常新数据通过对象和新的数据对象的功能isanomaly
。
返回一个森林
= rrcforest (资源描述
)RobustRandomCutForest
为预测表中的数据模型对象资源描述
。
指定选项使用一个或多个名称参数除了任何输入参数组合在前面的语法。例如,指定森林
= rrcforest (___,名称=值
)
异常处理10%的训练数据。ContaminationFraction
= 0.1
例子
检测异常值
检测异常值(在训练数据异常)使用rrcforest
函数。
加载示例数据集NYCHousing2015
。
负载NYCHousing2015
数据集包括10变量信息属性的销售在2015年在纽约。显示一个总结的数据集。
总结(NYCHousing2015)
变量:区:91446 x1双重价值:1分钟3马克斯5社区中位数:91446 x1单元阵列的特征向量BUILDINGCLASSCATEGORY: 91446 x1单元阵列的特征向量RESIDENTIALUNITS: 91446 x1双重价值:最小值0 8759 Max COMMERCIALUNITS中位数:91446 x1双重价值:最小值0最大612 LANDSQUAREFEET: 91446 x1双重价值:最小值0 1700 Max 2.9306 e + 07 GROSSSQUAREFEET中位数:91446 x1双重价值:最小值0 1056 Max 8.9422 e + 06 YEARBUILT中位数:91446 x1双重价值:最小值0 1939 Max 2016 SALEPRICE中位数:91446 x1双重价值:最小0值3.3333 e + 05年最大4.1111 e + 09 SALEDATE: x1 datetime值:91446分钟01 - 2015年1月- 2015位数09年7月- Max 31 - 12月- 2015
的SALEDATE
列是datetime
数组,这是不支持的金宝apprrcforest
。创建列的月和日数据datetime
值,然后删除SALEDATE
列。
[~,NYCHousing2015.MM NYCHousing2015。DD] = ymd (NYCHousing2015.SALEDATE);NYCHousing2015。SALEDATE = [];
列区
,社区
,BUILDINGCLASSCATEGORY
包含分类预测。显示类别的分类预测的数量。
长度(独特(NYCHousing2015.BOROUGH))
ans = 5
长度(独特(NYCHousing2015.NEIGHBORHOOD))
ans = 254
长度(独特(NYCHousing2015.BUILDINGCLASSCATEGORY))
ans = 48
与64多个类别,类别变量rrcforest
函数使用一个近似分割方法,该方法可以减少鲁棒随机森林减少模型的准确性。删除社区
列,其中包含254个类别的类别变量。
NYCHousing2015。社区=(];
火车一个健壮的随机森林模型NYCHousing2015
。指定的比例异常的训练观察为0.1,并指定第一个变量(区
)作为分类预测。第一个变量是一个数值数组,所以rrcforest
假设这是一个连续变量,除非你指定变量作为分类变量。
rng (“默认”)%的再现性(Mdl, tf,分数)= rrcforest (NYCHousing2015,…ContaminationFraction = 0.1, CategoricalPredictors = 1);
Mdl
是一个RobustRandomCutForest
模型对象。rrcforest
还返回异常指标(特遣部队
)和异常分数(分数
训练数据)NYCHousing2015
。
画一个柱状图的分数值。创建一个垂直线的分数阈值对应于指定的分数。
直方图(分数)参照线(Mdl.ScoreThreshold,“r -”,(“阈值”Mdl.ScoreThreshold])
如果你想确定异常污染有不同的分数(例如,0.01),你可以训练一个新的鲁棒随机森林模型。
rng (“默认”)%的再现性(newMdl newtf,分数)= rrcforest (NYCHousing2015,…ContaminationFraction = 0.01, CategoricalPredictors = 1);
如果你想确定异常有不同的分数阈值(例如,65),你可以通过RobustRandomCutForest
模型对象,训练数据,和一个新的阈值isanomaly
函数。
[newtf,分数]= isanomaly (Mdl、NYCHousing2015 ScoreThreshold = 65);
注意,改变污染分数或分数阈值变化异常指标,并且不影响异常的分数。因此,如果你不想计算异常分数再次利用rrcforest
或isanomaly
,您可以获得一个新的使用现有的评分值异常指标。
改变训练数据中的异常现象的一部分0.01
。
newContaminationFraction = 0.01;
找到一个新的分数阈值使用分位数
函数。
1-newContaminationFraction newScoreThreshold =分位数(分数)
newScoreThreshold = 63.2642
获得一个新的异常指标。
newtf = > newScoreThreshold得分;
发现新奇事物
创建一个RobustRandomCutForest
模型对象未被污染的训练观察使用rrcforest
函数。然后检测小礼品(新数据异常)通过对象和新的数据对象的功能isanomaly
。
1994年的人口普查数据加载存储census1994.mat
。数据集包含了人口数据来自美国人口普查局预测一个人是否使每年超过50000美元。
负载census1994
census1994
包含了训练数据集adultdata
和测试数据集成人
。
假设adultdata
不包含异常值。火车一个健壮的随机森林模型adultdata
。指定StandardizeData
作为真正的
标准化的输入数据。
rng (“默认”)%的再现性[Mdl, tf, s] = rrcforest (adultdata StandardizeData = true);
Mdl
是一个RobustRandomCutForest
模型对象。rrcforest
还返回异常指标特遣部队
和异常分数年代
的训练数据adultdata
。如果你不指定ContaminationFraction
名称参数值大于0,rrcforest
对待所有正常训练观察观察,这意味着所有的值特遣部队
是逻辑0 (假
)。这个函数设置分数阈值最大的分数值。显示阈值。
Mdl.ScoreThreshold
ans = 86.5315
发现异常成人
通过训练有素的鲁棒随机森林模型。因为你指定的StandardizeData = true
当你训练模型,isanomaly
函数标准化输入数据通过使用预测手段和训练数据存储在的标准差μ
和σ
属性,分别。
[tf_test, s_test] = isanomaly (Mdl,成人);
的isanomaly
函数的作用是:返回异常指标tf_test
和分数s_test
为成人
。默认情况下,isanomaly
确定观测分数高于阈值(Mdl.ScoreThreshold
)异常。
创建直方图异常分数年代
和s_test
。创建一个垂直线阈值的异常分数。
直方图(年代,规范化=“概率”)举行在直方图(s_test正常化=“概率”)参照线(Mdl.ScoreThreshold“r -”,加入([“阈值”Mdl.ScoreThreshold]))传说(“训练数据”,“测试数据”位置=“西北”)举行从
显示异常的观测指标的测试数据。
找到(tf_test)
ans = 3541
的异常分数分布测试数据与训练数据,isanomaly
检测到少量的测试数据与异常默认阈值。
放大的异常和阈值附近的观察。
xlim ([92]) ylim (0.001 [0])
您可以指定一个不同的阈值使用ScoreThreshold
名称-值参数。例如,看到的指定异常分数阈值。
输入参数
资源描述
- - - - - -预测数据
表
预测数据,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
使用变量的一个子集资源描述
通过使用,指定变量PredictorNames
名称-值参数。
数据类型:表
X
- - - - - -预测数据
数字矩阵
预测数据,指定为一个数字矩阵。每一行的X
对应于一个观察,每一列对应一个预测变量。
您可以使用PredictorNames
名称-值参数分配预测变量的名称X
。
数据类型:单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
例子:NumLearners = 50, NumObservationsPerLearner = 100
指定培训一个健壮的随机森林减少模型使用50每棵树的树和100年的观测结果。
CategoricalPredictors
- - - - - -列表的分类预测
向量的正整数|逻辑向量|字符矩阵|字符串数组|单元阵列的特征向量|“所有”
分类预测列表,该表中指定的值。
价值 | 描述 |
---|---|
向量的正整数 | 向量中的每个条目是一个索引值表明相应的预测分类。索引值介于1和 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行是一个预测变量的名字。名称必须匹配的条目PredictorNames 。垫的名字与额外的空格字符矩阵的每一行有相同的长度。 |
字符串数组或单元阵列的特征向量 | 数组中的每个元素是一个预测变量的名字。名称必须匹配的条目PredictorNames 。 |
“所有” |
所有预测都直言。 |
默认情况下,如果预测数据表(资源描述
),rrcforest
假设变量是直言如果它是一个逻辑向量,无序分类向量,字符数组,字符串数组或单元阵列特征向量。如果预测数据是一个矩阵(X
),rrcforest
假设所有的预测都是连续的。识别任何其他预测分类预测,通过使用指定它们CategoricalPredictors
名称-值参数。
与64多个类别,类别变量rrcforest
函数使用一个近似分割方法,该方法可以减少模型的准确性。
例子:CategoricalPredictors = "所有"
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
CollusiveDisplacement
- - - - - -共谋的位移计算方法
“最大”
(默认)|“平均”
共谋的位移计算方法,指定为“最大”
或“平均”
。
的rrcforest
函数发现的最大变化“最大”
)或平均变化(“平均”
)每棵树的模型复杂,计算每个观测共谋的位移(异常分数)。有关详细信息,请参见异常分数。
例子:CollusiveDisplacement =“平均”
数据类型:字符
|字符串
ContaminationFraction
- - - - - -部分训练数据的异常
0(默认)|数字标量在[0,1]
分数异常的训练数据,指定为数字标量范围[0,1]。
如果
ContaminationFraction
值为0(默认)rrcforest
对待所有正常训练观察观察,并设置分数阈值(ScoreThreshold
属性值的森林
)的最大价值分数
。如果
ContaminationFraction
值范围内(0,1),然后rrcforest
确定阈值,函数检测培训的指定分数观测异常。
例子:ContaminationFraction = 0.1
数据类型:单
|双
NumLearners
- - - - - -健壮的随机砍树
One hundred.(默认)|正整数标量
数量的鲁棒随机砍树(削减健壮的随机森林模型),指定为一个正整数标量。
例子:NumLearners = 50
数据类型:单
|双
NumObservationsPerLearner
- - - - - -数量的观察每个健壮的随机砍树
分钟(N, 256)
在哪里N
是训练观察的数量吗(默认)|正整数系数大于或等于3
数量的观察从每个健壮的不重复训练数据随机砍树(树的健壮的随机森林减少模型),指定为一个正整数常数大于或等于3。
例子:NumObservationsPerLearner = 100
数据类型:单
|双
PredictorNames
- - - - - -预测变量的名字
字符串数组独特的名字|单元阵列独特的特征向量
预测变量名称,指定的唯一名称的字符串数组或单元阵列独特的特征向量。的功能PredictorNames
取决于你如何提供预测数据。
如果你提供
资源描述
,那么你可以使用PredictorNames
指定使用哪个预测变量。也就是说,rrcforest
只使用的预测变量PredictorNames
。PredictorNames
必须是一个子集的Tbl.Properties.VariableNames
。默认情况下,
PredictorNames
包含所有预测变量的名称资源描述
。
如果你提供
X
,那么你可以使用PredictorNames
指定名称的预测变量X
。名字的顺序
PredictorNames
必须对应的列顺序X
。也就是说,PredictorNames {1}
的名字是X (: 1)
,PredictorNames {2}
的名字是X (:, 2)
,等等。同时,大小(X, 2)
和元素个数(PredictorNames)
必须是相等的。默认情况下,
PredictorNames
是{x1, x2,…}
。
例子:PredictorNames = [" SepalLength”“SepalWidth”“PetalLength”“PetalWidth”]
数据类型:字符串
|细胞
UseParallel
- - - - - -国旗并行运行
假
(默认)|真正的
国旗并行运行,指定为真正的
或假
。如果您指定UseParallel = true
,rrcforest
函数执行为
通过循环迭代parfor
。并行循环运行时并行计算工具箱™。
例子:UseParallel = true
数据类型:逻辑
输出参数
森林
——训练健壮的随机森林模型
RobustRandomCutForest
模型对象
训练有素的鲁棒随机森林模型,作为一个返回RobustRandomCutForest
模型对象。
您可以使用对象的功能isanomaly
与森林
在新的数据发现异常。
特遣部队
——异常指标
逻辑列向量
异常指标,作为一个逻辑返回列向量。一个元素的特遣部队
是真正的
当观察相应的行资源描述
或X
是一个异常,假
否则。特遣部队
一样的长度吗资源描述
或X
。
rrcforest
标识的观察与分数
高于阈值(ScoreThreshold
属性值的森林
)异常。函数确定阈值检测指定的分数(ContaminationFraction
名称-值参数)的训练观察异常。
更多关于
鲁棒随机森林减少
鲁棒随机森林算法[1]分类点作为一个正常点的或反常的基于模型的变化引入的复杂性。类似于与世隔绝的森林算法的随机森林算法构建一个整体的树木。这两个算法的差异表现在他们在树上选择一个分裂变量以及它们如何定义异常分数。
的rrcforest
函数创建一个健壮的随机森林减少模型(合奏的鲁棒随机砍树)训练观察和检测异常值(训练数据中的异常)。每棵树的一个子集训练训练观察如下:
rrcforest
吸引不重复样本训练观察的每棵树。rrcforest
生长树通过选择分裂变量比例变量的范围,并选择随机分割的位置一致。一直持续到每个样本函数达到一个单独的每棵树的叶子节点。
使用范围信息选择分裂变量使得算法健壮的无关变量。
描述异常容易,但是要描述剩余的数据更加困难。因此,向模型添加异常增加模型的复杂性森林模型[1]。的rrcforest
函数识别异常值使用异常分数定义基于变化模型的复杂性。
的isanomaly
函数使用一个训练有素的鲁棒随机森林模型来检测异常数据。新奇检测(检测异常在新数据与未被污染的训练数据),你可以训练一个健壮的随机森林模型与未被污染的训练数据(数据没有异常值),用它来检测异常的新数据。对于每一个新数据的观察,发现功能对应的每棵树的叶子节点,计算模型的复杂性的变化引入的叶节点,并返回一个异常指标和评分。
异常分数
鲁棒随机森林削减算法使用共谋的位移作为一个异常分数。的共谋的位移的一个点x显示的贡献x模型的复杂性森林模型。小正的异常分数值表示一个正常的观察,和一个大正值显示异常。
中定义的[1],模型的复杂性|米(T)|树T路径长度的总和(从根节点到叶子节点)在训练数据中所有点吗Z。
在哪里f(y,Z,T)的深度是y在树T。的位移x定义显示预期的变化模型引入的复杂性x。
在哪里T '是一棵树Z——{x}。Disp
(x,Z)是预期的数量的分叶节点的兄弟节点包含吗x。这个定义并不健壮的副本或复本,并可能导致异常掩蔽。为了避免异常掩蔽,健壮的随机森林算法使用共谋的位移CoDisp
,一组C包括x的能力x。
在哪里T”是一棵树Z- - - - - -C,|C|点的子树的数量吗T为C。
默认值为CollusiveDisplacement
名称-值参数rrcforest
是“最大”
。对于每一个树,默认情况下,软件发现的一组C最大化的比率Disp
(x,C)/ |C|叶子节点的遍历x根节点,所述[2]。如果您指定
,软件计算的平均每棵树的比率,并使用平均值计算共谋的位移值。CollusiveDisplacement
=“平均”
算法
rrcforest
认为南
,”
(空字符向量),”“
(空字符串),<失踪>
,<定义>
值资源描述
和南
值X
缺失值。
rrcforest
使用观察与缺失值找到分裂这些观测变量的有效值。函数可能将这些观察一个分支节点,不是一个叶子节点。然后rrcforest
计算比率(Disp
(x,C)/ |C|),遍历每个分支节点到根节点的树。函数的地方观察与根节点的所有缺失值。因此,比率和异常分数成为训练观察每棵树的数量,这是训练的最大可能的异常分数健壮的随机森林模型。您可以指定数量的训练观察每棵树使用NumObservationsPerLearner
名称-值参数。
引用
[1]·古Sudipto, n . Mishra g·罗伊,o . Schrijvers。“鲁棒随机森林异常检测基于流,”美国第33机器学习国际会议48(2016年6月):2712 - 21所示。
[2]Bartos,马修·D。,一个。μllapudi, and S. C. Troutman. "rrcf: Implementation of the Robust Random Cut Forest Algorithm for Anomaly Detection on Streams."开源软件杂志》上4,没有。35 (2019):1336。
扩展功能
自动并行支持金宝app
加速代码通过自动运行并行计算使用并行计算工具箱™。
并行运行,设置UseParallel
名称-值参数真正的
在调用这个函数。
关于并行计算的更一般的信息,请参阅MATLAB函数自动并行支持运行金宝app(并行计算工具箱)。
版本历史
介绍了R2023a
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国家网站不优化的访问你的位置。