【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

相关文章

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

MySQL实现多源复制的示例代码

《MySQL实现多源复制的示例代码》MySQL的多源复制允许一个从服务器从多个主服务器复制数据,这在需要将多个数据源汇聚到一个数据库实例时非常有用,下面就来详细的介绍一下,感兴趣的可以了解一下... 目录一、多源复制原理二、多源复制配置步骤2.1 主服务器配置Master1配置Master2配置2.2 从服

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

C++归并排序代码实现示例代码

《C++归并排序代码实现示例代码》归并排序将待排序数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并,得到排序后的数组,:本文主要介绍C++归并排序代码实现的相关资料,需要的... 目录1 算法核心思想2 代码实现3 算法时间复杂度1 算法核心思想归并排序是一种高效的排序方式,需要用

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal