.mat数据集制作
若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab。
相关文章
.mat数据集说明
数据集名称GLIOMA
GIOMA包含两个矩阵,一个是实例矩阵或者叫决策变量(ins),另一个是标签矩阵(lab)
Ins矩阵大小50*4434,说明该GLIOMA数据集有50个实例(样本),有4434个特征,这50个实例(样本),每一个实例有一个对应的标签lab,标签就是类别。
打开Ins矩阵,有50行说明有50个实例(样本),有4434列说明有4434个特征(太多了显示不了),这里面的任意一个值(标量)叫做特征值,任意一列是特征向量(列向量),任意一行是实例向量(行向量)
打开lab矩阵
有50个标签,标签就是类别(比如1代表幼儿,2代表青年,以此类推),可以看到这是一个具有4个类别的数据集。
数据集划分为训练集和测试集代码
10折划分
说明:
- ①在代码目录下,新建文件夹dataset,将.mat数据集放入其中
- ②输入dataName是一个字符串,如数据集名称为GLIOMA.mat,则输入的dataName为 ‘GLIOMA’(不要加.mat)
- ③iter是算法运行的次数,运行第一次调用第一个随机划分的值,运行第i次调用第i次随机划分的值
- ④Indices是随机划分数据集的索引,iter = 1是生成,之后的则读取第一次生成的文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 |
三七划分
三七划分和十折划分类似,只是少了个输入参数和全局变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function [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 |
你好,可以分享下GLIOMA数据么?非常感谢!我在UCI上没有找到
可以用这个上面的数据集,和GLIOMA一样的https://github.com/xyjigsaw/Dataset
好的,非常感谢!
请问楼主,如果不是分类数据,是一维时间序列数据该怎么办?
请问怎么使用matlab制作ins和lab数据集,本人matlab小白
先去UCI上下载 .mat格式或者.txt格式的数据集,txt格式的需要导入到MATLAB。
请问怎么先在GIOMA下面制作ins和lab数据集
手动在matlab变量表保存即可
请问楼主如何制作成ins和lab啊
已经解决了,给楼主填麻烦了,谢谢
请问怎么先在GIOMA下面制作ins和lab数据集
代码中的lab是什么