关于算法:matlab使用分位数随机森林QRF回归树检测异常值

40次阅读

共计 1543 个字符,预计需要花费 4 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=22160 

这个例子展现了如何应用分位数随机林来检测异样值。分位数随机林能够检测到与给定 X 的 Y 的条件散布无关的异样值。

离群值是一些观测值,它的地位离数据集中的大多数其余观测值足够远,能够认为是异样的。离群观测的起因包含固有的变异性或测量误差。异样值显著影响预计和推断,因而检测它们决定是删除还是持重剖析十分重要。

为了演示异样值检测,此示例:
从具备异方差性的非线性模型生成数据,并模仿一些异样值。
成长回归树的分位数随机森林。
预计预测变量范畴内的条件四分位(Q1、Q2 和 Q3)和_四分位_距(IQR)。
将观测值与边界进行比拟,边界为 F1=Q1−1.5IQR 和 F2=Q3+1.5IQR。任何小于 F1 或大于 F2 的观测值都是异样值。

生成数据

从模型中生成 500 个观测值

在 0 ~ 4π 之间均匀分布,εt 约为 N(0,t+0.01)。将数据存储在表中。

rng('default'); % 为保障重复性
randsample(linspace(0,4*pi,1e6),n,true)';
epsilon = randn(n,1).*sqrt((t+0.01)); 

将五个观测值沿随机垂直方向挪动 90% 的值。

 numOut = 5;
Tbl.y(idx) + randsample([-1 1],numOut,true)'.*(0.9*Tbl.y(idx)); 

绘制数据的散点图并辨认异样值。

plot(Tbl.t,Tbl.y,'.');
plot(Tbl.t(idx),Tbl.y(idx),'*');
title('数据散点图');
legend('数据','模仿异样值','Location','NorthWest');

生成分位数随机森林

生成 200 棵回归树。

Tree(200,'y','regression');

返回是一个 TreeBagger 汇合。

预测条件四分位数和四分位数区间

应用分位数回归,预计 t 范畴内 50 个等距值的条件四分位数。

linspace(0,4*pi,50)';
quantile(pred,'Quantile');

`quartile 是一个 500 × 3 的条件四分位数矩阵。行对应于 t 中的观测值,列对应于概率。
在数据的散点图上,绘制条件均值和中值因变量。`

 plot(pred,[quartiles(:,2) meanY]);
legend('数据','模仿的离群值','中位数因变量','均匀因变量',... 

尽管条件均值和中位数曲线很靠近,但模仿的离群值会影响均值曲线。
计算条件 IQR、F1 和 F2。

 iqr = quartiles(:,3) - quartiles(:,1);
f1 = quartiles(:,1) - k*iqr;

k=1.5 意味着所有小于 f1 或大于 f2 的观测值都被认为是离群值,但这一阈值并不能与极其离群值相辨别。k 为 3 时,可确定极其离群值。

将观测后果与边界进行比拟

绘制察看图和边界。

 plot(Tbl.t,Tbl.y,'.');
legend('数据','模仿的离群值','F_1','F_2');
title('应用分位数回归的离群值检测') 

所有模仿的异样值都在 [F1,F2] 之外,一些观测值也在这个区间之外。


最受欢迎的见解

1.从决策树模型看员工为什么到职

2. R 语言基于树的办法:决策树,随机森林

3.python 中应用 scikit-learn 和 pandas 决策树

4.机器学习:在 SAS 中运行随机森林数据分析报告

5. R 语言用随机森林和文本开掘进步航空公司客户满意度

6.机器学习助推快时尚精准销售工夫序列

7.用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

8.python 机器学习:举荐零碎实现(以矩阵合成来协同过滤)

9.python 中用 pytorch 机器学习分类预测银行客户散失

正文完
 0