【故障诊断的归一化判别图嵌入】输出包括 NDGE 的最终投影矩阵、不同维度的准确率和每个样本对不同故障模式的概率(Matlab代码实现)

本文介绍了如何使用归一化判别图嵌入(NDGE)进行机器故障诊断,探讨了最终投影矩阵、不同维度的准确率以及样本对故障模式的概率。通过Matlab代码展示了训练和测试过程,以及如何评估模型性能以优化故障分类。

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据


💥1 概述


输出包括 NDGE 的最终投影矩阵、不同维度的准确率和每个样本对不同故障模式的概率。
在运行代码后,将获得不同维度准确率的绘图。
获取结果应该需要不到5分钟。请注意,测试部分非常快。训练部分稍耗时间。原因是代码中有很多循环,导致 matlab 运行缓慢。

谈论一种应用于机器故障诊断的机器学习方法,其中涉及使用归一化判别图嵌入(NDGE)以实现数据的降维和特征提取,以更好地分类和识别故障模式。在这样的背景下,讨论“NDGE的最终投影矩阵”、“不同维度的准确率”及“每个样本对不同故障模式的概率”是非常合理的。

1. NDGE的最终投影矩阵:归一化判别图嵌入(NDGE)是一种线性降维技术,可以视为线性判别分析(LDA)的一个变种。它通过归一化的方式来优化类间散度与类内散度的比例,同时考虑了数据的分布情况。NDGE的最终输出是一个投影矩阵,它将高维数据映射到具有较高类分离性的低维空间。你可以通过矩阵的列来获得不同的线性判别特征向量。

2. 不同维度的准确率:在进行降维处理后,你通常会用一个分类器(比如支持向量机、神经网络、随机森林等)评估不同维度下的性能,即在降维到不同数量的特征时模型的准确率。这有助于确定最佳的特征空间维数,实现最佳的故障分类性能。准确率可以通过交叉验证或在独立测试集上进行评估得出。

3. 每个样本对不同故障模式的概率:这部分的输出是基于某种统计学习算法得出的后验概率。对于给定的样本,该算法根据在低维空间中的位置,可以计算出该样本属于各个故障类别的概率。这些概率可以通过软输出分类器(如logistic回归、softmax回归或其他概率输出的分类器)得到。

为了获取上述输出,你需要:
- 使用归一化判别图嵌入或相似的降维技术来训练数据,并收集最终的投影矩阵。
- 应用不同的降维设置,使用交叉验证来评估模型在各个低维空间维数上的准确性。
- 在分类过程中,使用概率输出的分类器,为每个测试样本生成对各个故障模式的概率估计。

📚2 运行结果

主函数代码:

close;
clear all;
%happen=160;
 
%% read in data including normal and fault data
d00=importdata('d00.dat');
d00te = importdata('d00_te.dat');
% read in the training and testing data
for i = 1 : 21
    str_i = num2str(i);
    if i < 10
        str_i = strcat('0',str_i);
    end
    file_name = strcat('d',str_i,'.dat');
    file_name_test = strcat('d',str_i,'_te.dat');
    train_fault(:,:,i) = importdata(file_name);
    test_fault(:,:,i) = importdata(file_name_test);
end

train_normal=d00';
[train_normal,mean,std]=zscore(train_normal);
test_normal(:,:,i)=(d00te-ones(size(d00te,1),1)*mean)./(ones(size(d00te,1),1)*std);
for i = 1 : 21
    temp_train_fault = train_fault(:,:,i);
    train_fault(:,:,i)=(temp_train_fault-ones(size(temp_train_fault,1),1)*mean)./(ones(size(temp_train_fault,1),1)*std);
    temp_test_fault = test_fault(:,:,i);
    test_fault(:,:,i)=(temp_test_fault-ones(size(temp_test_fault,1),1)*mean)./(ones(size(temp_test_fault,1),1)*std);
end

%% Trainingset and Testingset


gnd_tr = [];
gnd_test_other = [];
tempTrain = [];
tempTest = [];
j=1;
for i =  [1,2,6,7,8]
    gnd_test_other = [gnd_test_other,[ j*ones(1,960-160)]];
    gnd_tr = [gnd_tr,j*ones(1,480)];
    tempTrain = [tempTrain; train_fault(:,:,i)];
    tempTest = [tempTest;test_fault(161:960,:,i)];
    j=j+1;
end 
Train = tempTrain;
Test = tempTest;


[Accuracy,ProjectionMatrix,VV] = slpp_te_ub( Train,Test,gnd_tr,gnd_test_other,5,30,'mindist',30, 30);
plot(Accuracy,'ro-');
legend('NDGE');
xlabel('Dimension')
ylabel('Accuracy')

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1] Wang R , Wang J , Zhou J ,et al.Fault diagnosis based on the integration of exponential discriminant analysis and local linear embedding[J].The Canadian Journal of Chemical Engineering, 2018.DOI:10.1002/cjce.22921.

[2] Peng C , Li J , Huang H .Uncorrelated and discriminative graph embedding for face recognition[J].Optical Engineering, 2011, 50(7):249-249.DOI:10.1117/1.3599876.

🌈4 Matlab代码、数据

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值