## Wednesday, October 10, 2012

### K-means Clustering in Java I: Elements

Overview
Among the clustering methods have been developed over the years from Spectral clustering, Non-negative Matrix factorization, Canopy to Hierarchical and K-means clustering. The K-means algorithm is by far the easiest to implement. This simplicity comes with a high price in terms of scalability and even reliability. However, as a unsupervised learning technique, K-means is still valuable for reducing the number of model features or detecting anomalies.
The objective is to classify observations or data points by groups that share common attributes or features. The diagram below illustrates the clustering of observations (x,y) for a simple 2-feature model

Each cluster has a mean or centroid, m = ( .. m..). First we need to define a distance between an observation  X = (...x ..) and c. The Manhattan and Euclidean distances are respectively defined as:  $d_{M} = \sum_{i=0}^{n}\left | x_{i} - m_{i}\right |\,\,\,,\,\,d_{E}= \sum_{i=0}^{n} (x_{i} - m_{i})^{2}$ The loss function for N cluster Cj is defined by $W(C)=\frac{1}{2}\sum_{k=0}^{N-1}\sum_{c_{i}=k}\sum_{C_{j}} d(x_{i},x_{j})$  The goal is to find the centroid m, and clusters C, that minimize the loss function as: $C^{*}\left (i \right ) = arg\min _{k\in [0,N-1]}d (x_{i}, m_{k})$

Note: For the sake of readability of the implementation of algorithms, all non-essential code such as error checking, comments, exception, validation of class and method arguments, scoping qualifiers or import is omitted
Distances and Observations
First we need to define the distance between each observation and the centroid of a cluster. The class hierarchy related to the distance can be implemented as nested classes as there is no reason to "expose" to client code. The interface, Distance,define the signature of the computation method. For sake of simplicity, the sample code implements only the Manhattan and Euclidean distances.  Exceptions, validation of method arguments, setter and getter methods are omitted for the sake of simplicity.

protected interface Distance {
public double compute(double[] x, Centroid centroid);
}
// Defintion of d(x,y) =|x-y|
protected class ManhattanDistance implements Distance {
public double compute(double[] x, Centroid centroid) {
double sum = 0.0, xx = 0.0;
for( int k = 0; k< x.length; k++) {
xx = x[k] - centroid.get(k);
if( xx < 0.0) {
xx = -xx;
}
sum += xx;
}
return sum;
}
}

// Definition d(x,y)= sqr(x-y)
protected class EuclideanDistance implements Distance {
public double compute(double[] x, Centroid centroid) {
double sum = 0.0, xx = 0.0;
for( int k = 0; k < x.length; k++) {
xx = x[k] - centroid.get(k);
sum += xx*xx;
}
return Math.sqrt(sum);
}
}


Next, we define an observation (or data point) as a vector or array of floating point values, in our example.  An observation can support heterogeneous types (boolean, integer, float point,..) as long as they are normalized to [0,1]. In our example we simply normalized over the maximum values for all the observations.

public final class Observation {
// use Euclidean distance that is shared between all the instances

private static Distance metric = new EuclideanDistance();
public static void setMetric(final Distance metric) {
this.metric = metric;
}

private double[] _x  = null;
private int  _index  = -1;

public Observation(double[] x, int index) {
_x = x;
_index = index;
}
// compute distance between each point and the centroid
public double computeDistance(final Centroid centroid) {
return metric.compute(_x, centroid);
}
// normalize the value of data points.
public void normalize(double[] maxValues) {
for( int k = 0; k < _x.length; k++) {
_x[k] /= maxValues[k];
}
}
}


Clusters
Centroid for each cluster are computed iteratively to reduce the loss function.  The centroid values are computed using the mean of each feature across all the observations. The method Centroid.compute initialize the data points belonging to a cluster with the list of observations and compute the centroid values _x by normalizing with the number of points.
protected class Centroid {
private double[] _x = null;

protected Centroid() {}
protected Centroid(double[] x) {
Array.systemCopy(_x, x, 0, x.length, sizeOf(double));
}
// Compute the centoid values _x by normalizing with the number of points.
protected void compute(final List<Observation> observations)  {
double[] x = new double[_x.length];
Arrays.fill(x, 0.0);

for( Observation point : observations ) {
for(int k =0; k < x.length; k++) {
x[k] += point.get(k);
}
}
int numPoints = observations.size();
for(int k =0; k < x.length; k++) {
_x[k] = x[k]/numPoints;
}
}
}


