【RF】随机森林代码(需修改)

2024-04-06 09:12
文章标签 代码 修改 随机 森林 rf

本文主要是介绍【RF】随机森林代码(需修改),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主代码

% function main()
clc
clear
close all
%% 1.读取数据
%三训一,三个行向量对一个行向量
%训练集
TR1=[0,0,4,4,1,0,1,4,0,1,0,0,0,0,0,0,0,1,0,0;0,0,990,1081,184,0,486,795,0,223,0,0,0,0,0,0,0,198,0,0;0,0,403,363,184,0,486,215,0,223,0,0,0,0,0,0,0,198,0,0];
TAG1=[1,1,1,1,1,1,3,3,3,3,2,2,2,2,2,2,4,4,4,4];
%验证集
TE2=[1,9,6,1,0,5,3,3,6,0,8,0,0,2,0,0,2,3,0,4;345,3256,1757,237,0,1183,785,1617,2520,0,4820,0,0,376,0,0,590,1428,0,1082;345,838,403,237,0,329,319,590,594,0,1241,0,0,196,0,0,338,761,0,414];
TAG2=[1,3,3,1,1,2,2,2,3,1,3,1,1,2,1,2,2,2,1,1];RFRFRF(TR1,TAG1,TE2,TAG2)

RFRFRF.m

function RFRFRF(TR1,TAG1,TE2,TAG2)
%% 2.数据操作
%%  2.2.划分训练集和测试集
PN = TR1;%训练集输入
TN = TAG1;%训练集输出
PM = TE2;%测试集输入
TM = TAG2;%测试集输出
%%  2.3.数据归一化
[pn, ps_input] = mapminmax(PN, 0, 1);%归一化到(0,1)
pn=pn';
pm = mapminmax('apply', PM, ps_input);%引用结构体,保持归一化方法一致;
pm=pm';
[tn, ps_output] = mapminmax(TN, 0, 1);
tn=tn';%%  3.模型参数设置及训练模型
trees = 100; % 决策树数目
leaf  = 20; % 最小叶子数
OOBPrediction = 'on';  % 打开误差图
OOBPredictorImportance = 'on'; % 计算特征重要性
Method = 'regression';  % 选择回归或分类
net = TreeBagger(trees, pn, tn, 'OOBPredictorImportance', OOBPredictorImportance,...'Method', Method, 'OOBPrediction', OOBPrediction, 'minleaf', leaf);
% importance = net.OOBPermutedPredictorDeltaError;  % 重要性%%  4.仿真测试
pyuce = predict(net, pm );
Pyuce = mapminmax('reverse', pyuce, ps_output);%数据反归一化
Pyuce =Pyuce';
% result_pre=round(Pyuce);%预测结果
result_pre=Pyuce;%预测结果
correct1=length(find((result_pre()-ones())==0))/100;
disp(['测试集的正确率为:',  num2str(correct1)])%%  绘图
figure() %画图真实值与预测值对比图
plot(TM,'bo-','markersize',10,'LineWidth',1)
hold on
plot(result_pre,'r*-','markersize',10,'LineWidth',1)
hold on
legend('真实值','预测值')
xlabel('预测样本')
ylabel('预测结果')%%  相关指标计算
Pyuce=round(Pyuce);%预测结果
error=Pyuce-TM;
[~,len]=size(TM);
R2=1-sum((TM-Pyuce).^2)/sum((mean(TM)-TM).^2);%相关性系数
MSE=error*error'/len;%均方误差
RMSE=MSE^(1/2);%均方根误差
disp(['测试集数据的MSE为:', num2str(MSE)])
disp(['测试集数据的MBE为:', num2str(RMSE)])
disp(['测试集数据的R2为:', num2str(R2)])zql=length(find((result_pre-TM)==0))/300;
disp(['测试集正确率为:', num2str(zql)])

这篇关于【RF】随机森林代码(需修改)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879552

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例