|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
5 _3 F) ~) p9 e/ l3 g, M4 ]* j4 X
.mat数据集说明0 V# \( U0 K7 |% w( v
数据集名称GLIOMA
9 m' Y& o; F) v5 t r( e7 L$ Q
/ F0 B! ^9 k8 O" q4 Z/ N0 q+ y3 U% n- fGIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
, w1 D+ X4 o& o! w/ x- Z8 i1 G5 y7 `* C6 Z* O
* e3 r5 r6 _6 O8 {3 ?
; p I) e6 G4 y( w
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。2 B/ I# a$ y' I7 ?
5 c$ c2 |! f; V% C% e打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)& L9 C- R' j" d5 ~! t/ w
" C# `0 ~# T3 Y( l6 N+ p) c
2 @7 f" F$ G- T0 g! H/ n: X, d9 W9 h1 E- @4 @+ [( n8 a6 j J& M0 @. R
打开lab矩阵+ U- Y, k& W: V/ c1 ?8 l0 `
) t. m, U4 g6 O: Y) Z0 O
# H/ V' n3 h: g* ^: Q: D+ Q3 B' ^3 c! s# l
有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
) G4 C' m6 J3 {" `# Z# w, h; Z! E( H( [/ I: F5 b
数据集划分为训练集和测试集代码6 E }9 r* e6 k* c
10折划分
+ V) e: i, Y. a/ U5 P5 a+ }* c0 p9 Q说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。
! ^6 I9 ]( m3 d . Z. @2 S; g& H6 c4 ?& O
' G; d- t2 p9 w/ K5 d# S2 r) g
- 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
: q- _" R+ R( F* q q 7 O9 _( Y' U" i2 _, f: p2 }
9 P3 W( Q/ w6 Z" Y8 |三七划分( P6 x; C0 E0 N: y0 O0 F+ f& d8 u# m
三七划分和十折划分类似,只是少了个输入参数和全局变量; h( h# D4 P% N1 b$ w/ ?. m
$ y" D# x$ B+ _2 ?- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
- , {2 ^( A3 H$ H& Q+ Z
- dataMat=ins;
- len=size(dataMat,1);
- %归一化
- ) l/ i# }/ R, V4 z
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
) F8 Y5 T0 m# V! 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
1 T1 e& N# @) j' s/ U7 \9 z* h ) l3 ]5 D% [$ E8 A
|
|