function [TrainingTime, TestingTime, TrainingAccuracy, TestingAccuracy] = LSM(Inputs, Targets, No_of_Output)
a1=[];
a2=[];
a3=[];
a4=[];
%%%%%%%%%%%%% Selecte training set randomly
a = Inputs;
b = Targets;
c = [ b' a'];
[M,N] = size(c);
id = randperm(M,floor(0.7*M)).';
train1 = c(id,:);
c(id',:) = [];
test1 = c;
%%%%%%%%%%% Load training dataset
train_data=train1;
T=train_data(:,1:No_of_Output)';
P=train_data(:,No_of_Output+1:size(train_data,2))';
[inputn,inputps] = mapminmax(P); % Normalization
[outputn,outputps] = mapminmax(T);
clear train_data; % Release raw training data array
%%%%%%%%%%% Load testing dataset
test_data=test1;
TV.T=test_data(:,1:No_of_Output)';
TV.P=test_data(:,No_of_Output+1:size(test_data,2))';
inputn_test = mapminmax('apply',TV.P,inputps);
clear test_data; % Release raw testing data array
for i=1:1:1
%%%%%%%%%%% Calculate weights & biases
Elm_start_time_train=cputime;
%%%%%%%%%%% Random generate input weights InputWeight (w_i) and biases BiasofHiddenNeurons (b_i) of hidden neurons
OutputWeight = pinv(inputn') * outputn';
Elm_end_time_train = cputime;
Elm_TrainingTime = Elm_end_time_train-Elm_start_time_train; % Calculate CPU time (seconds) spent for training ELM
a1 = [a1 Elm_TrainingTime];
%%%%%%%%%%% Calculate the training accuracy
Y = (inputn' * OutputWeight)'; % Y: the actual output of the training data
Elmoutput0 = mapminmax('reverse',Y,outputps);
Elm_TrainingAccuracy = sqrt(mse(T - Elmoutput0)) % Calculate training accuracy (RMSE) for regression case
a2 = [a2 Elm_TrainingAccuracy];
Elm_OutputWeight = OutputWeight;
%%%%%%%%%%% ELM: Calculate the output of testing input
start_time_test = cputime;
TY=(inputn_test' * Elm_OutputWeight)'; % TY: the actual output of the testing data
ElmOutput1 = mapminmax('reverse',TY,outputps);
end_time_test=cputime;
Elm_TestingTime=end_time_test-start_time_test; % Calculate CPU time (seconds) spent by ELM predicting the whole testing data
a3=[a3 Elm_TestingTime];
Elm_TestingAccuracy=sqrt(mse(TV.T - ElmOutput1)) % Calculate testing accuracy (RMSE) for regression case
a4=[a4 Elm_TestingAccuracy];
end
save bvgbhhh