分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测

分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测

目录

    • [分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测](#分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测)

效果一览




基本介绍

Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测(Matlab完整程序和数据)

1.最大互信息系数MIC(数据特征选择算法)的分类预测,MIC特征选择分类预测,多输入单输出模型。

2.多特征输入模型,直接替换数据就可以用。

3.语言为matlab。分类效果图,混淆矩阵图。

4.分类效果图,混淆矩阵图。

运行环境matlab2018及以上。

经过特征选择后,保留9个特征的序号为:

1 3 5 7 8 9 10 11 12

研究内容

最大互信息系数(Maximum Information Coefficient,MIC)是一种常用的数据特征选择算法,用于发现特征之间的非线性关系。它可以测量两个变量之间的最大相关性。首先,准备一个包含多个特征和目标变量的数据集。对于每对特征和目标变量,计算它们之间的互信息值。互信息度量了两个变量之间的相关性。将计算得到的互信息值进行排序,按照互信息值的大小进行降序排列。从排序后的互信息值列表中选择具有最大互信息系数的特征。可以根据具体需求选择一定数量的特征。最大互信息系数算法的核心思想是找到特征与目标变量之间的最大相关性,因此选择具有最大互信息系数的特征可以被认为是最相关的特征。这种选择方法可以帮助排除那些与目标变量关联较弱的特征,提高模型的性能和效率。在实际应用中,可以结合其他特征选择方法或降维技术来进一步优化特征选择过程。

程序设计

clike 复制代码
%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input );
t_train = T_train;
t_test  = T_test ;

%%  特征选择
k = 9;        % 保留特征个数
[save_index, mic] = mic_select(p_train, t_train, k);

%%  输出选择特征的对应序号
disp('经过特征选择后,保留9个特征的序号为:')
disp(save_index')

%%  特征重要性
figure
bar(mic)
xlabel('输入特征序号')
ylabel('最大互信息系数')

%%  特征选择后的数据集
p_train = p_train(save_index, :);
p_test  = p_test (save_index, :);

%%  输出编码
t_train = ind2vec(t_train);
t_test  = ind2vec(t_test );

%%  创建网络
net = newff(p_train, t_train, 5);

%%  设置训练参数
net.trainParam.epochs = 1000;  % 最大迭代次数
net.trainParam.goal = 1e-6;    % 误差阈值
net.trainParam.lr = 0.01;      % 学习率

%%  训练网络
net = train(net, p_train, t_train);



%%  数据反归一化
T_sim1 = vec2ind(t_sim1);
T_sim2 = vec2ind(t_sim2);

%%  性能评价
error1 = sum((T_sim1 == T_train)) / M * 100 ;
error2 = sum((T_sim2 == T_test )) / N * 100 ;

%%  绘图
figure
plot(1: M, T_train, 'r-*', 1: M, T_sim1, 'b-o', 'LineWidth', 1)
legend('真实值', 'MIC-BP预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'训练集预测结果对比'; ['准确率=' num2str(error1) '%']};
title(string)
grid

figure
plot(1: N, T_test, 'r-*', 1: N, T_sim2, 'b-o', 'LineWidth', 1)
legend('真实值', 'MIC-BP预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'测试集预测结果对比'; ['准确率=' num2str(error2) '%']};
title(string)
grid

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502

[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502

相关推荐
Crazy learner3 个月前
麦克风传递函数的深度解读:原理、应用与案例
音频·mic
不想当个技术宅3 个月前
【图像压缩与重构】基于BP神经网络
图像处理·matlab·bp神经网络·图像压缩
不想当个技术宅3 个月前
【图像压缩与重构】基于标准+改进BP神经网络
matlab·bp神经网络·gui·图像压缩
机器学习之心4 个月前
回归预测 | Matlab实现GWO-BP-Adaboost灰狼算法优化BP神经网络集成学习多输入单输出回归预测
算法·matlab·回归·bp神经网络·灰狼算法优化·gwo-bp-adaboost
机器学习之心6 个月前
区间预测 | Matlab实现BP-ABKDE的BP神经网络自适应带宽核密度估计多变量回归区间预测
bp神经网络·自适应带宽核密度估计·多变量回归区间预测·bp-abkde
简简单单做算法7 个月前
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
matlab·分类·bp神经网络·小波变换特征提取·烟草香型分类
简简单单做算法7 个月前
基于BP神经网络的16QAM解调算法matlab性能仿真
神经网络·算法·matlab·bp神经网络·16qam解调
机器学习之心8 个月前
分类预测 | Matlab实现CNN-LSTM-SAM-Attention卷积长短期记忆神经网络融合空间注意力机制的数据分类预测
卷积长短期记忆神经网络·数据分类预测·sam-attention·cnn-lstm-sam·融合空间注意力机制
机器学习之心8 个月前
分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测
卷积双向长短期记忆神经网络·数据分类预测·sam-attention·cnn-bilstm-sam·融合空间注意力机制
机器学习之心8 个月前
回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测
bp神经网络·模拟退火算法·sa-bp·多变量回归预测