2022年5月31日更新:
更加完整的回归流程及m代码实现,请见“实战1 空气质量数据的校准”。实战1 - 空气质量数据的校准

(一)选择数据

打开APP中 Regression Learner,点击新建,

这里我编了一个table,里面存放数据,命名为DATA_table。选择第8个变量Var8为Response(目标变量),选择其余8个变量为Predictors(特征量)。默认交叉验证打开,点开始。

(二)训练模型

选择 All,点 Train,使用所有模型都跑一遍。

显示线性模型效果最好。

(三)考虑降维

如果要考虑对这8个特征变量进行降维处理,可在训练开始前选中PCA,和上边一样,再跑一遍。发现树模型最优,PCA显示前两个特征变量的贡献度最大。

这样我们可以尝试只使用前两个变量进行回归,需要重新新建,然后Predictors只选Var1和Var2.

然后再使用所有模型跑一遍,发现树模型最优。

(四)考虑数据标准化

有些算法对数据的量纲比较敏感,因此我们可以尝试使用以下代码对数据进行标准化,

N=size(DATA_table);
DATA_table_norm=table;
for i=1:N(2)[Y,PS] = mapminmax(DATA_table{:,i});Var_name{i}=['Var',num2str(i)];Var_value(:,i)=Y;%table的创建,需要一列一列的添加DATA_table_norm(:,i)=table( Var_value(:,i),'VariableNames',Var_name(i));
end

表DATA_table_norm中存储标准化后的数据。

(五)模型输出及代码生成

训练好的模型,可以导出模型(Export Model)以便预测之用;也可以导出为代码(Generate Code),以便于集成到我们编写的m代码中使用。这里着重对生成的代码翻译了下,见下方。有问题欢迎交流。

function [trainedModel, validationRMSE] = trainRegressionModel(trainingData)
%  输入:
%      trainingData: 一个表,其中包含特征变量 predictor 和 目标变量response
%  输出:
%      trainedModel: 一个结构体,包含经过训练的回归模型信息。
%      可使用 trainedModel.predictFcn 函数对新数据进行预测.
%      validationRMSE: 数值型,包含RMSE。
% 例如,如果使用原始数据集T,重新训练该回归模型,可以输入:
%   [trainedModel, validationRMSE] = trainRegressionModel(T)
%
% 如果使用返回的“trainedModel”对新数据集T2进行预测,可以使用
%   yfit = trainedModel.predictFcn(T2)
% T2必须和训练该模型的训练集具有相同的结构,例如,训练集有Var1~Var2这2个特征变量,则T2也必须有这些特征变量% 提取特征变量和目标变量
%此段代码将数据处理为正确的结构形式,以便输入到训练模型中用于训练
inputTable = trainingData;
predictorNames = {'Var1', 'Var2'};
predictors = inputTable(:, predictorNames);
response = inputTable.Var8;
isCategoricalPredictor = [false, false];%训练回归模型
%此段代码对模型参数进行设置,并训练模型。
regressionTree = fitrtree(...predictors, ...response, ...'MinLeafSize', 4, ...'Surrogate', 'off');%使用predict函数创建模型训练输出结果的结构
predictorExtractionFcn = @(t) t(:, predictorNames);
treePredictFcn = @(x) predict(regressionTree, x);
trainedModel.predictFcn = @(x) treePredictFcn(predictorExtractionFcn(x));% 对输出的结果添加附加信息
trainedModel.RequiredVariables = {'Var1', 'Var2'};
trainedModel.RegressionTree = regressionTree;
trainedModel.About = 'This struct is a trained model exported from Regression Learner R2018b.';
trainedModel.HowToPredict = sprintf('To make predictions on a new table, T, use: \n  yfit = c.predictFcn(T) \nreplacing ''c'' with the name of the variable that is this struct, e.g. ''trainedModel''. \n \nThe table, T, must contain the variables returned by: \n  c.RequiredVariables \nVariable formats (e.g. matrix/vector, datatype) must match the original training data. \nAdditional variables are ignored. \n \nFor more information, see <a href="matlab:helpview(fullfile(docroot, ''stats'', ''stats.map''), ''appregression_exportmodeltoworkspace'')">How to predict using an exported model</a>.');% 提取特征变量和目标变量
%此段代码将数据处理为正确的结构形式,以便输入到训练模型中用于训练
inputTable = trainingData;
predictorNames = {'Var1', 'Var2'};
predictors = inputTable(:, predictorNames);
response = inputTable.Var8;
isCategoricalPredictor = [false, false];%执行交叉验证
partitionedModel = crossval(trainedModel.RegressionTree, 'KFold', 5);%计算交叉验证预测值
validationPredictions = kfoldPredict(partitionedModel);%计算交叉验证RMSE
validationRMSE = sqrt(kfoldLoss(partitionedModel, 'LossFun', 'mse'));

