|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
5 `" u7 k# P3 R/ z) l0 `2 e; A& V0 ^8 I* c8 @* u6 a" B- D$ U
.mat数据集说明
! W) [. G1 H- d4 V& {' {) {& f
数据集名称GLIOMA: x# H0 m; {; a) O
& N. m* c! |' K; ?4 K! y7 DGIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
. D/ y, ]5 [2 _7 v( B) Q! k
! a! C( ]- O7 [: h2 n" v
; C9 v, K! G0 w s! ?7 c
! u7 T5 s9 E5 t! s
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。9 V5 d$ N. m2 E2 y/ o
, V+ A: e; R& K打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量), u8 U# Y3 f5 k) x
4 S ^& I& H7 f1 \! ]2 g, h
: n( H; E5 v: Z% H7 i2 j9 g
a4 r4 A4 o* j- {- c: Q打开lab矩阵, L1 Z/ K+ Z& K2 f
}, c) _5 l. I, \6 q7 N9 R
( M( T8 r) a# b0 L5 V
8 Y/ o8 n% @% J有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
, D9 z M7 g$ L0 { `8 f$ b. F' k% x/ \) F: o# o2 K
数据集划分为训练集和测试集代码
0 y4 C8 V6 Q! K+ {4 t0 u/ f10折划分
7 ^# Y% B e* N; G说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。% D: T% j9 J( [7 r/ K6 R: m, f* W! _
' j/ r! Q: c( P4 X9 [) P
/ @: M* {- C% j; ^; F6 U, O1 V- 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) ~& l4 U* q' i 7 y: u0 S/ F* o
% K& ~9 \% { E1 w3 r. J
三七划分
, l% p. T5 K( L! y- {三七划分和十折划分类似,只是少了个输入参数和全局变量
, h: X8 B T @! Z3 L1 s- G5 g& _" q" ~* c) s# }8 |9 b
- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
" z+ Q9 R7 m9 L( Y# g6 {- dataMat=ins;
- len=size(dataMat,1);
- %归一化
- 8 F' J- i! A5 A
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
5 ]1 A- E3 L- L! H; v- 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
" p& w7 r- v1 I: \8 p ; }1 E4 J( Z& D; }( D
|
|