cg 样本划分 matlab,机器学习数据集制作与划分MATLAB实现 – OmegaXYZ

.mat数据集说明

200156729_1_20200824052849927.png数据集名称GLIOMA

GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)

200156729_2_2020082405285099.png

Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。

打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)

200156729_3_20200824052850146.png

打开lab矩阵

200156729_4_20200824052850333.png

有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。

数据集划分为训练集和测试集代码

10折划分

说明:①在代码目录下,新建文件夹dataset,将.mat数据集放入其中

②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)

③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值

④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。

MATLAB

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23function [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

三七划分

三七划分和十折划分类似,只是少了个输入参数和全局变量

MATLAB

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21function [train_F,train_L,test_F,test_L] = DIVDATA37(dataName)

file = ['dataset/',dataName,'.mat'];

load(file)

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]));

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值