【2】使用MATLAB进行机器学习(回归)
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进行机器学习(回归)相关推荐
- 机器学习 | MATLAB实现支持向量机回归参数设定
机器学习 | MATLAB实现支持向量机回归参数设定 目录 机器学习 | MATLAB实现支持向量机回归参数设定 基本介绍 参数描述 学习总结 参考资料 基本介绍 RegressionSVM 是一种支 ...
- Matlab实现机器学习(附上完整仿真源码)
介绍 Matlab是一种功能强大的数学软件,它不仅可以用于数据分析和可视化,还可以用于机器学习.在本文中,我们将介绍如何使用Matlab实现机器学习. 首先,我们需要准备数据.机器学习通常需要大量的数 ...
- R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等
R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录
- 了解机器学习回归的3种最常见的损失函数
机器学习中的损失函数是衡量你的ML模型的预测结果准确性的一个指标. 损失函数将以两项作为输入:模型的输出值和标准答案的期望值.损失函数的输出称为损失,它是衡量我们的模型在预测结果方面做得有多好. 损失 ...
- 机器学习 回归篇(1)——多元线性回归
机器学习 回归篇(1)--多元线性回归 摘要 线性回归简介 python实现 运行结果及可视化 摘要 本文介绍了最基础的回归问题--多元线性回归,并通过python进行实现及可视化展示运行结果. 线性 ...
- MATLAB随机森林回归模型
MATLAB随机森林回归模型: 调用matlab自带的TreeBagger.m T=textread('E:\datasets-orreview\discretized-regression\10bi ...
- 机器学习回归模型精度_机器学习模型实施精度召回和概率截止。
机器学习回归模型精度 Congratulations on completing your Machine Learning (ML) pipeline! In the second part of ...
- 机器学习——回归算法
机器学习–回归算法 一.问题分析 回归问题和分类问题在本质上是一样的,都是针对一个输入做出一个输出预测,其区别在于输出变量的类型. 分类问题也叫离散变量预测,其输出是输入数据所对应的类别,是一种定性输 ...
- 机器学习 | 回归问题
机器学习 | 回归问题 更多内容,关注wx公众号:数据分析这件小事儿 对于监督学习,其基本问题就是使用特征向量x预测响应变量y,如果响应变量y为连续变量,则称为回归问题. 用x来预测y,是否存在一个最 ...
- 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression)
文章目录 效果一览 文章概述 研究内容 程序设计 参考资料 效果一览 文章概述 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression) ...
最新文章
- 只用jsp实现同样的Servlet功能
- Linux中查看正在使用的端口并强制删除占用端口
- Android学习笔记ListView
- 04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换
- 用计算机进行频谱分析时,实验四-利用FFT对信号进行频谱分析1112
- tcp丢包一定会断线吗_有遗传就一定会脱发吗
- 按季度分类汇总_1分钟实现:按某列内容分类汇总,分页打印 Excel 表格
- 从阿姆斯特丹建设智能交通能得到什么经验?
- 11g Rman新特性SET NEWNAME
- oracle12c常用新特性,开发者必读:Oracle12c新特性再总结
- patch补丁文件格式
- python实现阿里云盘同步功能(sync_folder)
- 安装Linux操作系统Ubuntu 22.04 LTS并配置拨号连接
- ubuntu18.04下的屏幕亮度调节问题
- C语言解题——从今天开始入坑C语言
- 高德地图怎么画圈_高德地图 Javascript API 入门(二)
- 定制材料 单壁碳纳米管包裹Cu原子链/碳纳米管包裹的硅纳米线复合结构/氮掺杂碳纳米管包裹钴
- echarts图标的文字(label)动态切换显示隐藏
- 临时尖底锥型过滤器 锥型过滤器
- host ntrip 千寻rtk_【千寻新姿势】南方工程之星5.0连接千寻FindCM服务设置教程
热门文章
- 轨道客流预测TransCAD公交分配结果详解
- 9.3 匿名性和隐私性
- 京东把 Elasticsearch 到底用的有多牛?日均5亿订单查询完美解决!
- 女士品茶——统计学如何变革了科学和生活1
- Uiautomator 2.0之UiObject2类学习小记
- 【示波器专题】示波器探头的原理和分类
- Java性能优化(详解)
- 大学计算机计算思维期末试题及答案,大学计算机计算思维导论期末考试
- mc用什么版本的java_我的世界网易 Java 版哪个版本比较好?
- IntelliJ Idea 常用11款插件(提高开发效率),附优秀主题插件