骨密度诊断MATLAB(未完待续。。。)

数据说明:

对数据的Tscore与骨骼密度进行回归

加载数据与数据可视化:

clc;clear all;close all;
filename = 'rawdata.xlsx';
%%
% 初筛
sheet = 1;
% xlRange = 'B2:C3';

dataframe1_chushai = xlsread(filename,sheet);
%%
% 附筛
sheet = 2;
% xlRange = 'B2:C3';

dataframe2_Fushai = xlsread(filename,sheet);
%%
% 筛选结果
sheet = 3;
% xlRange = 'B2:C3';

dataframe3_Shaixuanjieguo = xlsread(filename,sheet);
%%
% 验证集
sheet = 4;
% xlRange = 'B2:C3';

dataframe4_Yanzhengji = xlsread(filename,sheet);
%%

%%

% 可视化处理


% PCA降维
% feature1=dataframe1_chushai;
% [pc,score,latent,tsquare] = pca(feature1');
% cumsum(latent)./sum(latent)

% dataframe4_Yanzhengji(1:5,:)
% DF4afternorm=norm(dataframe4_Yanzhengji);


[r4 c4]=size(dataframe4_Yanzhengji)
% for i=1:c4
%     stem(dataframe4_Yanzhengji(:,i)');
%     hold on;
%     
% end
for i=1:c4
    subplot(2,c4./2,i);
hist(dataframe4_Yanzhengji(:,i));
a=num2str(i);
b='Feature No.';
c=strcat(b,a)
title(c);
end



对数化处理之后:


归一化操作


%%矩阵数据归一化  
%归一化作用是处理奇异样本矩阵  
%将矩阵数据规范与一个范围之中,使不同维度具有可比性  
clc;  
clear;  
X=[790 3977 849 1294 1927 1105 204 1329  
    768 5037 1135 1330 1925 1459 275 1487  
    942 2793 820 814 1617 942 155 976  
    916 2798 901 932 1599 910 182 1135  
    1006 2864 1052 1005 1618 839 196 1081];  
Y=mapminmax(X,0,1);  

from:https://blog.csdn.net/yb536/article/details/41050181


查看输入数据:

对数据归一化处理:

[ir ic]=size(Input);
for i=1:ic
    tempM=Input(:,i);
   Input(:,i)=mapminmax(tempM',0,1)';
end
%%
[ir ic]=size(Input);
for i=1:ic
    plot([1:length(Input(:,i))],Input(:,i));
    hold on;
end


对数据特征进行排列组合,在三维空间中可视化


%%
% 对数据特征进行排列组合(选出三个指标在三维空间中可视化)
% plot3(Input(:,1),Input(:,2),Input(:,3),'.')
xx=[1:ic];
% group = perms(xx);
% group=nchoosek(7,3);
% combntns
group=combnk([1:7],3);
nog=length(group);
for i=1:length(group)
    subplot(5,7,i);
   plot3(Input(:,group(i,1)),Input(:,group(i,2)),Input(:,group(i,3)),'.');
   title(num2str([group(i,1) group(i,2) group(i,3)]));
end






回归目标:





猜你喜欢

转载自blog.csdn.net/weixin_39257042/article/details/80777350