Thursday, November 19, 2015

MLP Neural Network with Backpropagation [MATLAB Code]

This is an implementation for Multilayer Perceptron (MLP) Feed Forward Fully Connected Neural Network with a Sigmoid activation function. The training is done using the Backpropagation algorithm with options for Resilient Gradient Descent, Momentum Backpropagation, and Learning Rate Decrease. The training stops when the Mean Square Error (MSE) reaches zero or a predefined maximum number of epochs is reached.

Four example data for training and testing are included with the project. They are generated by SharkTime Sharky Neural Network.

1- Download Code
http://www.mathworks.com/matlabcentral/fileexchange/54076-mlp-neural-network-with-backpropagation

2- Network architecture & Training Parameters:
The code configuration parameters are as follows:

1- Numbers of hidden layers and neurons per hidden layer. It’s represented by the variable nbrOfNeuronsInEachHiddenLayer. To have a neural network with 3 hidden layers with number of neurons 4, 10, and 5 respectively; that variable is set to [4 10 5].
2- Number of output layer nits. Usually the number of output units is equal to the number of classes, but it still can be less (≤ log2(nbrOfClasses)). It’s represented by the variable nbrOfOutUnits. The number of input layer units is obtained from the training samples dimension.
3- The selection if the sigmoid activation function is unipolar or polar. It’s represented by the variable unipolarBipolarSelector.
4- The learning rate η.
5- The maximum number of epochs at which the training stops unless MSE reaches zero. It’s represented by the variable nbrOfEpochs_max.
6- Option to enable or disable Momentum Backpropagation. It’s represented by the variable enable_learningRate_momentum.
7- The Momentum Backpropagation rate α. It’s represented by the variable momentum_alpha.
8- Option to enable or disable Resilient Gradient Descent. It’s represented by the variable enable_resilient_gradient_descent.
9- The Resilient Gradient Descent parametersη+η-Δmin, Δmax, represented by the variables learningRate_plus, learningRate_negative, deltas_min, and deltas_max.
10- Option to enable or disable Learning Rate Decrease. It’s represented by the variable enable_decrease_learningRate.
11- The Learning Rate Decrease parameters: and . It’s represented by the variables learningRate_decreaseValue and min_learningRate.

The code also contains a parameter for drawing the decision boundary separating the classes and the MSE curve. The number of epochs after which a figure is drawn and saved on the machine is specified. The figures are saved in a folder named Results besides the m files. This parameter is represented by the variable draw_each_nbrOfEpochs. The variable dataFileName takes the Sharky input points file name as string.

3- Results:
In all of the following four test cases, MCCR=1. The stop condition is that MSE reaches zero in all the cases. A unipolar sigmoid function is chosen.

A) Linear Points Case:
Figure 1. Network: 2-4-2 , Unipolar Sigmoid Activation, No Options, η=0.15.

B) Circle Points Case:

Figure2. Network: 2-10-2 , Unipolar Sigmoid Activation, Resilient Gradient Descent, η+=1.2, η-=0.5, Δmin=10^-6, Δmax=50.

C) Wave Points Case:
Figure 3. Network: 2-10-10-2 , Unipolar Sigmoid Activation, Resilient Gradient Descent, η+=1.2, η-=0.5, Δmin=10^-6, Δmax=50.

D) Spiral Points Case:

Figure 4. Network: 2-10-10-2 , Unipolar Sigmoid Activation, Resilient Gradient Descent, η+=1.2, η-=0.5, Δmin=10^-6, Δmax=50.

The following image shows a magnification for the decision boundary with better resolution.
Figure 5. Magnified decision boundary with better resolution for Spiral points case. 

The following video shows the solving of the Two Spirals problem.

Video 1. Solving the Two Spirals Problem.

138 comments:

Unknown said...

There is something wrong for the original code. It should be added with " if i~= length(Weights)-1", for there is no redundant bias in the last weight matrix.


for i = 1:length(Weights)-1
Weights{i} = 2*rand(nbrOfNodesPerLayer(i), nbrOfNodesPerLayer(i+1))-1; %RowIndex: From Node Number, ColumnIndex: To Node Number
if i~= length(Weights)-1
Weights{i}(:,1) = 0; %Bias nodes weights with previous layer (Redundant step)
end
Delta_Weights{i} = zeros(nbrOfNodesPerLayer(i), nbrOfNodesPerLayer(i+1));
ResilientDeltas{i} = deltas_start*ones(nbrOfNodesPerLayer(i), nbrOfNodesPerLayer(i+1));
end

Hesham Eraqi said...

Hello 王健,

Many Thanks. Yes, you are right. This is a mistake.
It will always force the weights connected to the first neuron in the output layer to be zero, instead of starting from random values.

As I say in code comments, this line of code is only for convenience ("Redundant") and can be removed. However, once it's there, it should be protected with an if condition like you've did.

I have corrected the code on MathWorks File Exchange.
Thanks again,
Hesham

AbdelMonaem AbdAllah said...

Dear Hesham,

How are you ? I wish you are fine.

I'm AbdelMonaem AbdAllah, doing my PhD in UNSW @ Canberra, Australia. I'm still new in NN, so I'm wondering whether your NN can train a function, for example, squares of number of variables or it works on binary values only ?

Please, could you contact me on my e-mail, abdo_system@yahoo.com.


Thanks,
Abdo

Hesham Eraqi said...

Dear AbdelMonaem,

I'm fine, thank you. I wish you best of success with your PhD.

Simply, a neural network is a black box that understands/models the relation between some patterns (feature vectors) and their corresponding labels (classes). The understanding phase is called "training". A trained neural network is used later on to estimate the class (label) of a test pattern, this is called the "testing" or "deployment" phase.

I understand you are asking about the input vector dimensionality. My implementation is generic; it detects and works with the given input dimension whatever its length. The input vectors should be stored row by row in the "Samples" variable, and their corresponding class labels in "TargetClasses". A feature can take any number. If you need more than two output classes, you need to uncomment line 59 and implement the "To-Do" I mention in line 68. Please let me know if you have any difficulties doing it.

Best Regards, Hesham

Unknown said...
This comment has been removed by the author.
Unknown said...

Thank you Hesham for your quick reply. I'm doing PhD in optimization.

Actually, I'm wondering if you have any document that would help me in understanding the parameters that you used in your code, and how they would affect the performance of your NN.

Also, after training, how can I test a new record to be belongs to which class ?

Thanks,
AbdelMonaem

Hesham Eraqi said...

Hello AbdelMonaem,

I'm afraid that I don't have a specific reference in mind to recommend for you. Nevertheless, the parameters of the network, resilient Gradient Descent, decreasing learning rate, momentum, and epochs are widely discussed online. Have a look, and let me know if you have any specific questions.

I wish you best of luck.

Anonymous said...

hi,,can u help me?im doing my final project on classifying TB on color features by using multilayered perceptron..n im getting confused on extracting the input and output value from an image

Hesham Eraqi said...

Hi Siti,

I wish you all the best with your final project.
I didn't get what you mean.
Inputs to MLP is your feature and output is the classification result. You should have an output neuron per class, and decide the predicted class by checking the neuron with highest activation value.

Unknown said...

Dear Hesham,

Lovely Stuff mate. Love what you have done!
Im trying to create my own code and was looking at how others have attempted it to get a general idea of how to start coding.

Just a quick question and it may seem a silly one....
but what is the difference between activation_func and activation_func_drev?
As in what does the drev stand for. I understand the function itself is different but what is the reasoning behind that?

Thank you very much

Hesham Eraqi said...

Dear Michael,

Thank you so much for the motivation :)
Very soon, I will post more interesting similar articles about different areas of machine learning.

"Drev" stands for "Derivative", that function returns the value of the derivative (gradient) of the activation function at a query point.

Best Wishes, Hesham

Unknown said...

Hey , Great work.

I am a newbie in ANN and its coding.. But from whatever i have read, this seems to be prefect generic code for "ANY" MLP feedforward network with backpropagation training algorithm. Right?


And if so then, I have generated 1570*7 excel table for my project by Matlab code. Now i want to create a network that takes 5 columns (First five natural frequencies of the structure) as input and takes remaining 2 columns (Size and location of defect) as target.

So my query is, while you have used some other input data format, and I have excel table. So how can i incorporate reading those data format instead of .points data file?

Hesham Eraqi said...

Hello Narendra,

Yes, it is a generic implementation for MLP feedforward network.

Concerning parsing the Excel data in MATLAB, there are many tutorials online for that.

In line 52, the variable 'Samples' should contain the training data, a row for each data sample. In your case it should be a matrix of 1570 rows X 5 columns.

Because, you don't have classes here; i.e. you don't have a single output neuron that should fire for each different class. You should comment the 'for' loop in line 70. And after it, fill the matrix 'TargetOutput' such that each row is the desired output for each data sample. In your case it should be a matrix of 1570 rows X 2 columns.

Also, for the above reason, your training stop criteria is different. So, comment lines 184:195 and line 198, and another code that can estimate how much the neural network is good (calculate 'MSE(Epoch)' using the 'outputs' results for each sample). 'MSE(Epoch)' should be the number of mistakenly classified samples from the neural network divided by the total number of data samples.

It you don't get any of what I mean. I'm happy to get your data and upgrade my code accordingly for you.

Best wishes, Hesham

70R50 said...
This comment has been removed by the author.
70R50 said...

Hello Hesham Eraqi,

First of all, thank you for sharing your work with us.
I'm adapting your source code for digit recognition assignment.

1. And having a problem when evaluating data, how do I calculate MSE and stop the training?
- I have 10 output neuron each for specific digit. (say 0-9)
- on %%Evaluation part outputs variable is 1by10 matrix, value 1 for corresponding digit, 0 for others. (say 5=[0 0 0 0 0 1 0 0 0 0])
- Samples is a 8000by16 matrix, 16 columns are 8 x,y coordinate pairs.( say first row [0.47 1 ... 0.98])
- TargetClasses is 8000by1 matrix, each row represents a correct digit. (say first row [5])
2. Also, assignment requirement is to use logsig activation function, should I replace Activation_func_drev with Activation_func?

Please share your idea and thoughts with me, thank you!

Hesham Eraqi said...

Hello 70R50,

1- Let's speak in terms of code, after getting 'outputs', you need to modify the next if conditions like follows:
if (isequal(outputs,[1 0 0 0 0 0 0 0 0 0]))
ActualClasses(Sample) = 0;
else if (isequal(outputs,[0 1 0 0 0 0 0 0 0 0]))
ActualClasses(Sample) = 1;
....
else if (isequal(outputs,[0 0 0 0 0 0 0 0 1 0]))
ActualClasses(Sample) = 8;
....

2- No, you should modify the function in Activation_func.m to be 'logsig' activation. Plus, modifying the function in Activation_func_drev.m to be the derivative of the 'logsig' activation. Which you should figure out for your assignment :-)