【2】使用MATLAB进行机器学习(回归)相关推荐

  1. 机器学习 | MATLAB实现支持向量机回归参数设定

    机器学习 | MATLAB实现支持向量机回归参数设定 目录 机器学习 | MATLAB实现支持向量机回归参数设定 基本介绍 参数描述 学习总结 参考资料 基本介绍 RegressionSVM 是一种支 ...

  2. Matlab实现机器学习(附上完整仿真源码)

    介绍 Matlab是一种功能强大的数学软件,它不仅可以用于数据分析和可视化,还可以用于机器学习.在本文中,我们将介绍如何使用Matlab实现机器学习. 首先,我们需要准备数据.机器学习通常需要大量的数 ...

  3. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  4. 了解机器学习回归的3种最常见的损失函数

    机器学习中的损失函数是衡量你的ML模型的预测结果准确性的一个指标. 损失函数将以两项作为输入:模型的输出值和标准答案的期望值.损失函数的输出称为损失,它是衡量我们的模型在预测结果方面做得有多好. 损失 ...

  5. 机器学习 回归篇(1)——多元线性回归

    机器学习 回归篇(1)--多元线性回归 摘要 线性回归简介 python实现 运行结果及可视化 摘要 本文介绍了最基础的回归问题--多元线性回归,并通过python进行实现及可视化展示运行结果. 线性 ...

  6. MATLAB随机森林回归模型

    MATLAB随机森林回归模型: 调用matlab自带的TreeBagger.m T=textread('E:\datasets-orreview\discretized-regression\10bi ...

  7. 机器学习回归模型精度_机器学习模型实施精度召回和概率截止。

    机器学习回归模型精度 Congratulations on completing your Machine Learning (ML) pipeline! In the second part of ...

  8. 机器学习——回归算法

    机器学习–回归算法 一.问题分析 回归问题和分类问题在本质上是一样的,都是针对一个输入做出一个输出预测,其区别在于输出变量的类型. 分类问题也叫离散变量预测,其输出是输入数据所对应的类别,是一种定性输 ...

  9. 机器学习 | 回归问题

    机器学习 | 回归问题 更多内容,关注wx公众号:数据分析这件小事儿 对于监督学习,其基本问题就是使用特征向量x预测响应变量y,如果响应变量y为连续变量,则称为回归问题. 用x来预测y,是否存在一个最 ...

  10. 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression)

    文章目录 效果一览 文章概述 研究内容 程序设计 参考资料 效果一览 文章概述 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression) ...

最新文章

  1. 只用jsp实现同样的Servlet功能
  2. Linux中查看正在使用的端口并强制删除占用端口
  3. Android学习笔记ListView
  4. 04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换
  5. 用计算机进行频谱分析时,实验四-利用FFT对信号进行频谱分析1112
  6. tcp丢包一定会断线吗_有遗传就一定会脱发吗
  7. 按季度分类汇总_1分钟实现:按某列内容分类汇总,分页打印 Excel 表格
  8. 从阿姆斯特丹建设智能交通能得到什么经验?
  9. 11g Rman新特性SET NEWNAME
  10. oracle12c常用新特性,开发者必读:Oracle12c新特性再总结
  11. patch补丁文件格式
  12. python实现阿里云盘同步功能(sync_folder)
  13. 安装Linux操作系统Ubuntu 22.04 LTS并配置拨号连接
  14. ubuntu18.04下的屏幕亮度调节问题
  15. C语言解题——从今天开始入坑C语言
  16. 高德地图怎么画圈_高德地图 Javascript API 入门(二)
  17. 定制材料 单壁碳纳米管包裹Cu原子链/碳纳米管包裹的硅纳米线复合结构/氮掺杂碳纳米管包裹钴
  18. echarts图标的文字(label)动态切换显示隐藏
  19. 临时尖底锥型过滤器 锥型过滤器
  20. host ntrip 千寻rtk_【千寻新姿势】南方工程之星5.0连接千寻FindCM服务设置教程

热门文章

  1. 轨道客流预测TransCAD公交分配结果详解
  2. 9.3 匿名性和隐私性
  3. 京东把 Elasticsearch 到底用的有多牛?日均5亿订单查询完美解决!
  4. 女士品茶——统计学如何变革了科学和生活1
  5. Uiautomator 2.0之UiObject2类学习小记
  6. 【示波器专题】示波器探头的原理和分类
  7. Java性能优化(详解)
  8. 大学计算机计算思维期末试题及答案,大学计算机计算思维导论期末考试
  9. mc用什么版本的java_我的世界网易 Java 版哪个版本比较好?
  10. IntelliJ Idea 常用11款插件(提高开发效率),附优秀主题插件