LocalOutlierFactor
描述
使用一个局部离群因子模型对象LocalOutlierFactor
异常检测。
创建
创建一个LocalOutlierFactor
通过使用对象lof
函数。
属性
X
- - - - - -预测
数字矩阵|表
这个属性是只读的。
预测用来训练当地的离群值因子模型,指定为一个数字矩阵或表。每一行的X
对应于一个观察,每一列对应一个变量。
BucketSize
- - - - - -在每个叶节点最大数量的数据点
正整数|[]
这个属性是只读的。
最大数量的每个叶节点的数据点Kd-tree,指定为一个正整数。
该属性时是有效的SearchMethod
是“kdtree”
。如果SearchMethod
是“详尽”
,BucketSize
值是空的([]
)。
CategoricalPredictors
- - - - - -分类预测指标
向量的正整数|[]
这个属性是只读的。
分类预测指标,指定为一个向量的正整数。CategoricalPredictors
包含索引值表明相应的预测分类。索引值介于1和p
,在那里p
预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([]
)。
ContaminationFraction
- - - - - -部分训练数据的异常
数字标量范围[0,1]
这个属性是只读的。
分数异常的训练数据,指定为数字标量范围[0,1]
。
如果
ContaminationFraction
值为0,那么lof
对待所有正常训练观察观察,并设置分数阈值(ScoreThreshold
属性值)的最大异常分数值训练数据。如果
ContaminationFraction
值范围内(0
,1
],然后lof
确定阈值(ScoreThreshold
属性值),这样的功能检测指定的分数训练观察异常。
距离
- - - - - -距离度量
特征向量
这个属性是只读的。
距离度量,指定为一个特征向量。
如果所有的预测变量是连续变量(数字),然后
距离
值可以是其中一个距离度量。价值 描述 “欧几里得”
欧氏距离
“mahalanobis”
Mahalanobis距离,距离使用中存储的协方差矩阵
DistParameter
财产。闵可夫斯基的
闵可夫斯基距离,距离使用指数的值存储在
DistParameter
财产。“chebychev”
Chebychev距离(最大坐标差异)
“cityblock”
城市街区的距离
“相关”
1 -样本之间的相关性观察(视为序列值)
的余弦
1 -之间的夹角的余弦值观察(视为向量)
“枪兵”
1 -样本之间的斯皮尔曼等级相关的观察(视为序列值)
如果所有的预测变量是分类变量,然后
距离
值可以是其中一个距离度量。价值 描述 “汉明”
汉明距离,协调不同的百分比
“jaccard”
1 - Jaccard系数,非零坐标不同的百分比
各种距离度量的更多信息,请参阅距离度量。
IncludeTies
- - - - - -系包含国旗
假
或0
|真正的
或1
这个属性是只读的。
系包含标志指示是否LocalOutlierFactor
包括所有的邻居距离值等于kth最小距离,指定为逻辑0
(假
)或1
(真正的
)。如果IncludeTies
是真正的
,LocalOutlierFactor
包括所有的邻居。否则,LocalOutlierFactor
包括确切的k邻居。
NumNeighbors
- - - - - -许多最近的邻居
正整数的值
这个属性是只读的。
最近的邻居X
用于计算局部离群因子值,指定为一个正整数的值。
PredictorNames
- - - - - -预测变量的名字
单元阵列的特征向量
这个属性是只读的。
预测变量名称,指定为一个单元阵列的特征向量。元素的顺序PredictorNames
对应的顺序预测的名字出现在训练数据。
ScoreThreshold
- - - - - -阈值异常分数
负的标量
这个属性是只读的。
阈值的异常分数用来识别异常在训练数据,指定为负的标量。
软件识别观测与异常分数高于阈值异常。
的
lof
功能决定了阈值检测指定的分数(ContaminationFraction
属性)的训练观察异常。
的
isanomaly
目标函数使用ScoreThreshold
属性值的默认值ScoreThreshold
名称-值参数。
SearchMethod
- - - - - -最近邻搜索方法
“kdtree”
|“详尽”
这个属性是只读的。
最近邻搜索方法,指定为“kdtree”
或“详尽”
。
对象的功能
isanomaly |
使用当地发现异常数据离群值的因素 |
例子
检测异常值
检测异常值(在训练数据异常)使用lof
函数。
加载示例数据集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
删除非数字变量NYCHousing2015
。的数据类型区
变量是翻倍,但它是一个类别变量说明财产所在地的区。删除区
变量。
NYCHousing2015 = NYCHousing2015 (:, vartype (“数字”));NYCHousing2015。区= [];
培训当地的离群值因子模型NYCHousing2015
。指定的比例异常的训练观察为0.01。
(Mdl, tf,分数)= lof (NYCHousing2015 ContaminationFraction = 0.01);
Mdl
是一个LocalOutlierFactor
对象。lof
还返回异常指标(特遣部队
)和异常分数(分数
训练数据)NYCHousing2015
。
画一个柱状图的分数值。创建一个垂直线的分数阈值对应于指定的分数。
h =直方图(分数,NumBins = 50);h.Parent。YScale =“日志”;参照线(Mdl.ScoreThreshold“r -”,(“阈值”Mdl.ScoreThreshold])
如果你想确定异常污染有不同的分数(例如,0.05),你可以训练一个新的局部离群因子模型。
[newMdl newtf,分数]= lof (NYCHousing2015, ContaminationFraction = 0.05);
注意,改变污染分数变化异常指标,并且不影响异常分数。因此,如果你不想计算异常分数再次利用lof
,您可以获得一个新的异常指标与现有的评分值。
改变训练数据中的异常的分数为0.05。
newContaminationFraction = 0.05;
找到一个新的分数阈值使用分位数
函数。
1-newContaminationFraction newScoreThreshold =分位数(分数)
newScoreThreshold = 6.7493
获得一个新的异常指标。
newtf = > newScoreThreshold得分;
发现新奇事物
创建一个LocalOutlierFactor
未被污染的培训对象观察使用lof
函数。然后检测小礼品(新数据异常)通过对象和新的数据对象的功能isanomaly
。
1994年的人口普查数据加载存储census1994.mat
。数据集由人口数据来自美国人口普查局预测一个人是否使每年超过50000美元。
负载census1994
census1994
包含了训练数据集adultdata
和测试数据集成人
。预测数据必须连续或所有分类培训LocalOutlierFactor
对象。删除非数字变量adultdata
和成人
。
adultdata = adultdata (:, vartype (“数字”));成人=成人(:,vartype (“数字”));
培训当地的离群值因子模型adultdata
。假设adultdata
不包含异常值。
[Mdl, tf, s] = lof (adultdata);
Mdl
是一个LocalOutlierFactor
对象。lof
还返回异常指标特遣部队
和异常分数年代
的训练数据adultdata
。如果你不指定ContaminationFraction
名称参数值大于0,lof
对待所有正常训练观察观察,这意味着所有的值特遣部队
是逻辑0 (假
)。这个函数设置分数阈值最大的分数值。显示阈值。
Mdl.ScoreThreshold
ans = 28.6719
发现异常成人
通过训练当地异常因素模型。
[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
名称-值参数。例如,看到的指定异常分数阈值。
更多关于
局部离群因子
当地的离群值因子(LOF)算法检测异常基于观察的相对密度对周围的邻居。
该算法找到了k最近的邻居的观察和计算当地的可达性密度的观察和邻国。当地的离群值的因素是平均密度比观察到它的邻居。也就是说,当地的异常因素的观察p是
在哪里
上k(·)是一个观察的地方可达性密度。
Nk(p)代表了k最近的邻居的观察p。您可以指定
IncludeTies
名称-值参数为真正的
包括所有的邻居的距离值相等kth最小距离,或指定假
包括确切的k邻居。默认的IncludeTies
的价值lof
是假
更高效的性能。请注意,该算法[1]使用所有的邻居。|Nk(p)|观察的数量吗Nk(p)。
正常观测,局部离群因子值小于或接近于1,表明当地的可达性密度的观察是高于或相似的邻国。局部离群因子值大于1也可以显示出异常。的ContaminationFraction
的观点lof
和ScoreThreshold
的观点isanomaly
控制局部离群因子的阈值。
该算法基于距离可达性措施的密度。距离可达性的观察p对观察o被定义为
在哪里
dk(o)是kth最小距离之间的距离观察o它的邻国。
d(p,o)是观察之间的距离p和观察o。
该算法使用了可达性距离减少统计波动d(p,o)靠近观察o。
当地的可达性密度的观察p是平均可达性的倒数距离观察吗p它的邻国。
可以无限密度值如果副本的数量大于邻居的数量(k)。因此,如果训练数据包含重复的,lof
和isanomaly
函数使用加权的局部离群值因子(WLOF)算法。该算法计算加权当地异常因素使用加权密度可达性(wlrd)。
在哪里
和w(o)观察是副本的数量吗o在训练数据。后计算权重值,该算法将每组重复观测。
距离度量
距离度量是一个函数,定义了两个观测之间的距离。LocalOutlierFactor
金宝app支持各种距离指标连续变量和分类变量。
给定一个mx——- - - - - -n数据矩阵X,这被视为mx(1 -n)行向量x1,x2、……xmx和一个我的——- - - - - -n数据矩阵Y,这被视为我的(1 -n)行向量y1,y2、……y我的,各种向量之间的距离x年代和yt定义如下:
距离度量连续变量(数字)
欧氏距离
的欧几里得距离是一个特例闵可夫斯基距离,p= 2。
Mahalanobis距离
在哪里C协方差矩阵。
城市街区的距离
城市街区的距离是一个特例的闵可夫斯基距离,p= 1。
闵可夫斯基距离
的特殊情况p= 1闵可夫斯基距离给出了城市街区距离。的特殊情况p= 2闵可夫斯基距离给出了欧氏距离。的特殊情况p=∞闵可夫斯基距离给Chebychev距离。
Chebychev距离
距离Chebychev闵可夫斯基距离是一个特例,在哪里p=∞。
余弦距离
相关距离
在哪里
和
斯皮尔曼的距离
在哪里
距离度量的分类变量
汉明距离
Jaccard距离
提示
您可以使用可解释性特性,比如
石灰
,沙普利
,partialDependence
,plotPartialDependence
,解释如何预测导致的异常分数。定义一个自定义函数,它返回异常分数,然后通过自定义函数的可解释性的功能。例如,看到的指定模型使用函数处理。
引用
[1]Breunig,马库斯·M。,et al. “LOF: Identifying Density-Based Local Outliers.”学报2000年ACM SIGMOD国际会议管理的数据,2000年,页93 - 104。
版本历史
介绍了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国家网站不优化的访问你的位置。