统计和机器学习工具箱™提供特定于模型的异常检测功能,可以在培训分类,回归或聚类模型后应用。例如,您可以使用这些对象函数来检测异常:
具体操作请参见功能参考页面。
通过使用培训随机林分类器TreeBagger
使用对象函数来检测培训数据中的异常值概要
。
训练随机森林分类器
加载电离层
数据集,其中包含雷达返回品质(Y
)和预测的数据(X
), 34个变量。雷达回波质量良好('G'
)或品质差(“b”
)。
负载电离层
火车随机森林分类器。存储禁止袋的信息以进行预测值重要性估算。
RNG(“默认”)再现性的百分比mdl_tb = treebagger(100,x,y,方法=“分类”,...Oobpredictorimportance =“上”);
Mdl_TB
是一个TreeBagger
用于分类的模型对象。TreeBagger
商店预计属性重要性估计OobpermutedPredictordeltaError
。
使用接近度检测离群值
方法检测训练数据中的离群值概要
函数。该函数根据训练的随机森林中一个观测值与其他观测值之间的平均接近平方计算离群值。
cmdl_tb = compact(mdl_tb);s_proximity = OutliEremeAleure(cmdl_tb,x,labels = y);
离群值度量的高值表明该观察结果是一个离群值。找到与第95个百分位对应的阈值,并使用isoutlier
函数。
[TF,~,U] = isoutlier(s_proximity,百分位数=[0 95]);
绘制离群值度量的直方图。在离群值处创建一条垂直线。
直方图(S_proximity)Xline(U,“r -”,加入([“阈值=”U]))标题(“离群值度量直方图”)
使用属性中由预测器重要性估计选择的两个最重要的特征来可视化观察值OobpermutedPredictordeltaError
。
[~, idx] = (Mdl_TB排序。OOBPermutedPredictorDeltaError,“下降”);tf_c =分类(tf,[0 1],[“正常点”“异常”]);g箭头(x(:,idx(1)),x(:,idx(2)),tf_c,“kr”,“。X”,[],“上”,...mdl_tb.predictornames(idx(1)),mdl_tb.predictornames(idx(2)))
再次培训分类器而没有异常值,并绘制异常值措施的直方图。
mdl_tb = treebagger(100,x(〜tf,:),y(〜tf),方法=“分类”);s_proximity = outlierMeasure (CMdl_TB X (~ TF,:),标签= Y (~ TF));直方图(s_proximity)标题(“消除异常值后的异常措施的直方图”)
通过使用培训判别分析模型fitcdiscr.
使用对象函数来检测培训数据中的异常值logp.
和泰姬陵
。
火车判别分析模型
加载费雪虹膜数据集。矩阵测定
包含150种不同的花的测量值。的变量物种
列出每朵花的物种。
负载渔民
使用整个数据集训练判别分析模型。
mdl = fitcdiscr(meas,speies,predictornames =...[“花萼长度”“萼片宽度”“花瓣长度”“瓣宽”]);
MDL.
是一个ClassificationDiscriminant
模型。
使用Log无条件概率密度检测异常值
计算培训数据的日志无条件概率密度。
s_logp = logp(mdl,meas);
密度值低,表示该观测值为离群值。
方法确定离群值的较低密度阈值isoutlier
函数。
[〜,l_logp] = isoullier(s_logp);
通过使用阈值来识别异常值。
TF_logp = s_logp < L_logp;
绘制密度值的直方图。在离群值处创建一条垂直线。
图直方图(s_logp)参照线(L_logp“r -”,加入([“阈值=”l_logp]))标题(“对数无条件概率密度直方图”)
为了比较法线点和异常点的观测值,利用gplotmatrix
函数。
tf_logp_c = patporical(tf_logp,[0 1],[“正常点”“异常”]);gplotmatrix(meas,[],tf_logp_c,“kr”,“。X”,[],[],[], Mdl.PredictorNames)
使用mahalanobis距离检测异常值
求训练数据到真实标签类均值的马氏距离的平方。
s_mahal = mahal(mdl,meas,classlabels = speies);
大距离值表示相应的观察是一个异常值。
确定与第95百分位数相对应的阈值,并通过使用识别异常值isoutlier
函数。
[tf_mahal,〜,u_mahal] = isoullier(s_mahal,百分位数= [0 95]);
绘制距离的直方图。在离群值处创建一条垂直线。
图直方图(s_mahal)参照线(U_mahal“-r”,加入([“阈值=”U_MAHAL]))标题(“Mahalanobis距离的直方图”)
将正态点与异常点的观测值进行比较gplotmatrix
函数。
TF_mahal_c = categorical(TF_mahal_c,[0 1],[“正常点”“异常”]);TF_mahal_c gplotmatrix(量,[],“kr”,“。X”,[],[],[], Mdl.PredictorNames)
概要
|玛哈尔(分类Discriminant)
|玛哈尔(GMDistribution)
|logp (ClassificationDiscriminant)
|logp(classificationnaivebayes)
|logp(increntmentalclassificaivebayes)
|isoutlier