• 分类预测 | MATLAB实现PSO-DBN粒子群优化深度置信网络多输入分类预测


    分类预测 | MATLAB实现PSO-DBN粒子群优化深度置信网络多输入分类预测

    效果一览

    1
    2
    3
    4
    5
    6
    7

    基本介绍

    Matlab实现PSO-DBN粒子群优化深度置信网络多输入分类预测
    多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类效果图,迭代优化图,混淆矩阵图。
    粒子群优化学习率、迭代次数和隐藏层单元数目。

    程序设计

    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  清空环境变量
    clc;
    clear;
    warning off
    close all
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  添加路径
    addpath("Toolbox\")
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  读取数据
    res = xlsread('数据集.xlsx');
    
    
    
    %%  性能评价
    error1 = sum((T_sim1' == T_train)) / M * 100 ;
    error2 = sum((T_sim2' == T_test )) / N * 100 ;
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  适应度曲线
    figure
    plot(1: length(curve), curve, 'LineWidth', 1.5);
    title('PSO-DBN适应度变化曲线', 'FontSize', 10);
    xlabel('迭代次数', 'FontSize', 10);
    ylabel('适应度值', 'FontSize', 10);
    xlim([1, length(curve)])
    grid on
    
    %%  损失函数曲线
    figure
    plot(1: length(accu), accu, 'r-', 'LineWidth', 1)
    xlabel('迭代次数')
    ylabel('准确率')
    legend('训练集正确率')
    title ('训练集正确率曲线')
    xlim([1, length(accu)])
    grid
        
    figure
    plot(1 : length(loss), loss, 'b-', 'LineWidth', 1)
    xlabel('迭代次数')
    ylabel('损失函数')
    legend('训练集损失值')
    title ('训练集损失函数曲线')
    xlim([1, length(loss)])
    grid
    
    %%  绘图
    figure
    plot(1: M, T_train, 'r-*', 1: M, T_sim1, 'b-o', 'LineWidth', 1)
    legend('真实值', 'PSO-DBN预测值')
    xlabel('预测样本')
    ylabel('预测结果')
    string = {'训练集预测结果对比'; ['准确率=' num2str(error1) '%']};
    title(string)
    grid
    
    figure
    plot(1: N, T_test, 'r-*', 1: N, T_sim2, 'b-o', 'LineWidth', 1)
    legend('真实值', 'PSO-DBN预测值')
    xlabel('预测样本')
    ylabel('预测结果')
    string = {'测试集预测结果对比'; ['准确率=' num2str(error2) '%']};
    title(string)
    grid
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  混淆矩阵
    if flag_conusion == 1
    
        figure
        cm = confusionchart(T_train, T_sim1);
        cm.Title = 'Confusion Matrix for Train Data';
        cm.ColumnSummary = 'column-normalized';
        cm.RowSummary = 'row-normalized';
        
        figure
        cm = confusionchart(T_test, T_sim2);
        cm.Title = 'Confusion Matrix for Test Data';
        cm.ColumnSummary = 'column-normalized';
        cm.RowSummary = 'row-normalized';
    end
    
    • 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
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81

    参考资料

    [1] https://download.csdn.net/download/kjm13182345320/87899283?spm=1001.2014.3001.5503
    [2] https://download.csdn.net/download/kjm13182345320/87899230?spm=1001.2014.3001.5503

  • 相关阅读:
    prometheus helm install 如何配置告警模版
    services资源+pod详解
    简述Redis事务实现
    力扣面试经典150题详细解析
    jmeter中beanshell的用法小结
    【亲测有效】申请wx.getLocation接口多次审核不通过解决方案,申请原因范文
    Markdown还能这么玩?这款开源神器绝了
    有哪些原因会导致excel文档损坏打不开?
    缺少d3dx9_43.dll怎么解决 win系统如何运行dll文件?
    SANSAN每周新鲜事|透传还能这么玩:用开源物联网平台实现设备互联
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/132781041