A cluster is defined by its label (index in this example) a centroid, the list of observations it contains and the current loss associated to the cluster (sum of the distance between all observations and the centroid).
The cluster behavior is defined by the following methods:
• computeCentroid: compute the sum of the distance between all the point in this cluster and the centroid.
• attach: Attach or add a new observation to this cluster
• detach: Remove an existing observations from this cluster.

public final class KmeansCluster {
private int       _index   = -1;
private Centroid  _centroid  = null;
private double    _sumDistances  = 0.0;
private List<observation> _observations = new ArrayList<Observation>()

public void computeCentroid() {
_centroid.compute( _observations );
for( Observation point : _observations  ) {
point.computeDistance(_centroid);
}
computeSumDistances();
}

// Attach a new observation to this cluster.
public void attach(final Observation point) {
point.computeDistance(_centroid);
computeSumDistances();
}

public void detach(final Observation point) {
_observations.remove(point);
computeSumDistances();
}

private void computeSumDistances() {
_sumDistances = 0.0;
for( Observation point : _observations) {
_sumDistances += point.computeDistance(_centroid);
}
}
//....
}


Finally, the clustering class implements the training and run-time classification. The train method iterates across all the clusters and for all the observations to reassign the observations to each cluster. The iterative computation ends when either the loss value converges or the maximum number of iterations is reached.
If the algorithm use K clusters with M observations with N variables the execution time for creating the clusters is K*M*N. If the algorithm converges after T iterations then the overall execution is T*K*M*N. For instance, the K-means classification of 20K observations and data with 25 dimension, using 10 clusters, converging after 50 iterations requires  250,000,000 evaluations! The constructor create the clustering algorithm with a predefined number of cluster, K, and a set of observations.
The method getCentroids retrieves the current list of centroids (value of centroid vectors)

public final class KmeansClustering {
private KmeansCluster[] _clusters = null;
private Observation[] _obsList = null;
private double _totalDistance  = 0.0;
private Centroid[] _centroids = null;

public KmeansClustering(int numClusters, final Observation[] obsList) {
_clusters = new KmeansCluster[numClusters];
for (int i = 0; i < numClusters; i++) {
_clusters[i] = new KmeansCluster(i);
}
_obsList = obsList;
}

public final List<double[]> getCentroids() {
List<double[]> centroidDataList = null;

if(_clusters != null &&; _clusters.length < 0) {
for( KmeansCluster cluster : _clusters) {
}
}
return centroidDataList;
}
}


The second section (next post) describes the implementation of the training and classification tasks.

References
The Elements of Statistical Learning   - T. Hastie, R.Tibshirani, J. Friedman  - Springer 2001
Machine Learning: A Probabilisitc Perspective 11.4.2.5 K-means algorithm - K. Murphy - MIT Press 2012
Pattern Recognition and Machine Learning: Chap 9 "Mixture Models and EM: K-means Clustering" C.Bishop - Springer Science 2006

1. As the interest of java programming application continues expanding, there is enormous interest for java experts in programming improvement businesses. Along these lines, taking preparing will help understudies to be talented java engineers in driving MNCs.
JAVA Training in Chennai | JAVA course in Chennai | JAVA J2EE Training in Chennai

2. Selenium is most as used automation tool to test web application and browser. This automation tool offers precise and complete information about a software application or environment.
Selenium Training in Chennai | Selenium Training institute in Chennai | Selenium Testing Training in Chennai

Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

Java Online Training Java Online Training Core Java 8 Training in Chennai Core java 8 online training JavaEE Training in Chennai Java EE Training in Chennai

4. Thanks for sharing this program.It is really helpful.Continue sharing more like this.
Regards,
Java Training in Chennai | Java Training Institutes in Chennai | Java courses in Chennai

5. I feel satisfied with your blog, you have been delivering useful & unique information to our vision even you have explained the concept as deep clean without having any uncertainty, keep blogging.
Hadoop Training in Chennai|Big Data Training in Chennai|Big Data Training

6. Informative post :) Thanks It's helped me a lot
Regards,
Core Java Training|JAVA Training in Chennai

7. Thanks for sharing informative article on Salesforce technology. Your article helped me a lot to understand the career prospects in cloud computing technology. Salesforce Training in Chennai | Salesforce Training Institutes in Chennai

8. Excellent post!!! The future of cloud computing is on positive side. With most of the companies integrate Salesforce CRM to power their business; there is massive demand for Salesforce developers and administrators across the world.Salesforce Training in Chennai | Salesforce Training Institutes in Chennai

9. Amazing blog about the various informative information on the programming languages. Java Training in Chennai

10. Nowadays, most of the businesses rely on cloud based CRM tool to power their business process. They want to access the business from anywhere and anytime. In such scenarios, salesforce CRM will ensure massive advantage to the business owners.Cloud Computing Training in Chennai

