Data Clustering in C++: An Object-Oriented Approach

Guojun Gan

March 28, 2011 by Chapman and Hall/CRC
Reference - 520 Pages - 70 B/W Illustrations
ISBN 9781439862230 - CAT# K12884
Series: Chapman & Hall/CRC Data Mining and Knowledge Discovery Series


Add to Wish List
FREE Standard Shipping!


  • Offers a flexible set of reusable classes for data clustering
  • Provides simple, straightforward, object-oriented, and portable C++ code
  • Presents an overview of basic concepts of data clustering and object-oriented programming
  • Includes applications of design patterns in clustering programs


Data clustering is a highly interdisciplinary field, the goal of which is to divide a set of objects into homogeneous groups such that objects in the same group are similar and objects in different groups are quite distinct. Thousands of theoretical papers and a number of books on data clustering have been published over the past 50 years. However, few books exist to teach people how to implement data clustering algorithms. This book was written for anyone who wants to implement or improve their data clustering algorithms.

Using object-oriented design and programming techniques, Data Clustering in C++ exploits the commonalities of all data clustering algorithms to create a flexible set of reusable classes that simplifies the implementation of any data clustering algorithm. Readers can follow the development of the base data clustering classes and several popular data clustering algorithms. Additional topics such as data pre-processing, data visualization, cluster visualization, and cluster interpretation are briefly covered.

This book is divided into three parts--

  • Data Clustering and C++ Preliminaries: A review of basic concepts of data clustering, the unified modeling language, object-oriented programming in C++, and design patterns
  • A C++ Data Clustering Framework: The development of data clustering base classes
  • Data Clustering Algorithms: The implementation of several popular data clustering algorithms

A key to learning a clustering algorithm is to implement and experiment the clustering algorithm. Complete listings of classes, examples, unit test cases, and GNU configuration files are included in the appendices of this book as well as in the CD-ROM of the book. The only requirements to compile the code are a modern C++ compiler and the Boost C++ libraries.