|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
. v# B' v- X4 K$ j2 W
# d N$ B4 B d: _; \.mat数据集说明
6 l6 J! C; Z( D; I
数据集名称GLIOMA+ ~: |1 i/ K$ a* P; e5 R6 F) p2 ~
0 L; e% p4 p- T6 B1 }GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
8 z Z0 f* I7 L# F
3 U0 i9 [8 _& W/ g- O8 `; G
* _( P- ?( u) b! i7 k: }/ f9 j4 I* Q3 b8 ]) b. L
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
9 ? S8 V9 ?' |' }/ A) s5 p& M4 Q
打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)
4 Y9 \: ^# c. ?* S% |, N8 j& \9 u4 D4 T) }
! a. [" _7 A; u
& O! P8 F0 Q1 y. k3 d, I0 N! O打开lab矩阵! `* z Q3 f; p; P
( H; `$ k) {' Z
2 ~' \- a8 h* j, k) Y3 T7 ^0 h/ Y. \! L6 O* F( V( F" w
有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。( E: `# e0 \% D4 T a0 Y
+ F" ]2 q+ N6 @; z. K9 [数据集划分为训练集和测试集代码
9 w5 J2 h% C5 X8 E- |( b10折划分
0 B& F1 V; u& A3 S2 c2 \! z% P" A说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。
! {: G; A+ ?, D- y$ Q 7 \2 ~. B% m; k# C, ^5 i
6 d% x; v: _, C+ m7 G8 I2 y- 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
$ S- G/ U, I. c
2 j6 j6 h" m1 i* O! c, d+ u$ H' B$ }! H2 O3 p
三七划分
2 `: I* B* \ T" K0 j( w三七划分和十折划分类似,只是少了个输入参数和全局变量
" o# X, R# j+ Y: Y& X. q$ u0 G+ @" r" I6 ^3 M, r
- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
7 u, {7 h$ ~. Y( Z/ X- dataMat=ins;
- len=size(dataMat,1);
- %归一化
- ! N/ U, z2 g1 s" |
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
- 9 Z% t) X* Q ]/ v0 Z8 t5 r- w$ x% @
- 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
& o1 x3 S2 e! h
9 n9 A; r3 X5 D; B4 y3 C |
|