Best wishes, Hesham

Hesham Eraqi said...

@70R50: I've forgot to mention that the MSE calculation should change accordingly:
MSE(Epoch) = sum(find(ActualClasses==TargetClasses))/(length(Samples(:,1)));

Unknown said...

Hello Sir,
I am doing my final assignment on Yield forecasting using ANN. First of all, I am a newbie to NN, my background is Agriculture. I wanna ask you about my code either it is true or not.


%% load divided input data set
load annflo.mat

%% define training inputs
trainInp = [trainflo];

%% define targets
T = [targetflo];

net = newff(trainInp,T,[],{},'trainlm');
net = init(net);
net.trainParam.epochs = 1000;
net.trainParam.goal = 0.01;
net.divideParam.trainRatio = 1;
net.divideParam.valRatio = 0;
net.divideParam.testRatio = 0;

net.trainParam.max_fail = 2;
net = train(net,trainInp,T,[],[]);


%%prediction%%
Y = sim(net,trainInp);

I was using Levenberg-Marquardt as the training algorithm, but then I realized that It was supposed to be Back-propagation as the training algorithm and I had no idea how to change the code. Would you like to help me, Sir?
Thank you :)

Unknown said...

Helllo..
I am new to NN.Can the following code be used for time series prediction?
What modification do i have to do?

ChathuraW said...

Hi Hesham,

I'm trying to adapt your code for 4 inputs and 2 output neurons(no classes). I read your comment given to Narendra. I'm struggling with the evaluation part of the code. Can you please help me out.

Thank you :)

Really Nice work Hesham. Good luck with all your work.

Best Regards

Chathura

Hesham Eraqi said...

@freakme whatsoever:
Hello,
You are using MATLAB Neural Network Toolbox. Sorry, I don't have it. But there is a nice example for you here: http://www.mathworks.com/help/nnet/examples/wine-classification.html

Good luck, and I'm here for any questions if you use my code.

Hesham Eraqi said...

@mahum pervez:
Yes NN can solve the series prediction problem. I've uploaded an image for you that summarizes the idea: https://s8.postimg.org/mqn8q82fp/image.png
Good Luck.

Hesham Eraqi said...

@Chathura: Hi, Thanks for your nice words. Sorry for late replay.
You can simply replace the evaluation code from line 184 to line 195 with this line of code:

[~,ActualClasses(Sample)] = max(outputs) - 1;

Good Luck :)

Unknown said...

Dear Hesam
First of all I want to thank for this awesome and clean MLP implementation
I have a question about my case which doesn't work very well I have 400 samples with 20 features which divided to 3 classes. I almost done all of your advises for changing code base on other questions and comments but in my case code works till 99 epochs and after that this errors comes out!could you please help me?

thanks

Error using *
Inner matrix dimensions must agree.

Error in EvaluateNetwork (line 7)
NodesActivations{Layer} = NodesActivations{Layer-1}*Weights{Layer-1};

Error in MLP_NN (line 228)
outputs = EvaluateNetwork([1 x y], NodesActivations, Weights, unipolarBipolarSelector);

Hesham Eraqi said...

Thank you Milad for your nice words, glad it's useful.

You are right, this is because my visualization code only supports problems with 2 features only. But in your case, it's 20.
You have to options to proceed:
- Comment the visualization code section, or set the variable draw_each_nbrOfEpochs to a large number like 10^9, so that visualization won't occur.
- Try to do PCA on your features to reduce them to 2 features, this will make training much faster and visualization feasible. You may even end up with better classification performance (depending on the variance in your features).

Eve said...

Hi Hesham,

I have a classification problem which is to classify the music genres for more than 50,000 songs. Here, I have 10 genres. I've been studying your code for several days and I also read your comment about the multiply outputs problem. But I still cannot figure out how to construct the outputs. The actual labels for the 10 genres are [1,2,...,10]. And I construct a matrix for all the samples with their corresponding labels:
[1 0 0 0 0 0 0 0 0 0;
1 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0;
...
0 0 0 0 0 0 0 0 0 1];

Here [1 0 0 0 0 0 0 0 0 0] means the label for the sample point is 1 and [0 0 0 0 0 0 0 0 0 1] means the label for this sample point is 10, etc.

The followings are your code:
-------------------------------------------------------------------------
%% Read Data
importedData = importdata(dataFileName, '\t', 6);
Samples = importedData.data(:, 1:length(importedData.data(1,:))-1);
TargetClasses = importedData.data(:, length(importedData.data(1,:)));
TargetClasses = TargetClasses - min(TargetClasses);
ActualClasses = -1*ones(size(TargetClasses));
------------------------------------------------------------------------

Problem 1: Do I still needs the above code to construct the TargetClasses and the ActualClasses?
Problem 2: What are the TargetClasses and the ActualClasses in my case?

Thank you!
Eve

Hesham Eraqi said...

Hi Eve,

Problem 1: No you won't need that code. Replace it by other code that fills the variables 'Samples', 'TaggetClasses', and 'ActualClasses'.
Please note that the variable 'Samples' should contain your training data, a row for each data sample.

Problem 2: 'TaggetClasses' is the labels matrix you have constructed as you describe above.
'ActualClasses' at that moment is a variable of the same size as 'TaggetClasses'. It is just for allocation, so you can put zeros or any numbers for now. Later on in the "Evaluation" code section, it should be filled with the neural network output for all the samples. You should modify that section as I described in a previous comment.

If it still have problems, I will be happy to upgrade my code if you send me sample of your data via email maybe: hesham.eraqi@gmail.com

Good luck.

Kris said...

Dear Hesham Eraqi,

can I use your code as classifier ?

As I understand the data there are:
Samples - training data,
TargetClassess - labels for training data (classess).

Where (which variable) can I store the testing data ?
And, how to read a final (predicted) labels of such data ?

regards,
Kris

Unknown said...

Hi! Congratulations for your code. I'm using it to approximate a function. It's more or less like this: I have five inputs and one output that is the price of a commodity. And I want the Neural Network to learn these prices and give me prices on new five inputs that it hasn't been taught. So I think it is only one output. Ok ? If I just reduce the number of output in your code to one, will it work to approximate the function ?
And another doubt, why do you subtract from the Target Classes its minimum ?
Thank you very much!

Unknown said...

Just to let you know what changes I have made to your code in order to get the nn to calculate an output only (value of a function). I started by changing the number of outputs to one, and importing my data. My data have six input variables and one output. As my target output is a price, I normalized it to be between 0 and 1 with the min max normalization. So my targetclasses are just my prices normalized. Besides, the targetoutputs now, as I guess, must be the same as the targetclasses, because there are no classes at all. So it must be the value of the output itself, that is what I want my nn to evaluate given the inputs. As for the evaluation, I just commented all the stuff that has to do with the actualclasses and inserted in ActuallClasses(sample) = output. After that I commented the visualization part that has not to do with the error. It won't work with this changes becaue the evaluation is evaluating the same value for all my training set. What have I forgot doing ?

Unknown said...

Hi der..I need matlab code for ( training back propagation algorithm ) for wind forecasting....plz rpy to diz mail dhivyagovindasamy27@gmail.com

PRANA said...

Dear Hesham Eraqi

