|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
; R Z- [; `. P% ?( R' a% F
X: p8 |* t- x @.mat数据集说明/ I& p" A" Z4 A: O( v; d! {* O
数据集名称GLIOMA
$ `" G5 @2 H5 q) h1 U$ f; H% X }( J7 ^0 F
GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)4 o: X, c. I7 `& m/ A! c2 |0 w
/ s5 _# R! p0 S* L' D
7 `+ y& B+ q7 G- a3 Z: O
* O' T, R( ]/ r5 K ]) f$ \1 I
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
, N( I% }* z: h
2 e' H2 s4 c `7 N$ t打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)( {" N: A+ _' W5 D; i1 s
, L* a+ T3 E$ E+ X8 y& l$ ]: f
8 n( G$ J7 b1 x3 k8 n; P
" I9 e" q* K( O; I4 q/ W打开lab矩阵- I' i9 n9 H U/ {6 ?7 V6 m
" t) S2 H+ F8 J0 ^/ h7 O5 Q; K
5 K: q; S: G1 Q) z# D* J- v
3 Z, A, L7 h! q4 C& ^; n K1 H, l有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
" Z6 [- u2 e; W, e9 a
6 y8 }* ^. |* X! K) z: m数据集划分为训练集和测试集代码- r5 I( j- s% a. V1 Z1 J
10折划分8 Q A* E E9 d& ~) o C; U
说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。 X. K0 k& u, ?$ H( O0 u
) n" H6 N* c* c* W, h& W
+ r! Y$ j8 p1 `3 G; a4 J- 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
6 k; J( a. ?/ C+ _# e$ p : O$ X. Q; K Z7 j# d+ A
& M3 L) ?' _ I. D' T0 O
三七划分
1 |1 |- m' {4 N p; C三七划分和十折划分类似,只是少了个输入参数和全局变量: L- s* B! ~- }+ \6 @: i- T
5 j# Z) _8 h; W+ U; S
- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
- 7 ?) _( e" @1 M+ r
- dataMat=ins;
- len=size(dataMat,1);
- %归一化
- . n2 A8 `+ a* I& S) E6 [
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
2 c, z+ H9 N! O8 K8 c- 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
6 r# u2 R7 w6 G3 p* @5 n
u+ @# m8 h; c5 h N; v4 h |
|