【监督学习】基于合取子句进化算法(CCEA)和析取范式进化算法(DNFEA)解决分类问题(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
我们开发了两种进化算法,即合取子句进化算法(CCEA)和析取范式进化算法(DNFEA),旨在探索与真实世界数据中的复杂交互相关的因果关系。这些算法可以应用于监督学习任务,帮助我们发现与特定目标结果(比如疾病)相关的复杂多变量关系。在不同类型的数据集中,包括带有噪声、缺失数据和多种数据类型(连续、有序和标称)的情况下,CCEA能够寻找特征(上位)之间的交互。为了防止过拟合特征交互,CCEA还利用特征敏感度函数来辅助筛选。而DNFEA主要用于在CCEA的基础上寻找更强相关性的异构组合,这些组合能够比任何单个连接子句更好地预测输出类别。CCEA和DNFEA都使用超几何概率质量函数作为适应度函数来评估。
总的来说,我们提出了一种新的进化算法,旨在从批量数据中发现复杂分类问题的因果关系规则。这种方法的关键特点包括:(a)使用超几何概率质量函数作为评估适应度的统计指标,以量化临时关联结果与目标类之间的偶然性概率,同时考虑数据集大小、缺失数据和结果类别的分布情况;(b)采用串联年龄分层进化算法,演化出连接子句的简约档案以及这些连接子句的析取,使得每个连接子句都与结果类之间具有概率显著关联;(c)使用单独的档案箱来存储不同顺序的子句,并具有动态调整的顺序特定阈值。我们通过在多个基准问题上的实验验证了该方法的有效性,这些问题包括具有异质性、上位性、重叠、类别关联噪声、缺失数据、无关特征和类别不平衡等各种组合。此外,我们还在更真实的合成基因组数据集上进行了验证,该数据集具有异质性、上位性、外源特征和噪声。在所有合成上位基准问题中,我们始终能够准确恢复出用于生成数据的真实因果关系规则集。最后,我们还讨论了将这种方法应用于真实世界调查数据集的潜在应用,该数据集旨在提供有关恰加斯病可能的生态健康干预措施的信息。
📚2 运行结果


部分代码:
% set the number of address bits for the majority-on problem
NumFeat=5; % set the number of observations
NumObs=1250;% Now create the majority on dataset
Data=(rand(NumObs,NumFeat)<0.5)+0;
% Determine output
Output=(sum(Data,2)>NumFeat/2)+0;% There are three data types that can be input into the CCEA
% 1) continuous or ordinal data (ContData)
% 2) nominal data (Cat
% 3) binary data or any feature where the user only wants one value
% assigned to a feature in a conjunctive clause
% For each data type list the corresponding columns in the Data matrix that
% correspond to the data type of the feature (i.e., if the data in columns
% 1 and 3 are ordinal or continuous then ConOrdData=[1 3]).;
ContOrdData=[]; % To be used for ordinal or continuous features
NomData=[]; % To be used for nominal features
BinData=1:NumFeat; % To be used for binary features or any feature where % the user only wants one value associated with the% conjunctive clause.% Set the target class
TargetClass=Output==1;% In this case only data with an output of 1 will be% analyzed% Run my algorithm convert the data to binary
[DataBin, Param, DataSum]=Data2BinaryTarget(Data, Output, ...ContOrdData, NomData, BinData, TargetClass);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Set the CCEA parameters
% The below settings are appropriate but not necessarily optimal for the
% 6-bit multiplexer dataset. The user can play with the parameter settings
% to find the best combination for a given dataset.
% Note: there are numerous input parameters for the CCEA. The idea is to
% give the user control over the optimal way to search a dataset. For
% instance, Datasets with binary features may require fewer age layers and
% fewer generations between novel generations; while datasets with
% continuous or ordinal features may require more age layers and more
% generations between novel generations.
Param.NumNewPop=NumFeat; % The # of new offspring created every Param.GENn
Param.TotGens=30; % Total # generations to run the CCEA
% Param.FeatLabels=[]; % The feature labels (not needed for CCEA but % necessary for understanding the features)
Param.BestFit=false(); % Will record the best hypergeometric fitness for % each CC order each generation
Param.ALna=5; % The # of layers that are not archived % (helps maintain diversity)
Param.GENn=3; % The # of generations until a new population of offspring % are created.
Param.NonArchLMax=Param.NumNewPop*1;% Max population per non-archive layer
Param.ArchOff=Param.NonArchLMax*Param.ALna; %The max # of Archive offspring %created each generation
Param.Px=0.5; % Probability of crossover
Param.Pwc=0.75; % probability that feature selected for mutation will be % removed from the conjunctive clause
Param.Pm=1/NumFeat; % probability that a feature will be selected for % mutation. Only if the parent is selected for mutation% instead of crossover.
Param.TournSize=3; % # of parents with replacement that are in the % tournament to mate with the parent. Only most fit will % mate.
% set the number of address bits for the majority-on problem
NumFeat=5;
% set the number of observations
NumObs=1250;
% Now create the majority on dataset
Data=(rand(NumObs,NumFeat)<0.5)+0;
% Determine output
Output=(sum(Data,2)>NumFeat/2)+0;
% There are three data types that can be input into the CCEA
% 1) continuous or ordinal data (ContData)
% 2) nominal data (Cat
% 3) binary data or any feature where the user only wants one value
% assigned to a feature in a conjunctive clause
% For each data type list the corresponding columns in the Data matrix that
% correspond to the data type of the feature (i.e., if the data in columns
% 1 and 3 are ordinal or continuous then ConOrdData=[1 3]).;
ContOrdData=[]; % To be used for ordinal or continuous features
NomData=[]; % To be used for nominal features
BinData=1:NumFeat; % To be used for binary features or any feature where
% the user only wants one value associated with the
% conjunctive clause.
% Set the target class
TargetClass=Output==1;% In this case only data with an output of 1 will be
% analyzed
% Run my algorithm convert the data to binary
[DataBin, Param, DataSum]=Data2BinaryTarget(Data, Output, ...
ContOrdData, NomData, BinData, TargetClass);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Set the CCEA parameters
% The below settings are appropriate but not necessarily optimal for the
% 6-bit multiplexer dataset. The user can play with the parameter settings
% to find the best combination for a given dataset.
% Note: there are numerous input parameters for the CCEA. The idea is to
% give the user control over the optimal way to search a dataset. For
% instance, Datasets with binary features may require fewer age layers and
% fewer generations between novel generations; while datasets with
% continuous or ordinal features may require more age layers and more
% generations between novel generations.
Param.NumNewPop=NumFeat; % The # of new offspring created every Param.GENn
Param.TotGens=30; % Total # generations to run the CCEA
% Param.FeatLabels=[]; % The feature labels (not needed for CCEA but
% necessary for understanding the features)
Param.BestFit=false(); % Will record the best hypergeometric fitness for
% each CC order each generation
Param.ALna=5; % The # of layers that are not archived
% (helps maintain diversity)
Param.GENn=3; % The # of generations until a new population of offspring
% are created.
Param.NonArchLMax=Param.NumNewPop*1;% Max population per non-archive layer
Param.ArchOff=Param.NonArchLMax*Param.ALna; %The max # of Archive offspring
%created each generation
Param.Px=0.5; % Probability of crossover
Param.Pwc=0.75; % probability that feature selected for mutation will be
% removed from the conjunctive clause
Param.Pm=1/NumFeat; % probability that a feature will be selected for
% mutation. Only if the parent is selected for mutation
% instead of crossover.
Param.TournSize=3; % # of parents with replacement that are in the
% tournament to mate with the parent. Only most fit will
% mate.
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]古华茂,石锦芹,高济.基于子句的ALCN语言tableau算法增强方式[J].东南大学学报(英文版), 2008.DOI:JournalArticle/5af28551c095d718d8f5e7c5.
[2]姚明臣.机器学习和神经网络学习中的若干问题研究[D].大连理工大学,2016.
🌈4 Matlab代码实现
相关文章:
【监督学习】基于合取子句进化算法(CCEA)和析取范式进化算法(DNFEA)解决分类问题(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
力扣每日一题41:缺失的第一个正数
题目描述: 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3示例 2: 输…...
OpenCV与mediapipe实践
1. 安装前准备 开发环境:vscode venv 设置vscode, 建立项目,如: t1/src, 用vscode打开,新建终端Terminal,这时可能会有错误产生,解决办法: 运行命令:Set-ExecutionPolicy -ExecutionPolicy …...
【css拾遗】粘性布局实现有滚动条的情况下,按钮固定在页面底部展示
效果: 滚动条滚动过程中,按钮的位置位于手机的底部 滚动条滚到底部时,按钮的位置正常 这个position:sticky真的好用,我原先的想法是利用滚动条滚动事件去控制,没想到css就可以解决 <template><view class…...
git 创建并配置 GitHub 连接密钥
前记: git svn sourcetree gitee github gitlab gitblit gitbucket gitolite gogs 版本控制 | 仓库管理 ---- 系列工程笔记. Platform:Windows 10 Git version:git version 2.32.0.windows.1 Function: git 创建并配置 GitHub…...
使用Premiere、PhotoShop和Audition做视频特效
今天接到一个做视频的任务,给一个精忠报国的视频,要求: ①去掉人声,就是将唱歌的人声去掉,只留下伴奏; ②截图视频中的横幅,做一个展开的效果,类似卷纸慢慢展开;…...
vueday01——动态参数
我们现在知道了 v-bind:的语法糖是: v-on:的语法糖是 我们现在来尝试一下,定义一个动态参数模拟点击事件按钮 <div :id"idValue" ref"myDiv">我是待测div{{ resultId }}</div> <button v-on:[eventName]"doSomething&…...
双向链表C语言版本
1、声明链表节点操作函数 linklist.h #ifndef LINKLIST_H__ #define LINKLIST_H__ #include <stdio.h> #include <stdlib.h> #include <stdbool.h>//#define TAIL_ADD #define HEAD_ADD typedef int LinkDataType; // 构造节点 struct LinkNode {LinkDataTy…...
visual studio安装时候修改共享组件、工具和SDK路径方法
安装了VsStudio后,如果自己修改了Shared路径,当卸载旧版本,需要安装新版本时发现,之前的Shared路径无法进行修改,这就很坑爹了,因为我运行flutter程序的时候,报错找不到windows sdk的位置,所以我…...
Motorola IPMC761 使用边缘TPU加速神经网络
Motorola IPMC761 使用边缘TPU加速神经网络 人工智能(AI)和机器学习(ML)正在塑造和推进复杂的自动化技术解决方案。将这些功能集成到硬件中,解决方案可以识别图像中的对象,分析和检测模式中的异常或找到关键短语。这些功能对于包括但不限于自动驾驶汽车…...
EM@直线的参数方程
文章目录 abstract直线参数方程从运动轨迹的角度从普通方程转换导参数方程向量法 参数方程间的转换从第3型转化为第2型方程组例 abstract 平面直线的参数方程的3种表示形式直线参数方程间的转换 直线参数方程 以下从不同角度推导直线参数方程分别记为第1,2,3形式参数方程 从…...
day08-注册功能、前端登录注册页面复制、前端登录功能、前端注册功能
1 注册功能 补充(开放文件夹内) 2 前端登录注册页面复制 4 前端注册功能 1 注册功能 # 分析前端:携带数据格式 {mobile:,code:,password}后端:-1 视图类---》注册方法-2 序列化类---》校验,保存(表中字段多,传的少---…...
rust: function
///file: nestd.rs ///ide: RustRover 233.8264.22 /// /// /// /***自定义函数*/ pub fn function() {println!("called my::nested::function()"); }#[allow(dead_code)] fn private_function() {println!("called my::nested::private_function()"); }/…...
零代码编程:用ChatGPT批量下载谷歌podcast上的播客音频
谷歌podcast有很多播客音频,如何批量下载到电脑呢? 以这个播客为例: https://podcasts.google.com/feed/aHR0cHM6Ly9oYWRhcnNoZW1lc2guY29tL2ZlZWQvcG9kY2FzdC8?saX&ved0CAkQlvsGahcKEwi4uauWsvKBAxUAAAAAHQAAAAAQAg 查看网页源代码&a…...
nginx.4——正向代理和反向代理(七层代理和四层代理)
1、正向代理反向代理 nginx当中有两种代理方式 七层代理(http协议) 四层代理(tcp/udp流量转发) 七层代理 七层代理:代理的是http的请求和响应。 客户端请求代理服务器,由代理服务器转发给客户端http请求。转发到内部服务器(可以单台&#…...
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(三)
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 相应的后端也要做一些调整 1、启动流程修改如下: /*** 启动流程实例*/private R startProce…...
Spring-事务源码解析2
上一篇文章我们介绍了事务开启注解EnableTransactionManagement源码解析《Spring-事务源码解析1》 里面提到了2个关键组件,这里我们分析下Spring如何利用这2个组件来给Bean创建代理对象。 本篇文章我们看下当一个类里面包含了Transactional注解,Spring如…...
基于ssm008医院门诊挂号系统+jsp【附PPT|开题|任务书|万字文档(LW)和搭建文档】
主要功能 后台登录:4个角色 管理员: ①个人中心、修改密码、个人信息 ②药房管理、护士管理、医生管理、病人信息管理、科室信息管理、挂号管理、诊断信息管理、病例库管理、开药信息管理、药品信息管理、收费信息管理 药房: ①个人中心、修…...
【Linux常用命令11】Linux文件与权限详解
权限 r :读权限,用数字4表示 w :写权限,用数字2表示 x :执行权限,用数字1表示 常用权限 644:代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。 755:代表所有…...
BAT026:删除当前目录指定文件夹以外的文件夹
引言:编写批处理程序,实现删除当前目录指定文件夹以外的文件夹。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件,点击【编辑】…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