11. Nice blog. Thanks for your valuable information and time to understand.
Java Training in chenani

12. Really very informative post you shared here. Keep sharing this type of informative blog. If anyone wants to become a Java professional learn Java Training in Bangalore. Nowadays Java has tons of job opportunities for all professionals.

13. Great and informative article... thanks for sharing your views and ideas.. keep rocks...

Java Training in chennai | Java Training institute in chennai

14. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.

Java Training in Bangalore

15. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.

https://www.besanttechnologies.com/training-courses/java-training

16. thank you very useful information admin, and pardon me permission to share articles here may help
Best VLSI Project Center in Chennai | VLSI Project Center in Velachery

17. The strategy you have blogged on this technology helped me to get into the next level and had lot of information in it. Thanks for sharing.. Software Testing Training Institute in Chennai | Selenium Training Institute in Chennai | ISTQB Training Institute in Chennai

18. Thank you for sharing the valuable information here. This was nice and please keep update like this valuable information.
Robotics Project Center in Chennai | IEEE Robotics Project Center in Chennai

19. Nice post on java. Advanced technologies are emerging in java and the scope of learning java is very high. Thanks for sharing the valuable blog and keep updating.
Final Year Project Center in Chennai |
IEEE Project Center in Chennai |
Diploma Project Center in Chennai

20. Good and informative post.... it is very useful for me to learn and understand as a initial professional.... keep rocks and updating...Diploma Projects Center in Chennai | Diploma Projects Center in Velachery

21. Thanks For Your valuable posting, it was very informative
No.1 MBA Project Center in Chennai | No.1 MBA Project Center in Velachery

22. Thanks a lot very much for the high quality and results-oriented help. I won’t think twice to endorse your blog post to anybody who wants and needs support about this area.

java training in bangalore

23. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.selenium training in bangalore

24. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging...
Robotics Project Center in Chennai | Best Robotics Projects in Chennai | IEEE Robotics Project Center in Chennai | No.1 Robotics Project Center in Velachery

25. This comment has been removed by the author.

26. I really enjoyed while reading your article, the information you have delivered in this post was damn good. Keep sharing your post with efficient news.RPA Training Institute in Chennai | UI Path Training Institute in Chennai | Blue Prism Training Institute in Chennai

27. I am really happy to read your article with valuable information.Thanks for sharing
No.1 Image Processing Project Center in Chennai | Best Image Processing Project Center in Velachery

28. Informative blog and it was up to the point describing the information very effectively. Thanks to blog author for wonderful and informative post...
Final Year Project Center in Chennai | Final Year Project Center in Velachery

29. Wow Very Nice Information Thanks For Sharing It...

PLC training institute in chennai | Embedded training in Chennai

30. Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.

white label website builder

mobile website builder

31. I can only express a word of thanks! Nothing else. Because your topic is nice, you can add knowledge. Thank you very much for sharing this information.

Avriq India
avriq
pest control
cctv camera

32. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
uipath training institute in chennai

33. Amazing write up..Thanks for sharing this valuable information.
Citrix Exams in Chennai | Xenapp exam center in Chennai

34. I was looking for something like this Amazing post thanks for sharing for great information.
OCJP Exam Center in Chennai | OCJP Exam Center in Velachery

35. I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work.
ISTQB Certification Training in Chennai | Java Exam Center in Chennai | Microsoft Dot net Certification in Chennai

36. Good one.I appreciate you for sharing this knowledge.Thank you so much for the examples.
No.1 Android project Center in Chennai | No.1 Android project Center in Velachery

37. I feel satisfied with your blog, you have been delivering useful & unique information to our vision even you have explained the concept as deep clean without having any uncertainty, keep blogging.
OCJP Exam Center in Chennai | OCJP Exam Center in Velachery

38. Nice blog with excellent information. Thank you, keep sharing.
Citrix Exams in Chennai | Xenapp exam center in Chennai

39. Great information in this blog given by you and very interesting to read this article. Our Oracle fusion financials online training supplier gained the high commonplace name through worldwide for its teaching.Thanks for sharing.
Citrix Exams in Chennai | Xenapp exam center in Chennai

40. Hi, am a big follower of your blog. Nice information on clustering concept. I am really happy to found such a helpful and fascinating post that is written in well manner. Thanks for sharing such an informative post. Keep update your blog.
OCJP Exam Center in Chennai | OCJP Exam Center in Velachery

41. Appreciation for really being thoughtful and also for deciding on certain marvelous guides most people really want to be aware of.
VMware Exam Centers in Chennai | VMware Exam Centers in Velachery

