• 【特征选择】基于二进制粒子群算法的特征选择方法(GRNN广义回归神经网络分类)【Matlab代码#32】



    【可更换其他算法,获取资源请见文章第6节:资源获取】


    1. 特征选择问题

    特征选择是指从原始数据中选择最具有代表性和有用性的特征,以用于建模和预测任务。它是机器学习和数据挖掘中的重要步骤,可以提高模型的性能和解释能力,并降低计算成本和过拟合的风险。

    特征选择的方法可以分为三大类:过滤方法(Filter methods)、包装方法(Wrapper methods)和嵌入方法(Embedded methods)。

    过滤方法是根据某种准则或评估指标对特征进行评估和排序,然后选择排名靠前的特征。常用的过滤方法包括相关系数、信息增益、方差选择等。这些方法独立于具体的学习算法,计算效率高,但不能考虑特征子集之间的相互关系。

    包装方法是利用机器学习算法对不同的特征子集进行评估,以确定最佳的特征子集。这类方法通常以模型性能为评价指标,例如递归特征消除(Recursive Feature Elimination, RFE)和遗传算法等。包装方法的计算代价较高,但能够考虑特征之间的相互关系。本文采用的就是包装方法

    嵌入方法是指在学习算法中直接嵌入特征选择过程,通过学习过程自动选择最佳的特征。常见的嵌入方法包括L1正则化(L1 Regularization)和决策树的剪枝等。

    选择适合的特征选择方法需要考虑数据的特点、问题的要求以及计算资源的限制。常用的特征选择工具包括scikit-learn(Python)、Weka(Java)和caret(R)等,它们提供了多种特征选择方法的实现。

    需要注意的是,特征选择是一个迭代的过程,需要根据实际情况不断尝试和调整。在特征选择之前,应该对数据进行预处理、探索性数据分析和特征工程等步骤,以保证特征选择的效果和模型的可靠性。

    2. 二进制粒子群算法

    在这里插入图片描述
    在这里插入图片描述
    二进制粒子群算法(Binary Particle Swarm Optimization,BPSO)是一种基于群体智能的优化算法,用于解决二进制编码的优化问题。它是粒子群算法(Particle Swarm Optimization,PSO)的一种变体,适用于离散型优化问题。

    在二进制粒子群算法中,每个粒子表示一个解向量,而解向量中的每个维度都是二进制值,通常用0和1表示。粒子群算法通过模拟鸟群中鸟的觅食行为,来搜索最优解。每个粒子根据自身历史最优解和群体最优解的信息,更新自己的位置和速度,并通过适应度函数评估自身的解的质量。

    3. 广义回归神经网络(GRNN)分类

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

    图1 广义回归神经网络结构图

    在这里插入图片描述
    在这里插入图片描述
    GRNN数据分类过程如下:

    • 输入训练数据集,包括特征向量和对应的类别标签。
    • 对每个训练样本,计算其与测试样本之间的距离。常用的距离度量方法包括欧氏距离、曼哈顿距离等。
    • 基于距离计算每个训练样本的权重,通常使用高斯核函数来计算权重。高斯核函数将距离转换为权重,越近的样本权重越高,越远的样本权重越低。
    • 对每个类别的样本,根据其权重进行加权平均。权重越高的样本对应的类别影响越大。
    • 将测试样本划分到具有最高加权平均值的类别中。

    4. 部分代码展示

    %% GRNN 广义回归神经网络 classification
    all_select=ones(1,dim);
    [predictResult,accuracy,objval]=GRNN(all_select,trainData ,testData,trainlabel,testlabel,labels,dim);
    
    %% PSO optimisation for feature selection
    SearchAgents_no=30; % Number of search agents
    Max_iteration=30; % Maximum numbef of iterations
    
    % 二进制粒子群算法
    [Target_score,Target_pos,PSO_cg_curve]=BPSO(SearchAgents_no,Max_iteration,dim,trainData,testData,trainlabel,testlabel,labels);                                        
    
    % final evaluation for PSO tuned selected features
    [predictedLables_PSO,accuracy_PSO,~]=GRNN(Target_pos,trainData,testData,trainlabel,testlabel,labels,dim);                                                               
    
    %%
    % plot for Predicted classes
    figure(1)
    plot(testlabel,'ko','markersize', 8)
    hold on
    plot(predictResult,'b*','markersize', 8)
    xlabel('测试集样本');
    ylabel('类别标签');
    legend('实际测试集分类','全部特征下GRNN预测分类');
    title("全部特征下分类准确率:"+ num2str(100*accuracy)+"%");
    axis tight
    
    figure(2)
    plot(testlabel,'ko','markersize', 8)
    hold on
    plot(predictedLables_PSO,'r*','markersize', 8)
    xlabel('测试集样本');
    ylabel('类别标签');
    legend('实际测试集分类','基于PSO的特征选择后GRNN预测分类');
    title("特征选择后分类准确率:"+ num2str(100*accuracy_PSO)+ "%");
    axis tight
    
    figure(3)
    plot(PSO_cg_curve(2:end),'r')
    xlabel('适应度值');
    ylabel('迭代次数');
    title('基于PSO的特征选择优化曲线');
    
    delete_index = find(Target_pos==0);
    remain_index = find(Target_pos~=0);
    disp(['该数据集包含',num2str(numel(Target_pos)),'个特征维度', ]);
    disp(['PSO优化后选择舍弃的特征维度序号为:', num2str(delete_index)]);
    disp(['PSO优化后选择保留的特征维度序号为:', num2str(remain_index)]);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    5. 仿真结果展示

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

    6. 资源获取

    可以获取完整代码资源。

  • 相关阅读:
    java数据库linux面试(详细)
    JAVAOTET交通在线查询购票系统计算机毕业设计Mybatis+系统+数据库+调试部署
    【洛谷题解/NOI2002】P2421/NOI2002荒岛野人
    基于深度学习的模糊认知图方法
    Linux内核开发基础 --- 使用链表管理多设备
    docker 部署Redis集群(三主三从,以及扩容、缩容)
    537. 复数乘法
    Spring Boot+Vue+阿里云OOS实现图片上传
    惯性导航定位技术
    12.存储类别、链接和内存管理
  • 原文地址:https://blog.csdn.net/xiongyajun123/article/details/130912001