|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
.mat数据集制作若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。 " S7 H4 q5 X% x5 @% R
4 S* X D6 _' h; n8 O2 N2 Q.mat数据集说明 m1 X& y* X) x3 D! g* Q
数据集名称GLIOMA' c$ @' Y, b* U1 [, w! `* X( ?
1 V' |3 t5 t) v! s
GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
+ @5 T8 J' G) B! x1 w4 f4 x$ ]7 y+ h; z' A$ J, g$ t- ^+ [$ C
# y: @$ b& v6 g2 j! {/ q5 n8 Z. x1 _) K4 r. J
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。, ?& x1 l9 j3 D+ x$ R
4 J1 k( \! L; `1 o3 r! K
打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)
5 K9 {+ A% B4 a# k; M: p6 s5 u: g, o( {7 z9 M2 z
6 j- a0 R+ D/ u. Y6 M
. {" P* T7 Q, W9 j" o% @
打开lab矩阵* @) ]+ B$ w5 z8 f6 r2 {: d
t! E* u% l8 J0 F% b
" ^" o$ I. }+ {/ i2 Z2 A q9 C: _
6 l& g" A# A5 ]* h$ u( h; \/ e |" x有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
! t& r7 S% a2 A! c% W8 m" c) ~) M! ~: p V
数据集划分为训练集和测试集代码
% N8 N1 S c' F" u4 S$ P10折划分% `: ~+ |: k) g R$ F; v" J3 P
说明:- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。& f8 w4 z+ P3 C& a( s. ]5 B6 I
- s, ?: v& c" s
; W! G, X' p: }" B# D- 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);
- end8 p5 R$ P/ ?: r! x6 v( m
$ T: @) q2 k) }, [3 n, Y
/ G% `% Y0 V3 x三七划分
% U$ T" d: B8 ?( c8 N. s( z) |三七划分和十折划分类似,只是少了个输入参数和全局变量. q6 h/ R9 j- U% r+ ]
5 N4 C0 f* m+ P) l# l
- function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)
- file = ['dataset/',dataName,'.mat'];
- load(file)
6 _& v& N" z) }# x7 b; q- dataMat=ins;
- len=size(dataMat,1);
- %归一化
- / K' P, g# l% x( n3 b
- maxV = max(dataMat);
- minV = min(dataMat);
- range = maxV-minV;
- newdataMat = (dataMat-repmat(minV,[len,1]))./(repmat(range,[len,1]));
7 ]+ n c3 K. T/ U$ B- 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
* x" s7 ]' H. u6 C% x- ]
/ ^* Q0 k: V2 p) I |
|