原文链接: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 机器学习分类预测银行客户散失