42. Extremely exceptionally educational post you shared here. Continue sharing this sort of useful blog.
Citrix Exams in Chennai | Xenapp exam center in Chennai

43. I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work.
VMware Exam Centers in Chennai | VMware Exam Centers in Velachery

44. Good one.I appreciate you for sharing this knowledge.Thank you so much for the examples.Its very helpful for me and newbies.I learned much .
Citrix Exams in Chennai | Xenapp exam center in Chennai

45. Quite interesting post,Thanks for sharing the information.Keep updating good stuff...
Best RPA Training Institute in Chennai | Best RPA Training Institute in Velachery

46. Excellent information you made in this blog, very helpful information. Thanks for sharing.
No.1 UIPath Training Institute in Chennai | No.1 UIPath Training Institute in Velachery

47. Very good informative blog, keep sharing.
RPA Training Course in Chennai | RPA Training Course in Velachery

48. Hi Thanks for the nice information its very useful to read your blog.
Graphic Designing Training Institute in Chennai | Graphic Designing Training Institute in Velachery

49. Hi Thanks for the nice information its very useful to read your blog.
Blue Prism Robotic Process Automation in Chennai | Blue Prism Robotic Process Automation in Velachery

50. Quite interesting post,Thanks for sharing the information.Keep updating good stuff...
ISTQB Certifications Exams Course in Chennai | QA Testing in Meenambakkam

No.1 Microsoft Azure Training Institute in Chennai | No.1 Microsoft Azure Training Institute in Velachery

52. I believe that there will be very good opportunities for the people who are coming around this area.
Robotics Project Center Training in Chennai | Best Robotics Project Course in Tambaram

54. Hi Thanks for the nice information its very useful to read your blog.
CLOUD COMPUTING Classes in Chennai | CLOUD COMPUTING Courses in Velachery

55. Thank you for posting such an informative post..Keep blogging..
Selenium Testing Course in Chennai | Selenium Testing Course in Velachery

56. Appreciation for really being thoughtful and also for deciding on certain marvelous guides most people really want to be aware of.
No.1 Blue Prism Training Institute in Chennai | No.1 Blue Prism Training Institute in Velachery | No.1 Blue Prism Training Institute in Kanchipuram

57. It is really a great work and the way in which u r sharing the knowledge is excellent. Thanks for helping me to understand basic concepts. Thanks for your informative article. Java Training in Chennai | Pega Training in Chennai

58. Thank you for taking the time to provide us with your valuable information. Keep sharing your post regularly..
Automation Anywhere Training with Placement in Chennai | Automation Anywhere Training with Placement in Tambaram

59. Your very own commitment to getting the message throughout came to be rather powerful and have consistently enabled employees just like me to arrive at their desired goals.
JAVA and J2EE Training Institute in Chennai | JAVA and J2EE Training Institute in Velachery

60. Hi there, I am so thrilled I found your website, I really found you by mistake, while I was browsing on Yahoo for something else, Anyhow I am here now and would just like to say thanks a lot for a tremendous post and an all-round exciting blog. Please do keep up the awesome job.
No.1 Automation Anywhere Training Institute in Chennai | No.1 Automation Anywhere Training Institute in Velachery

61. I was curious if you ever considered changing the layout of your site? It’s very well written; I love what you’ve got to say. You’ve got an awful lot of text.
No.1 Blue Prism Training Institute in Chennai | No.1 Blue Prism Training Institute in Kanchipuram

62. Very Nice Information... Thank you so much for sharing...
Python Certification Course in Chennai | Python Certification Course in OMR

63. Nice Blog… Wonderful Information and really very much useful. Thanks for sharing and keep updating…
Python Training Institute in Chennai | Python Training Institute in Velachery

64. Really it was an awesome article. Very useful & Informative..Thanks for sharing..
Hardware and Networking Training in Chennai | Hardware and Networking Training in Taramani

65. Simply wish to say your article is as astonishing. The clarity in your post is simply great, and I could assume you are an expert on this subject. Thanks a million, and please keep up the gratifying work.
Python Exam Centers in Chennai | Python Exam Centers in Chennai

66. Thank you for your information. I have got some important suggestions from it. Keep on sharing.
Best Hardware and Networking Training Institute in Chennai |Best Hardware and Networking Training Institute in Kanchipuram

67. Very good and informative article. Thanks for sharing such nice article, keep on updating such good articles.
C and C++ Training in Chennai | C and C++ Training in Taramani

68. Great post. Wonderful information and really very much useful. Thanks for sharing and keep updating.
MCSE&MCSA Training institute in Chennai |MCSE&MCSA Training institute in Madipakkam

Oracle Training in Chennai | Oracle Training in Kanchipuram

70. Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
Software Testing Training Institute in Chennai |Software Testing Training Institute in Taramani

71. Your Blog is really amazing with useful information you are shared here...Thank you for sharing such an informative and awesome post with us. Keep blogging article like this……..
AWS Training Institute in Chennai | AWS Training Institute in Velachery

72. Nice Blog… Wonderful Information and really very much useful. Thanks for sharing and keep updating…
Blueprism Exam Center in Chennai | Blueprism Exam Center in Velachery

73. Really I enjoy this blog….. Very nice post… Thanks for sharing and keep updating
AWS Training Institute in Chennai | AWS Training Institute in Velachery

74. Well Said, you have provided the right info that will be beneficial to somebody at all time. Thanks for sharing your valuable Ideas to our vision
Best UIPath Training Institute in Chennai | Best UIPath Training Institute in Velachery

75. Thank you so much for sharing such an amazing post with useful information with us. Keep updating such a wonderful blog….
Best CCNA Training Institute in Chennai| CCNA Training Center in Velachery

76. Really it was an awesome blog...... Very interesting to read, .It’s very helpful for me, Big thanks for the useful info and keep updating…
Ethical Hacking Training Course in Chennai | Ethical Hacking Training Course in Nanganallur

77. Awesome blog. Your articles really impressed for me, because of all information so nice and unique...
Best Selenium Training Institute in Chennai|Best Selenium Training Institute in Saidapet

78. Nice blog…. with lovely information. Really very useful article for us thanks for sharing such a wonderful blog. Keep updating…..
Best Linux Training Institute in Pallikaranai| Best Linux Training Institute in Velachery

79. Awesome article…. Really very helpful information for us. Keep it up. Keep blogging. Looking to reading your next post,. Thank You for Sharing This Information
Best PCB Training Institute in Taramani| Best PCB Training Institute in Velachery

80. Hi,
I must appreciate you for providing such a valuable content for us. This is one amazing piece of article. Helped a lot in increasing my knowledge.
Ethical Hacking Course in Chennai
SEO Training in Chennai
Ethical Hacking Certification
Hacking Course
SEO training course
Best SEO training in chennai

JAVA Training Center in Coimbatore
JAVA Training
JAVA Certification Course
JAVA Certification Training
JAVA Training Courses

82. Thank you for your information. I have got some important suggestions from it. Keep on sharing.
RPA Training in Chennai | RPA Training in Pallikaranai

83. I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work.
Automation Anywhere Training in Chennai | Automation Anywhere Training in Pallavaram

84. Good Post…. Thanks for the useful information it’s very useful to read your blog. Keep blogging article like this.
Best JAVA/J2EE Training Institute in Perungudi| Best JAVA/J2EE Training Institute in Velachery

85. Nice blog, really I feel happy to see this useful blog… Thanks for sharing this valuable information to our vision....
Best AWS Training Institute in Medavakkam| Best AWS Training Institute in Velachery

86. Nice blog, really I feel happy to see this useful blog… Thanks for sharing this valuable information to our vision....
Best AWS Training Institute in Medavakkam| Best AWS Training Institute in Velachery

87. Excellent informative blog, keep for sharing.
Blue prism Training in Chennai | Blue prism Training in Besant Nagar

88. Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
Best Selenium Training Institute in Chennai|Best Selenium Training Institute in Pallikaranai

89. Awesome post…. This is really helpful for me. I like it. Thanks for sharing……
Best Azure Training Institute in Chennai| Best Azure Training Institute in Velachery

90. Really wonderful post.... My sincere thanks for sharing very useful information to the users... Please continue to share this kind of post
Best Python Exams Center in OMR| Best Python Certification Exams in OMR

91. Very nice article and interesting post!!

Education
Technology

92. Thank you for posting such an informative post..Keep blogging..
Automation Anywhere Training in Chennai | Automation Anywhere Training in Ashok Nagar

93. Thank you so much for sharing this worth able content with us. The concept taken here will be useful for my future programs and I will surely implement them in my study.
Perfect and Outstanding Dotnet Training Institute in Chennai| Perfect and Outstanding Dotnet Training Institute in Adyar

94. Really very nice blog information for this one and more technical skills are improve,i like that kind of post.
Graphic Designing Training in Chennai | Graphic Designing Training in Keelkattalai

95. Wonderful blog… You provided very interesting information here. I feel happy to read this post. I hope that you will write many posts like this… Thanks for sharing and Keep updating…..
Python Training Institute in Chennai | Python Training Institute in Velachery

96. This blog is really useful and it is very interesting thanks for sharing, it is really good and exclusive.
Best Selenium Training Institute in Chennai |Best Selenium Training Institute in Chennai

