matlab 批量划分数据训练集测试集
背景 从UCI下载的数据集需要进行一定的数据预处理,我下载了12个数据集准备在上面验证我的方法,但是数据处理花了好久时间文件结构 dataset_mat存放原始的没有划的.mat文件,preprocessedData 存放划分处理后的数据,每个数据名字为data,是一个结构体,含有四
·
背景
从UCI下载的数据集需要进行一定的数据预处理,我下载了12个数据集准备在上面验证我的方法,但是数据处理花了好久时间
文件结构

dataset_mat存放原始的没有划的.mat文件,preprocessedData 存放划分处理后的数据,每个数据名字为data,是一个结构体,含有四个成员,分别是{trianX,testX,trianY,testY}
代码
test_train_test_split.m
clear all
clc
files = dir("./dataset_mat/*.mat");
test_size = 0.2;
for i = 1:length(files)
file_name = files(i).name;
load(file_name)
[trianX,testX,trianY,testY] = train_test_split(X, Y, test_size);
data = {trianX,trianY,testX,testY};
savepath = "./preprocessedData/" + file_name;
save(savepath,"data")
end
train_test_split.m
function [trianX,testX,trianY,testY]= train_test_split(originalData_X,originalData_Y,test_size)
dataNumber = size(originalData_X,1); %%样本个数
randIndex = randperm(dataNumber); %%打乱数组
new_data_X = originalData_X(randIndex,:);
new_data_Y = originalData_Y(randIndex,:);
testindex = ceil(dataNumber * test_size); %% 获得分界下标
testX = new_data_X(1:testindex,:);
trianX = new_data_X(testindex+1:end,:);
testY = new_data_Y(1:testindex,:);
trianY = new_data_Y(testindex+1:end,:);
end
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)