|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。 6 M4 u% ?" t$ F; M* r" `4 A
: G5 p8 ~4 Q; @& f$ n.mat数据集说明
# H; e* j4 Y6 O+ F1 i. A
数据集名称GLIOMA
" B6 k- ?# y& y* Y2 K: ?7 \0 {' j' G9 j) R: n- t6 ]. R! R) I
GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)6 k6 u. X7 J* O5 R
& f2 q4 `" I1 `. ?" r1 c
: L0 _4 k# ]! S1 {, E9 P
2 F7 { b( g* r; W; X* j' h$ k0 eIns矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
7 F! U- m* J) [' H% p2 L* S" k6 J8 I: I$ |
打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)& c h4 J+ A, W4 l3 p3 f
1 m! ?) u( R- l- k. Z& a# s s0 j
, f6 |7 z, R9 n5 v4 Y
6 x0 O- ?+ R; y" N6 ]打开lab矩阵
; L( Y. L3 N r ^# i; A+ b1 {" }7 D
3 f: K& P7 O# A2 ~5 O- l0 O
7 r4 q) O' U2 | [
有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。& u8 U% e/ b2 v' s6 k# F- h) W( V3 L
1 W( E1 w& a+ T! z/ v* b数据集划分为训练集和测试集代码
$ S2 T7 a" A. u; }( I: ~$ v; ]. W1 I10折划分
3 H+ c- s( ]+ f% r说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。' P+ ?5 v7 g# t
1 H% q0 V. h/ |0 s8 [) P& C
) C' \! R4 }& Q2 l; F5 a+ }6 A- function [train_F,train_L,test_F,test_L] = DIVDATA10fold(dataName,iter)
- file = ['dataset/',dataName,'.mat'];
- load(file)
- fold = 10
- dataMat=ins;
- len=size(dataMat,1);
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
- if mod(iter, 10) == 1
- Indices = crossvalind('Kfold', length(lab), fold);
- save Indices;
- else
- load Indices;
- end
- site = find(Indices==iter);
- test_F = newdataMat(site,:);
- test_L = lab(site);
- site2 = find(Indices~=iter);
- train_F = newdataMat(site2,:);
- train_L =lab(site2);
- end( c' k/ ]- H/ `' A4 ^, n# O
6 H$ M& l& ]" S
3 g( R' q6 ~, c; O
三七划分
' ?4 t: ?* X$ P! m* I三七划分和十折划分类似,只是少了个输入参数和全局变量
& i/ X& F* | ~/ M$ P
7 I( l- z( @$ G- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
' F( x. I3 x8 @0 F, W) j- dataMat=ins;
- len=size(dataMat,1);
- %归一化
) L! K- h7 n- Y- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
- 1 b$ U# C5 r3 S
- Indices = crossvalind('Kfold', length(lab), 10);
- site = find(Indices==1|Indices==2|Indices==3);
- test_F = newdataMat(site,:);
- test_L = lab(site);
- site2 = find(Indices~=1&Indices~=2&Indices~=3);
- train_F = newdataMat(site2,:);
- train_L =lab(site2);
- end
5 v o0 X! s1 p9 @* D/ L: ^7 P
7 s' S% L) ?& g2 `# }9 B |
|