|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
9 _) V, e2 @3 A
) F/ k- A5 |) X2 ^& W.mat数据集说明
+ G# m. m+ h* S( ? g
数据集名称GLIOMA
2 a$ d, F" O6 T0 p( u* N) ~5 f7 `0 a
GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
! S3 L' |# S5 H e. X6 I( C V, L( d5 X$ S! _& R. q4 C3 ~
: Q7 D0 Y' {* G9 g0 V
+ A$ u1 Z# P' C, y0 b) kIns矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
, d4 f& w+ x& S$ [* Q: d; \8 [
* ^3 Q( ^ f( q% F1 ]: e. ]打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)
: r& q& ^" M/ o, i! P) x) ]7 k* W( D7 e" h% z. W$ i
* s5 t8 G2 e C7 S9 D% f; x2 L! B
& o7 @; U* P0 Y
打开lab矩阵
( o3 `0 e k8 @% B9 i( u2 P6 a" W9 C+ [3 ]
$ N/ I* l1 Q) u9 L2 [: i
! i" a1 i# z, F6 S+ w9 H
有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
; \' c: o2 l# X+ _0 G% g* j) i
数据集划分为训练集和测试集代码# U- d$ ~! s$ j) O8 J5 T3 t
10折划分* g1 s! E* z* N- g+ G
说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。
* S. f) L6 Z* K1 b
. r0 @! E% s. U/ P
, d6 s! P& J8 s1 |( s7 q- 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
7 ?: y1 N2 ~' a+ D# x2 [4 L
( `% g+ y5 Z2 W F- k: G! ?4 F/ \5 {. J% d3 r" p4 i1 U/ ~& J) f
三七划分5 D5 x. _5 F# _ ]) \! s+ i! O
三七划分和十折划分类似,只是少了个输入参数和全局变量" [0 d2 z. I7 ^4 Q$ f7 h1 c
) @8 k, l5 L7 x2 u- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
- * j0 G3 E+ p! V3 _3 ~& A9 w
- dataMat=ins;
- len=size(dataMat,1);
- %归一化
, r+ F. v3 r( W% l- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
% A: Y4 `5 t5 D5 G O- e- 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# T6 [6 ]2 a/ V y
: t4 H. c k: \0 x9 t) J |
|