97. Nice and informative article. Thanks for sharing such nice article, keep on updating.
Best Selenium Training Institute in Chennai |Best Selenium Training Institute in Chennai

98. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge.
UIPath Training in Chennai | UIPath Training in Kanchipuram

99. very interesting topic.Helps to gain knowledge about lot of information. Thanks for posting information in this blog.
Ethical Hacking Training in Chennai | Ethical Hacking Training in Thiruvanmiyur

100. Very interesting content which helps me to get the in depth knowledge about the technology.
Android Training in Chennai | Android Training in Porur

101. Your blog is really amazing with smart and cute content.keep updating such an excellent article..
Java Training in Chennai | Java Training in St.Thomas Mount

102. Really I enjoy this blog….. Very nice post… Thanks for sharing and keep updating
RPA Training in Chennai | RPA Training in Pallavaram

103. Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating...
Best Software Testing Training Institute in Chennai | Best Software Testing Training Institute in T.Nagar

104. Nice blog…. with lovely information. Really very useful article for us thanks for sharing such a wonderful blog. Keep updating…..
Ethical Hacking Training in Chennai | Ethical Hacking Training in Kanchipuram

105. Good one.I appreciate you for sharing this knowledge.Thank you so much for the examples.Its very helpful for me and newbies.I learned much
Blue prism Training in Chennai | Blue prism Training in Medavakkam

Software Testing Course in Chennai | Software Testing Course in Perungudi

Best Ethical Hacking Training Institute in Chennai | Best Ethical Hacking Training Institute in Velachery

108. Thanks for sharing this valuable information.. I saw your website and get more details..Nice work...
JAVA and J2EE Training Institute in Chennai | JAVA and J2EE Training Institute in Besant Nagar

109. Your blog is really amazing with smart and cute content.keep updating such an excellent article..
Software Testing Course in Chennai | Software Testing Course in Keelkattalai

110. This is a nice post in an interesting line of content.Thanks for sharing this article.
IOS Training Institute in Chennai | IOS Training Institute in Pallavaram

111. Really very nice blog information for this one and more technical skills are improve,i like that kind of post.
Selenium Automation Course in Chennai | Selenium Automation Course in Pallikaranai

112. Really it was an awesome blog...... Very interesting to read, .It’s very helpful for me, Big thanks for the useful info and keep updating…
Automation Anywhere Certification in Chennai | Automation Anywhere Training in Pallikaranai

113. Thank you for sharing this valuable information.
RPA Training in Chennai | RPA Training in Madipakkam

114. This is really too useful and have more ideas from yours. keep sharing many techniques. eagerly waiting for your new blog and useful information. keep doing more.

115. Thanks for posting this useful content, Good to know about new things here,Keep updating your blog...
Best Python Training institute in Chennai | Best Python Training institute in Thiruvanmiyur

116. Useful blog, keep up the good work and share more like this.
Blue Prism Training Chennai
Blue Prism Training Institute in Chennai

117. I have read your blog. It’s very informative and useful blog. You have done really great job. Keep update your blog.
Ethical Hacking Training in Chennai | Ethical Hacking Training in Taramani

118. Nice post... Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating...
Blueprism Exam Center in Chennai | Blueprism Exam Center in Velachery

119. Post is very informative… It helped me with great information so I really believe you will do much better in the future.
Best Dot Net Training center in Chennai|Best Dot Net Training center in Velachery

120. Thank you so much for sharing this worth able content with us. Keep blogging article like this.

121. This comment has been removed by the author.

122. Appreciation for really being thoughtful and also for deciding on certain marvelous guides most people really want to be aware of.
Robotic Process Automation Training course in Chennai | Robotic Process Automation Training course in Velachery

123. Awesome blog. Your articles really impressed for me, because of all information so nice and unique...
Best Selenium Training Institute in Chennai |Best Selenium Training Institute in Kanchipuram

124. Nice post..Thanks for sharing this useful and interesting article..
Blue Prism Training in Chennai | UI Path Training in Chennai | Automation Anywhere Training in Chennai

125. Quite interesting post,Thanks for sharing the information.Keep updating good stuff...
No.1 Automation Anywhere Training Institute in Chennai | No.1 Automation Anywhere Training Institute in Velachery

126. Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
Best Web Designing and Development Training Institute in Chennai | Best Web Designing and Development Training Institute in Taramani

127. Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
Selenium Testing Tools Training with placement in Chennai|Selenium Testing tools training with placement in Velachery

128. The provided information’s are very useful to me.Thanks for sharing.Keep updating your blog...
Software Testing Course in Chennai | Software Testing Course in Perungudi

