How to separate features and target (numeric values) in a tabular text datastore to import into Deep Network Design?

Hello everyone, I have the following problem: I imported a csv file with numerical data containing the features and the target into a tabular text datastore, however, to import into Deep Network Design this tabular text datastore needs to contain separate features and target. I have no idea how to do this, can someone give me a hand?
For example, my csv file has 500 rows 10 features and the target.
Thank you very much!

Answers (1)

yes,sir,may be choose the data to X and Y,such as
% 500 rows 10 features and the target.
X = Data(:, 1:10); % 10 features
Y = Data(:, end); % target
may be upload some data mat to do analysis

4 Comments

Thanks for your answer Yanqi, but unfortunately Matlab's Deep Network Design apparently only accepts Datastore, not accepting .mat files, and unfortunately there is no way to do the split you suggested in a datastore. But thanks for your help :)
yes,sir,may be use cell to rerange data,such as
clc; clear all; close all;
% 500 rows 10 features and the target.
Data = rand(500, 10);
Data(:, 11) = randi([1,2],500,1);
X = Data(:, 1:10); % 10 features
Y = Data(:, end); % target:1、2
% make data
XTrain = [];
for i = 1 : size(X, 1)
xi = X(i,:)';
XTrain{i,1} = xi;
end
YTrain = categorical(Y);
% make net
layers = [ ...
sequenceInputLayer(10)
lstmLayer(5,'OutputMode','last')
fullyConnectedLayer(2)
softmaxLayer
classificationLayer];
options = trainingOptions('adam', ...
'ExecutionEnvironment','cpu', ...
'MaxEpochs',100, ...
'MiniBatchSize',5, ...
'GradientThreshold',1, ...
'Verbose',false, ...
'Plots','training-progress');
net = trainNetwork(XTrain,YTrain,layers,options);
Hi Yanqi, thanks again for your help and proactivity. But after many tests and analysis of the structure of a tabular test datastore, I found a way that solves the issue and separates the 10 features from the target:
dsTrain = tabularTextDatastore("datasetrain.csv");
preview(dsTrain)
dsnewTrain = transform(dsTrain, @(x) [cellfun(@transpose, mat2cell(x{:,1:10},ones(1,500)),'UniformOutput',false), mat2cell(x{:,11},ones(1,500))])
preview(dsnewTrain)
dsValid = tabularTextDatastore("datasevalid.csv");
preview(dsValid)
dsnewValid = transform(dsValid, @(x) [cellfun(@transpose, mat2cell(x{:,1:10},ones(1,250)),'UniformOutput',false), mat2cell(x{:,11},ones(1,250))])
preview(dsnewValid)
dsTest = tabularTextDatastore("datasettest.csv");
preview(dsTest)
dsnewTest = transform(dsTest, @(x) [cellfun(@transpose, mat2cell(x{:,1:10},ones(1,250)),'UniformOutput',false), mat2cell(x{:,11},ones(1,250))])
preview(dsnewTest)
Again, thank you very much for your help and for those who have the same problem as me, this solution solves it simply. :)
Hello Paulo, can you please explain the code ? seem this might solve the issue i am having too..
thank you

Sign in to comment.

Categories

Products

Release

R2021b

Asked:

on 2 Dec 2021

Commented:

on 9 Mar 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!