首页 > 其他分享 >matlab使用分位数随机森林(QRF)回归树检测异常值|附代码数据

matlab使用分位数随机森林(QRF)回归树检测异常值|附代码数据

时间:2023-09-28 16:33:44浏览次数:45  
标签:语言 QRF 模型 回归 位数 随机 matlab 决策树

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

最近我们被客户要求撰写关于分位数随机森林(QRF)回归树的研究报告,包括一些图形和统计输出。

这个例子展示了如何使用分位数随机林来检测异常值

分位数随机林可以检测到与给定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');

图片


点击标题查阅往期内容

图片

R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

生成分位数随机森林

生成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]之外,一些观测值也在这个区间之外。


图片

本文摘选  matlab使用分位数随机森林(QRF)回归树检测异常值  ,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化|数据分享
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler用决策树神经网络预测ST的股票
R语言中使用线性模型、回归决策树自动组合特征因子水平
R语言中自编基尼系数的CART回归决策树的实现
R语言用rle,svm和rpart决策树进行时间序列预测
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归分析
R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
如何用R语言在机器学习中建立集成模型?
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测在python 深度学习Keras中计算神经网络集成模型R语言ARIMA集成模型预测时间序列分析R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言基于Bootstrap的线性回归预测置信区间估计方法
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
matlab使用分位数随机森林(QRF)回归树检测异常值

标签:语言,QRF,模型,回归,位数,随机,matlab,决策树
From: https://www.cnblogs.com/tecdat/p/17736061.html

相关文章

  • Matlab : 数值运算
    学习一门技术最好的方式就是阅读官方文档,可以查看MATLAB官方文档多项式的数值运算使用MATLAB表示多项式使用向量表示多项式在MATLAB中,多项式可以用向量表示,向量中的元素为多项式的系数(降幂排序):第一位为多项式最高次项系数,最后一位为常数项.例如多项式:f(x)=x3−2x......
  • Matlab 设计仿真CIC滤波器
    2023.09.26使用CIC滤波器用于降采样。同样的,CIC滤波器也适用于升采样。参考连接:[1]Matlab中CIC滤波器的应用_dsp.cicdecimator_张海军2013的博客-CSDN博客[2]Matlab中CIC滤波器的应用-知乎(zhihu.com)[3]CICfilter及其matlab实现-CSDN博客[4]【ljelly原创】Matla......
  • 输出100-999之间所有的水仙花数。水仙花数指的是:各位数字立方和等于该数本身例如:153=1
    #include<stdio.h>intmain(){ inti,b0,b1,b2; intcount=0; for(i=100;i<1000;i++) { b0=i/100; b1=(i-b0*100)/10; b2=i%10; if(i==((b0*b0*b0)+(b1*b1*b1)+(b2*b2*b2))) {  count++;  printf("%d\n",i); } } printf("水仙花个数是:%d",co......
  • 案例5:输入一个五位数,求各个位数之和
    这个题目和前面讲解的求一个四位数各个位数之和非常类似,只是在本题修改为了动态输入。示例代码如下#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>voidmain(){ intnum,w,q,b,s,g,sum; printf("请输入一个五位数:"); scanf("%d",&num); w=nu......
  • WOA-ELM分类预测 | Matlab 鲸鱼算法(WOA)优化极限学习机(ELM)的分类预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 案例2:求一个四位数的各个位上数字之和
    比如一个数9527,需要计算9+5+2+7=23主要是考察如何分解一个四位数,学会分解一个整数之后,然后求和即可。示例代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>voidmain(){ intnum=9527; intqian,bai,shi,ge,sum; qian=num/1000; ......
  • 基于图像形态学处理的目标几何形状检测算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述      目标几何形状检测是计算机视觉领域中的重要任务之一,旨在从图像中自动识别和定位不同的几何形状,例如矩形、圆形、三角形等。这些形状检测在许多领域中都具有广泛的应用,如工业自动化......
  • 基于Vgg16和Vgg19深度学习网络的步态识别系统matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2022A 3.算法理论概述       步态识别作为生物特征识别领域的一个重要分支,在人体运动分析、身份验证、健康监测等方面具有广泛的应用前景。步态能量图(GaitEnergyImage,简称GEI)是一种有效的步态表示方法,通过......
  • 数字字符串格式化,位数不足前面补0
    我是这样写的:BigDecimalb1=newBigDecimal("0.01");BigDecimalresult=b1.multiply(newBigDecimal("1000")).setScale(0,RoundingMode.DOWN);System.out.println(StringUtils.leftPad(result.toPlainString(),6,"0"));//一共有6位,不足6位,就在前面补......
  • WPF 将字符串按固定位数间隔展示
    使用转换器,将字符串值做处理:usingSystem;usingSystem.Collections.Generic;usingSystem.Globalization;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Data;namespaceControls.Converters{publicclassStringSpaceConvert......