129. Awesome blog you are submitted here. Your articles really impressed for me, because of all information are useful and unique...
Advanced Software Testing Course in Chennai |Advanced Software Testing Course in Velachery

130. These provided information was really so nice, thanks for giving that post and the more skills to develop after refer that post.
No.1 Software Testing Training institute in Chennai|No.1 Software Testing Training institute in Kanchipuram|No.1 Software Testing Training institute in Velachery

131. Wonderful Blog!!! Your post is very informative about the latest technology. Thank you for sharing the article with us.
Automation Anywhere in Chennai | Automation Anywhere in Velachery

132. I really enjoyed while reading your article, the information you have delivered in this post was damn good. thank you for sharing..htts://www.alltechzsolution.in/python-training-in-chennai-php

133. Such a cute blog. Thank you for blogging. Keep adding more blogs. Very nicely presented.Best Software Testing Institute in Chennai|
Best Software Testing Institute in Velachery|
Best Software Testing Institute in Kanchipuram|

134. very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing Android Training Institute in Chennai | Android Trainning Institute in Velachery | Android Training Institute in Kanchipuram

135. Great post and informative blog.it was awesome to read, thanks for sharing this great content to my vision.
Advanced .Net Course in Chennai |
Advanced .Net Course in Velachery |
Advanced .Net Course in Kanchipuram |

136. Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point. Linux server Administration Training in Chennai | Linux server Administration Training in Velachery | Linux server Administration Training in Kanchipuram

137. Well Said, you have furnished the right information that will be useful to anyone at all time. Thanks for sharing your ideas.
No.1 Microsoft Azure Training Institute in Chennai|
No.1 Microsoft Azure Training Institute in Velachery|
No.1 Microsoft Azure Training Institute in Kanchipuram|

138. Post shows good and much informative, thanks for sharing and

Chennai
| JAVA / J2EE Training courses in

Kancheepuram

139. I am reading your blog regularly, what a post very interesting and great content. Thank you for your post!!!Best CLOUD COMPUTING Training Institute in Chennai |
Best CLOUD COMPUTING Training Institute in Velachery |
Best CLOUD COMPUTING Training Institute in Kanchipuram |

140. Nice blog, really I feel happy to see this useful blog… Thanks for sharing this valuable information to our vision.I’m expecting much of these useful things. JAVA Certification Course in Chennai | JAVA Certification Course in Velachery

141. Appreciation for really being thoughtful and also for deciding on certain marvelous guides most people really want to be aware of.
No.1 Ethical Hacking Training institute in Chennai | No.1 Ethical Hacking Training institute in Kanchipuram

142. This is really too useful and have more ideas from yours. keep sharing many things and thanks for sharing the information
Best Android Training in Chennai|
Best Android Training in Velachery|
Best Android Training in Kanchipuram|

143. Nice blog, really I feel happy to see this useful blog… Thanks for sharing this valuable information to our vision....
Best Certified Ethical Hacking Training in Chennai
|

Best Certified Ethical Hacking Training in Velachery
|

Best Certified Ethical Hacking Training in Kanchipuram
|

144. Wonderful Blog!!! Your post is very informative about the latest technology. Thank you for sharing the article with us.
Best Graphic Designing Training Institute in Chennai | Best Graphic Designing Training Institute in Kanchipuram

145. Nice post great information and really very much useful. Thanks for sharing and keep updating.
Best Hardware and Network training in Chennai |Best Hardware and Network training in Velachery

146. Nice blog, really I feel happy to see this I enjoyed reading the Post. It was very informative and useful. It is a great post. Keep sharing such kind of useful information.
Advanced Web Designing and Development courses in Chennai|
Advanced Web Designing and Development courses in Velachery|
Advanced Web Designing and Development courses in Kanchipuram|

147. The website is looking bit flashy and it catches the visitors eyes. A design is pretty simple .
Best UIPath Training Institute in Chennai | Best UIPath Training Institute in Velachery | Best UIPath Training Institute in Kanchipuram

148. Excellent information with unique content and it is very useful to know about the information based on blogs...
No.1 JAVA Training institute in Chennai|
No.1 JAVA Training institute in Velachery|
No.1 JAVA Training institute in Kanchipuram

149. Nice and good info. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating...
No.1 CCNA certification Training institute in Chennai|
No.1 CCNA certification Training institute in Velachery|
No.1 CCNA certification Training institute in Kanchipuram|

150. Post is very informative… It helped me with great information so I really believe you will do much better in the future.
No.1 Automation Anywhere Training Institute in Chennai|
No.1 Automation Anywhere Training Institute in Velachery|
No.1 Automation Anywhere Training Institute in Kanchipuram|

151. Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating...
Microsoft Azure Training Institute in Chennai | Microsoft Azure Training Institute in Thiruvanmiyur

152. Nice post... Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating...
Best Web Designing and Development Training Institute in Chennai|
Best Web Designing and Development Training Institute in Velachery|
Best Web Designing and Development Training Institute in Kanchipuram|

153. In the beginning, I would like to thank you much about this great post. Its very useful and helpful for anyone looking for tips. I like your writing style and I hope you will keep doing this good working.
Ethical Hacking Course in Chennai
Certified Ethical Hacking Course in Chennai
PHP Training in Chennai
ccna Training in Chennai
Web Designing Course in Chennai
ethical hacking course in chennai
hacking course in chennai

154. This is really too useful and have more ideas from yours. keep sharing many things and thanks for sharing the information.
Best Python Training Institute in Chennai|
Best Python Training Institute in Velachery|
Best Python Training Institute in Kanchipuram|

155. Excellent information with unique content and it is very useful to know about the information based on blogs...
Java Training Institute in Chennai | Java Training Center in Velachery | Java Training in Kanchipuram

156. Very good and informative article. Thanks for sharing such nice article, keep on updating such good articles.
Selenium Training Center in Chennai | Selenium Training in Velachery | Selenium Exam Center in Chennai

157. Amazing blog.and thank you for sharing.https://www.alltechzsolutions.in/summer-courses-in-kanchipuram.php

158. This is really too useful and have more ideas from yours. keep sharing many things and thanks for sharing the information.
Best Summer course Training in C and C++ for Students in Kanchipuram|

159. Excellent information with unique content and it is very useful to know about the information based on blogs...
Best Summer courses Training Institute in Kanchipuram|

160. Your blog is very informative with useful information, thanks a lot for sharing such a wonderful article it’s very useful for me. Keep updating your creative knowledge....

Summer Camp for Kids in Chennai
|
Summer Camp for Kids in Velachery
|
Summer Course in Taramani

Summer Camp Institute in Kanchipuram

162. Such a cute blog. Thank you for blogging. Keep adding more blogs and Very nicely presented.
Best Summer Courses training in Chennai|
Best Summer Courses training in Velachery|
Best Summer Courses training in Kanchipuram|

163. These provided information was really so nice,thanks for sharing..Best vacation classes for Students in Kanchipuram|

164. Nice post... Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating...
Best Summer Classes in Kanchipuram|

165. Thanks for posting this useful information, Good to know about new things here, Keep updating your blog...
Vacation Courses Training in Chennai | Vacation Courses Training in Velachery

166. Thank you so much for posting this useful information content, Good to know about new things here, Keep share your blog...
Vacation Classes in Chennai | Vacation Classes in Velachery

167. Thank you so much for sharing such an amazing post with useful information with us. Keep updating such a wonderful blog….
Best Vacation Courses in Kanchipuram|

168. Very informative blog. Helps to gain knowledge about new concepts and techniques. Thanks for posting information in this blog
Summer Course Training in Chennai | Summer Course Training in Tambaram

169. Such a cute blog. Thank you for blogging. Keep adding more blogs and Very nicely presented.
Summer Course Training in Chennai | Summer Course Training in Tambaram

170. You truly did more than visitors’ expectations. Thank you for rendering these helpful, trusted, edifying and also cool thoughts on the topic.
Summer courses in Chennai | Summer Classes in Velachery

171. I have read your blog. It’s very informative and useful blog. You have done really great job. Keep update your blog. Thanks..
Best Summer Courses Training Institute in Kanchipuram

172. Excellent information with unique content and it is very useful to know about the information based on blogs...
Vacation Courses in Chennai | Vacation Courses in Pallikaranai

173. Thank you for sharing the valuable information here.Best vacation classes traning for Students

174. Thank you so much for sharing this worth able content with us. It's Very Useful content.
Best Vacation Courses in Kanchipuram

175. The provided information’s are very useful to me.Thanks for sharing.Keep updating your blog...
Vacation Course Training Institute in Chennai | Vacation Course Training Institute in Pallavaram

176. Great post and informative blog.it was awesome to read, thanks for sharing this great content to my vision.
Summer courses in Chennai | Summer courses in Nanganallur

177. Thank you for posting such an informative post..Keep blogging..Best summer course traning for Students in kanchipuram

178. I enjoyed reading the Post. It was very informative and useful.
Vacation Training Course in Chennai | Vacation Training Course in Adyar

179. Nice post. This post is very helpful. Thank you so much for sharing this post….
Vacation Course Training Institute in Chennai | Vacation Course Training Institute in Madipakkam