首页 > 编程语言 >基于广义正态分布算法改进的随机森林分类算法 - 附代码

基于广义正态分布算法改进的随机森林分类算法 - 附代码

时间:2024-03-13 22:03:18浏览次数:26  
标签:RF 算法 errorRate 广义 正态分布 随机

基于广义正态分布算法改进的随机森林分类算法 - 附代码

文章目录


摘要:为了提高随机森林数据的分类预测准确率,对随机森林中的树木个数和最小叶子点数参数利用广义正态分布搜索算法进行优化。

1.数据集

数据的来源是 UCI 数据库中的肿瘤数据。数据信息如下:

data.mat 的大小为569*32。

其中第2列为标签数据,包含两类标签。

第3列到最后一列为特征数据。

所以RF模型的数据输入维度为30;输出维度为1。

2.RF模型

随机森林请自行参考相关机器学习书籍。

3.基于广义正态分布算法优化的RF

广义正态分布算法原理请参考:https://blog.csdn.net/u011835903/article/details/126110880

广义正态分布算法的优化参数为RF中树木个数和最小叶子节点数。适应度函数为RF对训练集和测试集的预测错误率,错误率越低越好。
f i n t e n e s s = e r r o r R a t e [ p r e d i c t ( t r a i n ) ] + e r r o r R a t e [ p r e d i c t ( t e s t ) ] finteness = errorRate[predict(train)] + errorRate[predict(test)] finteness=errorRate[predict(train)]+errorRate[predict(test)]

4.测试结果

数据划分信息如下: 训练集数量为500组,测试集数量为69组

广义正态分布参数设置如下:

%% 定义广义正态分布优化参数
pop=20; %种群数量
Max_iteration=30; %  设定最大迭代次数
dim = 2;%维度,即树个数和最小叶子点数
lb = [1,1];%下边界
ub = [50,20];%上边界
fobj = @(x) fun(x,P_train,T_train,P_test,T_test);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从结果来看,经过改进后的广义正态分布-RF明显优于未改进前的结果。

5.Matlab代码

标签:RF,算法,errorRate,广义,正态分布,随机
From: https://blog.csdn.net/u011835903/article/details/136635644

相关文章

  • 基于人工蜂鸟算法改进的随机森林分类算法 - 附代码
    基于人工蜂鸟算法改进的随机森林分类算法-附代码文章目录基于人工蜂鸟算法改进的随机森林分类算法-附代码1.数据集2.RF模型3.基于人工蜂鸟算法优化的RF4.测试结果5.Matlab代码摘要:为了提高随机森林数据的分类预测准确率,对随机森林中的树木个数和最小叶子点数参......
  • 【蓝桥杯备赛】Day13:贪心算法(倒计时30天)
    题目1:题目3040:AnEasyProblem给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。输入格......
  • 点云算法--地面点提取
       地面点提取算法作为点云后处理算法中的核心一般有以下几类方法可以提取地面点:1.形态学或者渐进形态学  优点:效率较高。缺点:对于腐蚀膨胀过程中的参数设置需要基于先验知识,所以效果的稳定性很差,适合处理简单的场景。2.布料滤波  优点:地面点的准确率相对较高(但......
  • 【机器学习300问】35、什么是随机森林?
    〇、让我们准备一些训练数据idx0x1x2x3x4y04.34.94.14.75.5013.96.15.95.55.9022.74.84.15.05.6036.64.44.53.95.9146.52.94.74.66.1152.76.74.25.34.81    表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。 一、决策树的局限性   ......
  • 选择、冒泡、插入排序——左神数据结构算法Day1学习笔记
    时间复杂度:算法的常数操作数量级的数学表达式中,去除常数的最高阶项,比如aN²+bN+c的时间复杂度就是O(N²)。时间复杂度是数据量大到一定程度时,评价算法优劣的指标。当时间复杂度相同时,分析不同数据样本下的实际运行时间来比较算法的优劣。额外空间复杂度:在执行代码过程中申请的......
  • 代码随想录算法训练营第四十五天 | 279.完全平方数,322. 零钱兑换,70. 爬楼梯 (进阶)
    57.爬楼梯(第八期模拟笔试)时间限制:1.000S空间限制:128MB题目描述假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬至多m(1<=m<n)个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。输入描述输入共一行,包含两个正整数,分......
  • Rabbit算法:轻量高效的加密利器
    Rabbit算法起源:Rabbit算法是由MartinBoesgaard和MetteVesterager提出的一种流密码算法,其设计初衷是为了提供高性能和高度安全性的加密方案。Rabbit算法结合了非线性的置换、置换和异或运算,以及密钥调度算法,使其成为一种优秀的加密算法。Rabbit加密解密|一个覆盖广泛主题......
  • 代码随想录算法训练营第四十四天 | 377. 组合总和 Ⅳ ,518. 零钱兑换 II ,完全背包
    377.组合总和Ⅳ 已解答中等 相关标签相关企业 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合32位整数范围。 示例1:输入:num......
  • 几种常见排序算法
    冒泡排序从小到大排 两个两个排序,这样最大的就在后面,下楼排序就排除最后一个,每次循环减一即可,还可以加一个状态,只要有一个状态不变,顺序是正确的import{ref}from'vue'letarr1=ref([])consta1=(arr:any)=>{for(leti=0;i<arr.length-1;i++){......
  • 380. O(1) 时间插入、删除和获取随机元素.18071112
    380.O(1)时间插入、删除和获取随机元素实现RandomizedSet类:RandomizedSet()初始化RandomizedSet对象boolinsert(intval)当元素val不存在时,向集合中插入该项,并返回true;否则,返回false。boolremove(intval)当元素val存在时,从集合中移除该项,并返回true;否则......