|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。 4 T" v) E0 S; s$ X( j+ y: g
6 T' Q3 l9 P0 B" }, W
.mat数据集说明
$ ]# k9 E4 Q+ C* V$ \! [: I
数据集名称GLIOMA
* `3 ] f) X; m. @2 f; U* x
8 T3 @4 `- J7 A& JGIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)& U5 {4 D: g' ^8 N
a# s( r! B C( Y5 c2 U
5 ?$ Z$ M5 R' `* s" e; z. s
( q- ~+ W) @+ o! z6 c, a' pIns矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
' O3 j) ~3 O- D) |7 y
# f% k" W$ D; T7 a _; V打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)
3 X$ R4 D% B: j
# f( k- c' q4 ^5 g3 R+ ^2 Y
# B$ T2 r1 n: J9 d" [. j& ^
1 W, V: t9 T( B, L: a% [& w打开lab矩阵
$ t5 n5 W) [! S$ q, H/ U4 {4 \7 c
7 N4 J/ X8 h! E; E
* S- W$ S) U/ z- g) O6 ^
' z0 ?: }2 C& A1 W
有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
- U+ N4 c) O: B( P! w h& J5 M: T( H7 q
数据集划分为训练集和测试集代码/ {; M7 |2 i; d0 r* t" _
10折划分
# e# \, l8 j' I$ `说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。4 \6 L! n7 Y5 P5 R
i4 K' f3 ^/ {7 p
! x( }; \4 Z4 k( 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$ f% \ D6 ] v
/ Y$ z0 J" i; o4 I3 N0 o1 ^/ n' X( \& B) C% [0 v
三七划分
. _! c) p& a1 q) y$ Q三七划分和十折划分类似,只是少了个输入参数和全局变量" K$ ?, c/ x2 T" Z5 w7 Z& S
6 e9 W: y; \1 J& l
- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
) R* _7 c7 ?% `" N- dataMat=ins;
- len=size(dataMat,1);
- %归一化
- 6 Y' K- W" _: {0 h4 W
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
, V' ^4 b2 q% j+ U6 p- 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# }% [8 p+ E8 N% e) M4 g
/ D) {3 M8 h1 y" g5 S& Q+ }. w
|
|