|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
" F- q5 s2 Z" W2 M* j6 Z6 _- z/ s% I
.mat数据集说明7 n& W& Q8 G! h$ \3 D E: E% k0 A
数据集名称GLIOMA( x7 M" H& H* d7 ]7 L: G
4 }+ I, n! F4 [2 u6 { JGIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
. `7 p$ g; \$ E0 ?
( ^- B/ ?7 L! V" w6 r0 w
$ f9 ]( d' j/ c$ r4 U* ^: Q' I1 @0 A9 ~
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
Q8 F- x- Q& u& q+ J: O) T2 D ~: f" F1 Z
打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)
$ G2 |) Y2 n" I2 p6 g3 u" x$ b# C
6 h+ ]. a" ^" O: _1 t
$ G+ m4 k. k# Y X5 N5 X' z7 s
- g' l9 N: M1 s8 {7 t; p
打开lab矩阵
, U) z* V2 ?2 m& C. U6 q1 a* b2 S* U6 y
2 c. t0 l8 M) |) K# |3 p1 e: s! D
. \8 y) h* x8 e8 r, u- g有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。0 Z( e8 }" w, A% Q/ ^
7 n1 ^1 H' Z! N. a
数据集划分为训练集和测试集代码
9 Y3 X" Y H8 D1 z) c$ \; v f10折划分) k0 I8 U1 f! ~% `8 z
说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。
0 }( b: Z3 I. E: i, \
9 P$ t e/ y4 P7 P5 \* H @+ Q9 g8 z, D% _- h5 D6 r1 g n0 u
- 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. l9 s4 G8 {* w/ e5 [. V8 s* a
3 [# Z4 j7 N5 j& t4 i1 _2 ]; v' z4 ~
) O+ t5 a- U/ p+ {/ l三七划分- A. A2 v7 e' D) b: c
三七划分和十折划分类似,只是少了个输入参数和全局变量
( u) S9 I0 }: l+ @) g [% M8 S b9 {* W% C- N. c$ M: S0 Q
- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
0 }. n+ c- ~; k( Z& n! B3 _* T% v- dataMat=ins;
- len=size(dataMat,1);
- %归一化
4 ?8 A* i% p0 b0 J: R5 f- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
3 g/ O! s$ a1 o- 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
: S% _+ n3 x4 ?9 g" H7 s 6 u& ]2 n u% `
|
|