sir,
i'm doing finial year research in university. i'm doing "landslide susceptibility analysis" using ANN back-propagation method, problem is i have 10 input data(images,numerically ) for 1 landslide like wise i have 8 land slide data. Now i wanted create network for finding land slide susceptible.
Can you provided ideas with code.(i'm try to do this with the mathlab)

syafiq said...

Hello Hesham Eraqi,

Good work from you. However, I found that the code only for training. How do you test your data? And if by getting MSE close to 0, how you ensure that your model is not overfitting?

thanks
Syafiq

Aptron said...

Matlab is the best technology at Learning New things. Appreciable blog on Matlab Course

Unknown said...

Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it. You’re doing a great job Man,Keep it up.
Matlab Training in Noida

Mahesh said...

Really very informative and creative contents. This concept is a good way to enhance the knowledge.
thanks for sharing. please keep it up.

MATLAB training in gurgaon

Unknown said...

Thank you for the clear explanation. Keep post it.

Matlab Course in Chennai
Matlab Training in Chennai

Hesham Eraqi said...

Christian Sanchez commented on your file MLP Neural Network with Backpropagation :
Hi ,
I am trying to understand backpropagation, and your code is being really helpful, thanks.

I have got a question: your input to the derivative of the sigmoid is "NodesActivations", which has previously gone through the sigmoid function. I do not understand this, shouldnt it be input to the derivative of the sigmoid the input to the activation function? Obviously no, because your code works, but could you help me please to understand this ?
Input to activation function: s
Output from activation function: z=f(s )
Derivative: d/dw z=d/dw f(s) = f(s)(1-f(s))

while in the code it looks like f(z)(1-f(z)) is calculated, because you do :
Line 111-->NodesActivations{Layer} = Activation_func(NodesActivations{Layer}, unipolarBipolarSelector );
and
Line 121-->gradient = Activation_func_drev(NodesActivations{Layer+1}, unipolarBipolarSelector);

-------------------------

@Christian Sanchez:
You are absolutely correct; to get the derivative of a function you need the input to it (not the output) to substitute with. But if that function is a Sigmoid (which is our case) you can use a beautiful feature that allows calculating the derivative using the output. I've provided the proof in this post: http://heraqi.blogspot.com/2018/07/sigmoid-derivative.html

ravinna said...

Nice blog and good information.


Matlab Training in Chennai | Matlab Training Institute in Chennai

simbu said...

Thanks you for sharing this unique useful information content with us. Really awesome work. keep on blogging

Java interview questions and answers

Java training in Chennai | Java training institute in Chennai | Java course in Chennai

gowsalya said...

I found this informative and interesting blog so i think so its very useful and knowledge able.I would like to thank you for the efforts you have made in writing this article.
python training in rajajinagar
Python training in bangalore
Python training in usa

gowsalya said...

The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
Best Devops Training in pune
excel advanced excel training in bangalore
Devops Training in Chennai

shivkumar said...

Nice Blog, very informative.
Cloud Computing Training in Noida

Praylin S said...

Great post! This is really worth reading. Keep sharing more such posts.

Embedded System Course Chennai
Embedded Training in Chennai
Oracle Training in Chennai
Oracle Training institute in chennai
Tally Course in Chennai
Tally Classes in Chennai
Embedded Training in Porur
Embedded Training in Adyar

digitalsamyak said...

MATLAB has advanced over a time of years with contribution from numerous clients. In college conditions, it is the standard instructional device for early on and propelled courses in arithmetic, designing, and science. In industry, MATLAB is the instrument of decision for high-efficiency research, improvement, and examination.

https://samyakinfotech.com/training/electrical-electronics/matlab-training-course/

manisha said...

Its a wonderful post and very helpful, thanks for all this information. You are including better information.
Matlab Training in Noida

Matlab Training institute in Noida


Ranikamala said...


Very good post.
All the ways that you suggested to find a new post was very good.
Keep doing posting and thanks for sharing.11:38 AM 9/10/2018
Get MATLAB Projects, MATLAB Assignment help, MATLAB homework help, MATLAB Project Help, MATLAB Solutions from real-time experts and trainers. Access instant MATLAB training in Hyderabad and get MATLAB projects and solutions
Matlab Training in hyderabad

educational blogs said...

Please continue this great work and I look forward to more of your awesome posts.

Data Science in-house Corporate training in Nigeria

goms said...

Thanks for sharing the good post.
Machine Learning training in Pallikranai Chennai
Machine Learning training in Medavakkam Chennai"
Pytorch training in Pallikaranai chennai
Data science training in Medavakkam Chennai"

janathan said...

very useful comment..
foreach loop in node js
ywy cable
javascript integer max value
adder and subtractor using op amp
"c program to find frequency of a word in a string"
on selling an article for rs 1020, a merchant loses 15%. for how much price should he sell the article to gain 12% on it ?
paramatrix interview questions
why you consider yourself suitable for the position applied for

Vijaykumar said...

very usefull comment...
Inplant Training in Chennai
Iot Internship
Internship in Chennai for CSE
Internship in Chennai
Python Internship in Chennai
Implant Training in Chennai
Android Training in Chennai
R Programming Training in Chennai
Python Internship
Internship in chennai for EEE

saishree said...

great.
Acceptance is to offer what a

lighted

A reduction of 20 in the price of salt
Power bi resumes
Qdxm:sfyn::uioz:?
If 10^0.3010 = 2, then find the value of log0.125 (125) ?
A dishonest dealer professes to sell his goods at cost price

but still gets 20% profit by using a false weight. what weight does he substitute for a kilogram?

Oops concepts in c# pdf
Resume for bca freshers
Attempt by security transparent method

'webmatrix.webdata.preapplicationstartcode.start()' to access security critical method 'system.web.webpages.razor.webpagerazorhost.addglobalimport(system.string)' failed.

Node js foreach loop

sanashree said...

nice blog.
Internship for mba
Internships in chennai for cse students
Robotics training
Ccna certification in chennai
Industrial training for diploma ece students in hyderabad
Internship certificate for bba student
Internships in bangalore for ece
Internship
Inplant training report
Internship in coimbatore for eee

LifeVoxel.AI said...

Towards a single natural solution for global illumination:
- GPUs 15 TFLOPS with improved branching
- Denoising using AI for real-time path-tracing
- Optimized early ray termination
- Voxel representation of geometry
- Auto Reflections
- Auto Shadows
- Auto Ambient Occlusions

Realism is what drives GPU advancement.

Imagine GPUs use outside of cinematic and gaming use cases.

LifeVoxel.AI has built a visualization and AI platform using GPUs in the cloud used in diagnostic-quality views for mission-critical care just using a web browser. This patented innovation is recognized by Frost and Sullivan, NSF and NIH (13 patents).

RIS PACS
RIS PACS software

Bangalore Training Academy said...

Thank you so much for the great and very beneficial stuff that you have shared with the world.

Bangalore Training Academy located in Bangalore, is one of the best Workday Training institute with 100% Placement support. Workday Training in Bangalore provided by Workday Certified Experts and real-time Working Professionals with handful years of experience in real time Workday Projects.

Softgen Infotech said...

Very interesting, good job and thanks for sharing such a good blog.

Became An Expert In Selenium ! Learn from experienced Trainers and get the knowledge to crack a coding interview, @Softgen Infotech Located in BTM Layout.

vijay said...

Excellent information with unique content and it is very useful to know about the information.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Durai Moorthy said...

This is an awesome blog. Really very informative and creative contents.

aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Anonymous said...

I am genuinely thankful to the holder of this web page who has shared this wonderful paragraph at at this place


Certification of Data Science
Big Data Analytics Malaysia
Data Analytics Course Malaysia

raju said...

awesome post......!!
poland web hosting
russian federation web hosting
slovakia web hosting
spain web hosting
suriname
syria web hosting
united kingdom
united kingdom shared web hosting
zambia web hosting
inplant training in chennai













tejaswini said...

I will be interested in more similar topics. i see you got really very useful topics , i will be always checking your blog thanksbig data in malaysia
data scientist course malaysia
data analytics courses

nakshatra said...

I am a new user of this site so here i saw multiple articles and posts posted by this site,I curious more interest in some of them hope you will give more information on this topics in your next articles.
big data analytics malaysia
data scientist certification malaysia
data analytics course
360DigiTMG

nakshatra said...

I’m excited to uncover this page. I need to to thank you for ones time for this particularly fantastic read!! I definitely really liked every part of it and i also have you saved to fav to look at new information in your site.
big data analytics malaysia
data scientist certification malaysia
data analytics courses malaysia
data science course malaysia
360DigiTMG

Rajesh Anbu said...

Great post..Its very useful for me to understand the information..Keep on blogging..
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

tejaswini said...

Very informative post ! There is a lot of information here that can help any business get started with a successful social networking campaign !big data in malaysia
data scientist course
data analytics courses
360DigiTMG

Aipmca said...

Web Designer in Noida
Best Website Development service In Noida
Website Designing service In Noida
Best digital marketing service In Noida
Best digital marketing Company in Noida
Indian Bookmarking list
Indian Bookmarking list
India Classified Submission List
Indian Classified List

Priyanka said...

Attend The Business Analytics Course From ExcelR. Practical Business Analytics Course Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Data Analytics Course.
ExcelR Business Analytics Course
Data Science Interview Questions
We are located at :
Location 1:
ExcelR - Data Science, Data Analytics Course Training in Bangalore
49, 1st Cross, 27th Main BTM Layout stage 1 Behind Tata Motors Bengaluru, Karnataka 560068
Phone: 096321 56744
Hours: Sunday - Saturday 7AM - 11PM
Location 2:
ExcelR
#49, Ground Floor, 27th Main, Near IQRA International School, opposite to WIF Hospital, 1st Stage, BTM Layout, Bengaluru, Karnataka 560068
Phone: 070224 51093
Hours: Sunday - Saturday 7AM - 10PM

Kerrthika K said...

I liked this post. I want more different data, so kindly update here.
Corporate Training in Chennai
Corporate Training Companies in Chennai
Linux Training in Chennai
Pega Training in Chennai
Advanced Excel Training in Chennai
Tableau Training in Chennai
Primavera Training in Chennai
Graphic Design Courses in Chennai
Power BI Training in Chennai
Oracle DBA Training in Chennai
Placement Training in Chennai

Arunvijay said...

great...

Intern Ship In Chennai
Inplant Training In Chennai
Internship For CSE Students
Online Internships
Coronavirus Update
Internship For MBA Students
ITO Internship

Anebellyliza said...
This comment has been removed by the author.
Quadsel Systems said...

Pretty article! I found some useful information in your blog....

so here we provide,

We provide you with flexible services and complete hybrid network solutions. It can provide your organisation with exceptional data speeds, advanced external security protection, and high-resilience by leveraging the latest SD-WAN and networking technologies to monitor, manage and strengthening your organisation’s existing network devices.

https://www.quadsel.in/networking/>
https://twitter.com/quadsel/
https://www.linkedin.com/company/quadsel-systems-private-limited/
https://www.facebook.com/quadselsystems/

#quadsel #network #security #technologies #managedservices #Infrastructure #Networking #OnsiteResources #ServiceDeskSupport #StorageServices #WarrantyAMCServices #datacentersolutions #DataCenterBuild #EWaste #InfraConsolidation #DisasterRecovery #NetworkingServices #ImagingServices #MPS #Consulting #WANOptimisation #enduserservices

akshaya said...

This is the most wonderful blog that I have ever read. I owe my gratitude for giving me an opportunity to read this great blog. Web Designing Course Training in Chennai | Web Designing Course Training in annanagar | Web Designing Course Training in omr | Web Designing Course Training in porur | Web Designing Course Training in tambaram | Web Designing Course Training in velachery

akshaya said...

This is the most wonderful blog that I have ever read. I owe my gratitude for giving me an opportunity to read this great blog. Web Designing Course Training in Chennai | Web Designing Course Training in annanagar | Web Designing Course Training in omr | Web Designing Course Training in porur | Web Designing Course Training in tambaram | Web Designing Course Training in velachery

lavanya said...

This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.

Anonymous said...

How to determine the validation set?
this only for training ?

Hesham Eraqi said...

"How to determine the validation set?
this only for training ?"
In our example, we used the training data for validation and for testing. But a real data problem, the validation data could be selected using techniques like cross-validation, and test data are separate.

Anonymous said...

Very informative post. Thanks for sharing.

top data science training institute in hyderabad
best data science training institute in hyderabad
data science with python training institute in hyderabad
data science course in hyderabad

priyasri said...

Thumbs up guys your doing a really good job.
360digitmg ai online course

priyasri said...

Nice knowledge gaining article. This post is really the best on this valuable topic.
360digitmg business analytics online course

abid said...

Wow! Such an amazing and helpful post this is. I really really love it. It's so good and so awesome. I am just amazed. I hope that you continue to do your work like this in the future also.
data science course in guwahati

devi said...

I have recently visited your blog profile. I am totally impressed by your blogging skills and knowledge.



Data Science Training In Chennai | Certification | Data Science Courses in Chennai | Data Science Training In Bangalore | Certification | Data Science Courses in Bangalore | Data Science Training In Hyderabad | Certification | Data Science Courses in hyderabad | Data Science Training In Coimbatore | Certification | Data Science Courses in Coimbatore | Data Science Training | Certification | Data Science Online Training Course

360digitmg said...

Glad to chat your blog, I seem to be forward to more reliable articles and I think we all wish to thank so many good articles, blog to share with us.
360digitmg data science courses

PROFESSIONAL PROGRAMMERS said...

Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome. I will instantly grab your rss feed to stay informed of any updates you make and as well take the advantage to share some latest information about

CREDIT CARD HACK SOFTWARE which many are not yet informed, of the recent technology.

Thank so much for the great job.

Rohini said...

I was just browsing through the internet looking for some information and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject. Bookmarked this page, will come back for more.
data science courses

Anonymous said...

very well explained. I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up.
Correlation vs Covariance
Simple Linear Regression
data science interview questions
KNN Algorithm
Logistic Regression explained

Anonymous said...

very well explained. I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up.
Logistic Regression explained
Correlation vs Covariance
Simple Linear Regression
data science interview questions
KNN Algorithm
Bag of Words Python

rstrainings said...

I am really happy to say it’s an interesting post to read . I learn new information from your article , you are doing a great job . Keep it up

Devops Training in USA

Hadoop Training in Hyderabad

Python Training in Hyderabad

rstrainings said...

I am really happy to say it’s an interesting post to read . I learn new information from your article , you are doing a great job . Keep it up

Devops Training in USA

Hadoop Training in Hyderabad

Python Training in Hyderabad

EXCELR said...

Excellent post for the people who really need information for this technology.data science courses

Unknown said...

I finally found great post here.I will get back here. I just added your blog to my bookmark sites. thanks.Quality posts is the crucial to invite the visitors to visit the web page, that's what this web page is providing.Data Analytics Course

360DigiTMG said...

Such a very useful information!Thanks for sharing this useful information with us. Really great effort.
best data science courses

borav said...

The following time I read a blog, I trust that it doesn't bomb me similarly as much as this specific one. That is to say, I realize it was my decision to peruse, regardless I really trusted you would presumably have something valuable to discuss. All I hear is a lot of crying about something you could fix on the off chance that you were not very bustling searching for consideration.
evrmag

vé máy bay từ canada về Việt Nam said...

Aivivu chuyên vé máy bay, tham khảo

Vé máy bay đi Mỹ

Lịch bay từ Seoul đến Hà Nội

vé máy bay huế đà lạt

vé máy bay hà nội nha trang bamboo

đặt vé máy bay hải phòng hồ chí minh

Ashleel Londa said...

Many businesses which are hoping to increase their online presence are hiring an SEO company or using SEO services well to gain every single benefit while achieving their goals. # BOOST Your GOOGLE RANKING.It’s Your Time To Be On #1st Page
Our Motive is not just to create links but to get them indexed as will
Increase Domain Authority (DA).We’re on a mission to increase DA PA of your domain
High Quality Backlink Building Service
1000 Backlink at cheapest
50 Free Backlink
Although attempting to learn SEO yourself is a good idea as well as a tempting one, there are high chances you might implement SEO techniques wrongly because they need months and years of experience.

Asinfovision said...

Very informative post. By reading your blog, I get inspired and this provides some useful information. Thank you for posting this article.
MIS Course in Gurgraon

Ashleel Londa said...

It was wonderfull reading your article. Great writing styleiamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder iamlinkfeeder

Thakur98 said...

Kim Ravida is a lifestyle and business coach who helps women in business take powerful money actions and make solid, productiveIamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder IamLinkfeeder

Anonymous said...


Thanks for the Valuable information.Really useful information. Thank you so much for sharing. It will help everyone.

SASVBA is recognized as the best machine learning training in Delhi. Whether you are a project manager, college student, or IT student, Professionals are the best machine learning institute in Delhi, providing the best learning environment, experienced machine learning instructors, and flexible training programs for the entire module.
FOR MORE INFO:

vivikhapnoi said...

An awesome blog thanks a lot for giving me this great opportunity to write on this.
thời gian bay từ việt nam sang trung quốc

vé máy bay tphcm đi quảng châu

săn vé máy bay giá rẻ đi thượng hải

giá vé máy bay từ vietnam đi anh

giá vé máy bay eva đi mỹ

lịch bay từ mỹ về việt nam hôm nay

python training said...

it’s really nice and meanful. it’s really cool blog. Linking is very useful thing.you have really helped lots of people who visit blog and provide them usefull information.
Data Science Training in Hyderabad

I am really happy to say it’s an interesting post to read . I learn new information from your article , you are doing a great job . Keep it up

Devops Training in Hyderabad

Hadoop Training in Hyderabad

Python Training in Hyderabad

Tableau Training in Hyderabad

Selenium Training in Hyderabad

Himachali Khabarnama said...

Annabelle loves to write and has been doing so for many years.Backlink Indexer My GPL Store Teckum-All about Knowledge

salome said...

thanks for providing a useful article
Angular-training in Chennai

cosmetic boxes uk said...

Custom Printing Services co.uk. it is the best printing services and the follow my website new technology printing in the best works try the link spoken. thanks cosmetic boxes uk | cosmetic boxes uk

cosmetic gift boxes said...

I as well believe hence, perfectly composed post! Custom Printing Services.cosmetic gift boxes | cosmetic gift boxes

Printed Carboard Packaging said...

Great You have good ability of writing and know how to attract the people with your words. Packaging Printing offering you the best Cardboard Boxes and Printed Cardboard Packaging Services to make your product more eye catchy like the catchy article. So don’t be late Packaging Printing also offering you the free and fastest shipping.

360DigiTMGAurangabad said...

You have done a amazing job with you website
business analytics course in aurangabad

vivikhapnoi said...

I have to convey my respect for your kindness for all those that require guidance on this one field. Your special commitment to passing the solution up and down has been incredibly functional and has continually empowered most people just like me to achieve their dreams. Your amazing insightful information entails much to me and especially to my peers.
có vé máy bay từu mỹ về việt nam chưa

vé máy bay từ úc về việt nam giá rẻ

Các chuyến bay từ Incheon về Hà Nội hôm nay

săn vé may bay giá rẻ tu Nhat Ban ve Viet Nam

Cách săn vé máy bay giá rẻ tu Dai Loan ve Viet Nam

cách đăng ký về việt nam từ canada

Ramesh Sampangi said...

Thanks for sharing this blog. I appreciate your efforts on this blog.
Data Science Course with placements
Artificial Intelligence Course with placements

Ramesh Sampangi said...

Nice blog. Thanks for sharing with us.
Artificial Intelligence Course
Machine Learning Training

Ramesh Sampangi said...

Thanks for sharing this blog with us. Good content. Keep sharing some more blogs again soon.
Data Scientist Training in Hyderabad
Artificial Intelligence Course with placements
Machine Learning Training with Placements

Ramesh Sampangi said...

Thanks for sharing this blog with us. Good content and informative blog.
Python Course Training with Placements

vivikhapnoi said...

Thanks for sharing your wealthy information. This is one of the excellent posts which I have seen. I go through your all of your blog, but this blog is the best one. It is really what I wanted to see hope in future you will continue for sharing such an excellent post
đặt vé máy bay từ singapore về việt nam

Từ Nhật về Việt Nam có bị cách ly không

vé máy bay từ toronto về việt nam

vé máy bay từ san francisco về việt nam

vé máy bay từ los angeles về việt nam

mua vé máy bay từ canada về việt nam

Tec said...

upbocw BOCW UP is a labor registration portal created by the Labor Department, Government of Uttar Pradesh. The registration of the unorganized workers (working class) of the state takes place on this portal.
Shram Vibhag registration is provided by the Uttar Pradesh government

Full Form

Unknown said...

EWS Certificate kaise banvaye

GHD Sports Live app

LLB full Form

komala said...

Great Content. Thanks for sharing this valuable information. It will be useful for knowledge seekers.
Matlab Training In Chennai

sathish said...

PART 1

Thanks for posting the best information and the blog is very helpful.

Artificial Intelligence Training in Bangalore | Artificial Intelligence Online Training

Python Training in Bangalore | Python Online Training

Data Science Training in Bangalore | Data Science Online Training

Machine Learning Training in Bangalore | Machine Learning Online Training

AWS Training in bangalore | AWS Training

UiPath Training in Bangalore | UiPath Online Training

Unknown said...
This comment has been removed by the author.
axillary fat said...

A woman was struggling with excess weight around her breast and this is what she used to remove the fat around the breast, Read about women armpit fat

traininginstitute said...

A great website with interesting and unique material what else would you need.
data scientist course

Alice Sanders said...

Search Engines List has the most comprehensive search engines list that every researcher need in his research. Collected world's top rated search engines list.

Ramesh Sampangi said...

Become a data science expert by joining AI Patasala’s data science training in Hyderabad, where you can learn more about data science concepts.
Data Science Training Institute in Hyderabad
Data Science Course Institute in Hyderabad

Unknown said...

Cool stuff you have and you keep overhaul every one of us business analytics course in surat

traininginstitute said...

this is really nice to read..informative post is very good to read..thanks a lot!
data science course in malaysia

traininginstitute said...

I am impressed by the information that you have on this blog. It shows how well you understand this subject.
full stack developer course with placement

rstrainings said...


I am really happy to say it’s an interesting post to read . I learn new information from your article , you are doing a great job . Keep it up

Devops Training in Hyderabad

Hadoop Training in Hyderabad

Python Training in Hyderabad

Tableau Training in Hyderabad

Selenium Training in Hyderabad

Informatica Training in Hyderabad

360DigiTMG said...

Always so interesting to visit your site.What a great info, thank you for sharing. this will help me so much in my learning
data scientist training in hyderabad

pranisha said...
This comment has been removed by the author.
Anonymous said...

You should get certification in the relevant courses if you need to be considered for recruiting data experts.

data science training in borivali

Links For You said...

First class site, where did u come happening pondering the notification coarsely this posting?i've obsession in a portion of the articles essentially about the solicitation for your site now, and I in fact in pantomime of your style. thankful a million and connect with progress forward on the functioning delivery faithfulness.. Paragon NTFS For Mac Crack

Hi Every One said...

Charming test for a weblog. i've been examining the net for amusement and arrived re your web page. shocking understandable. much gratitude to you a ton for sharing your knowledge! it is invigorating to look that specific people anyway supplement an undertaking into adjusting to their destinations. i'll be veritable to check affirm inside the works indeed unambiguous quickly.. Avast Offline Installer Crack

Hi Every One said...

Funny Cousin Quotes · Your cousin is the brother God knew your mother could not handle. · The craziness of your family is best understood by your cousins.. Frequently, Happy Cousins Day Images

Aquaman said...

Step-by-Step Hacking Tutorials about WiFi hacking,
Kali Linux, Metasploit, exploits, ethical hacking, information security, malware analysis and scanning
hacking

iteducationcentre said...

Thanks for sharing such a wonderful Post.
artificial intelligence Classes in Pune

Digital Orra said...

Nice Blog! Looking for a digital marketing course in Manimajra? Learn SEO, Social Media Marketing, Pay Per Click, SEM, SMO, Keyword Planner, Social Media Advertisement, etc. We help to develop your career in digital marketing. We have a skilled and qualified digital marketer for digital marketing. We provide digital marketing courses at a reasonable price.

Ava Volkov said...

Your ability to give a balanced viewpoint that takes into account other viewpoints and addresses potential problems stands out above all else. DevOps Training

Ava Volkov said...

You have recently made some very outstanding contributions. Your breadth of knowledge, astute analysis, and lucidity of expression are admirable. Your knowledge enriches our conversations and offers priceless direction. DevOps Certification

Ava Volkov said...

Your breadth of knowledge, astute analysis, and lucidity of expression are admirable. Your knowledge enriches our conversations and offers priceless direction. DevOps Course

VISWA Technologies said...

I really liked your article post. Really looking forward to reading more. Will read on...
SAP S4 HANA Fiori Security Training
<a href="https://viswaonlinetrainings.com/courses/azure-devops-online-training/>Azure Devops Training</a>