Book Image

Machine Learning with R Cookbook

By : Yu-Wei, Chiu (David Chiu)
Book Image

Machine Learning with R Cookbook

By: Yu-Wei, Chiu (David Chiu)

Overview of this book

<p>The R language is a powerful open source functional programming language. At its core, R is a statistical programming language that provides impressive tools to analyze data and create high-level graphics.</p> <p>This book covers the basics of R by setting up a user-friendly programming environment and performing data ETL in R. Data exploration examples are provided that demonstrate how powerful data visualization and machine learning is in discovering hidden relationships. You will then dive into important machine learning topics, including data classification, regression, clustering, association rule mining, and dimension reduction.</p>
Table of Contents (21 chapters)
Machine Learning with R Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Resources for R and Machine Learning
Dataset – Survival of Passengers on the Titanic
Index

Obtaining the optimum number of clusters for k-means


While k-means clustering is fast and easy to use, it requires k to be the input at the beginning. Therefore, we can use the sum of squares to determine which k value is best for finding the optimum number of clusters for k-means. In the following recipe, we will discuss how to find the optimum number of clusters for the k-means clustering method.

Getting ready

In order to find the optimum number of clusters, you need to have the previous recipe completed by generating the customer dataset.

How to do it...

Perform the following steps to find the optimum number of clusters for the k-means clustering:

  1. First, calculate the within sum of squares (withinss) of different numbers of clusters:

    > nk = 2:10
    > set.seed(22)
    > WSS = sapply(nk, function(k) {
    +     kmeans(customer, centers=k)$tot.withinss
    + })
    > WSS
    [1] 123.49224  88.07028  61.34890  48.76431  47.20813
    [6]  45.48114  29.58014  28.87519  23.21331
    
  2. You can then use a line plot to...