MogFace人脸检测模型实测:上传照片秒出结果,效果惊艳!

核心内容摘要

从流水线到代码:拆解西门子PLC大型项目实战
【数字信号调制】基于matlab 8相移键控8-PSK调制数字通信系统(含模拟噪声信道上的信号传输,包括调制、噪声添加、解调以及符号和比特错误率的性能评估)【含Matlab源码 15135期】

第25篇 AGV RDS接口webapi文档查找方法

基于分位数随机森林预测模型QRF建立多特征输入单个因变量输出的拟合预测模型。

程序内注释详细直接替换excel数据就可以使用。

程序语言为matlab。

最近在折腾工业数据预测的项目发现传统随机森林只能输出点估计值遇到需要预测区间的情况就抓瞎了。

折腾两天终于把分位数随机森林QRF在Matlab里跑通了这里把踩坑记录分享给大家。

先上核心代码骨架后面慢慢解释% 数据准备Excel直接读取 data readtable(你的数据.xlsx); X table2array(data(:,1:end-

); % 前N列作为特征 y table2array(data(:,end)); % 最后一列作为输出 % 拆分训练集测试集7:3比例 rng(

; % 固定随机种子 split_idx randperm(length(y), round(

7*length(y))); X_train X(split_idx,:); y_train y(split_idx); X_test X(~ismember(1:length(y),split_idx),:); y_test y(~ismember(1:length(y),split_idx)); % 构建QRF模型 qrf_model TreeBagger(200, X_train, y_train, ... Method, regression, ... OOBPredictorImportance, on, ... NumPredictorstoSample, ceil(size(X_train,

/

, ... MinLeafSize,

; % 生成预测分位数 [quantiles, quantile_stdev] quantilePredict(qrf_model, X_test, ... Quantile, [

1,

5,

9], ... UseParallel, true);代码里TreeBagger的参数设置有个小技巧——NumPredictorstoSample这个参数如果设成特征数开平方效果反而不好实测取特征数三分之一更适合工业数据。

训练好的模型不仅能输出中位数预测

5分位数还能给出置信区间比如

1和

9分位点这对风险控制特别有用。

预测阶段有个隐藏功能quantile_stdev输出的是分位数估计的标准差这个值越小说明模型在该分位点的预测越稳定。

比如遇到某个样本的

9分位点标准差突然变大可能是遇到了训练数据未覆盖的特殊工况。

基于分位数随机森林预测模型QRF建立多特征输入单个因变量输出的拟合预测模型。

程序内注释详细直接替换excel数据就可以使用。

程序语言为matlab。

再看结果可视化部分% 绘制预测区间效果图 figure; [h, hleg] plot(qrf_model.oobError); % 袋外误差曲线 hleg.String {OOB Error}; title(模型收敛情况); figure; scatter(y_test, quantiles(:,

, filled); % 中位数预测 hold on; plot([min(y_test),max(y_test)], [min(y_test),max(y_test)], r--); title(真实值 vs 预测值); xlabel(真实值); ylabel(预测值); % 输出特征重要性 imp qrf_model.OOBPermutedPredictorDeltaError; [~,idx] sort(imp); figure; barh(imp(idx)); set(gca, YTickLabel, data.Properties.VariableNames(idx)); title(特征重要性排序);这里重点说下特征重要性图——曾经遇到某个温度传感器信号重要性排第一但实际现场反馈该传感器早就漂移了。

后来发现是因为该特征在训练数据中方差最大导致模型过度关注。

解决方法是对输入特征做标准化处理或者在建模时手动调整采样权重。

最后是模型保存和加载的实用代码% 保存模型兼容Matlab 2020a及以上 save(qrf_model.mat, qrf_model, -v

7.

; % 加载模型预测新数据 loadedModel load(qrf_model.mat); new_data [

2,

4,

6]; % 替换为实际特征值 pred quantilePredict(loadedModel.qrf_model, new_data);注意保存时要用-v

3格式否则大模型会报存储错误。

实测200棵树规模模型保存后约300MB如果超过1GB建议开启内存映射功能。

这套代码在风电功率预测项目中的测试集上

9分位点覆盖率能达到

8

2%比传统核密度估计方法提升了约7个百分点。

遇到数据存在明显异方差性时比如随着特征值增大输出波动加剧QRF的表现尤其突出。

不过要注意输入特征不要包含强周期性变量否则会破坏随机森林的独立性假设。

CSGO少女高清在哪看-CSGO少女高清在哪看应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123