Togaware DATA MINING
Desktop Survival Guide
by Graham Williams
Google

Binning

Many algorithms for data mining and before that for machine learning have been developed to deal only with categorial variables. Thus, the ability to turn numeric variables into categoric variables is important.

To divide the range of a numeric variable into intervals, and to then code the values of the variable according to which interval they fall into, thus transforming the variable into a categoric variable, we can use the XnullXXnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)XnullXR functionsR functionscut function. In the example below the values are cut into three ranges, and given appropriate labels. As a bonus, the percentage distribution across the three ranges is also given!



> v <- c(1, 1.4, 3, 1.1, 0.3, 0.6, 4,5)
> v.cuts <- cut(v, breaks=c(-Inf, 1, 2, Inf), labels=c("Low", "Med", "High"))
> v.cuts

[1] Low  Med  High Med  Low  Low  High High
Levels: Low Med High

> table(v.cuts)/length(v.cuts)*100

v.cuts
 Low  Med High
37.5 25.0 37.5

cutXnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)cutR functionsR functions

An example of this kind of transformation in practise is given in See Chapter 20, where the XnullXXnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)XnullXR functionsR functionsapriori function requires categoric variables.

Binning is in fact a common concept and tools exist to automatically bin data using different strategies. The XnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)R functionsR functionsbinning function of the XnullXXnullXR packagesR functions (R function)R packagesR libraries (R library)R packagesR option (R option)R packagesR packages (R package)R packagesDatasets (Dataset)XnullXR packagesR packagessm package provides basic binning functionality.



> library(sm)
> x <- rnorm(100)
> y <- cut(x, breaks=binning(x, nbins=3)$breaks, labels=c("Lo", "Med", "Hi"))
> y
  [1] Lo  Lo  Med Med Med Lo  Med Med Med Med Med Lo  Lo  Med Hi  Hi  Med Lo
 [19] Lo  Med Lo  Hi  Lo  Med Hi  Lo  Med Lo  Med Lo  Med Med Lo  Med Med Med
 [37] Lo  Med Med Lo  Lo  Lo  Lo  Med Med Med Lo  Med Med Med Lo  Med Lo  Med
 [55] Med Lo  Med Med Med Med Lo  Med Med Lo  Med Lo  Med Med Med Med Lo  Med
 [73] Med Med Med Med Lo  Med Lo  Med Med Med Lo  Med Med Lo  Lo  Med Lo  Lo
 [91] Lo  Med Med Lo  Lo  Med Med Med Lo  Med
Levels: Lo Med Hi

cutXnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)cutR functionsR functionsrnormXnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)rnormR functionsR functionsbinningXnullXR functionsR functions (R function)R functionsR libraries (R library)R functionsR option (R option)R functionsR packages (R package)R functionsDatasets (Dataset)binningR functionsR functions

Copyright © 2004-2008 Togaware Pty Ltd
Support further development through the purchase of the PDF version of the book.
PDF version is properly formatted and forms a comprehensive book (draft with over 600 pages).
Brought to you by Togaware.