Head/tail Breaks

From Wikipedia, the free encyclopedia
Jump to: navigation, search
1024 cities that follow exactly Zipf's law, which implies that the first largest city is size 1, the second largest city is size 1/2, the third largest city is size 1/3, ... and the smallest city is size 1/1024. The left pattern is produced by head/tail breaks, while the right one by natural breaks, also known as Jenks natural breaks optimization.

Head/tail breaks is a clustering algorithm scheme for data with a heavy-tailed distribution such as power laws and lognormal distributions. The heavy-tailed distribution can be simply referred to the scaling pattern of far more small things than large ones, or alternatively numerous smallest, a very few largest, and some in between the smallest and largest. The classification is done through dividing things into large (or called the head) and small (or called the tail) things around the arithmetic mean or average, and then recursively going on for the division process for the large things or the head until the notion of far more small things than large ones is no longer valid, or with more or less similar things left only.[1] Head/tail breaks is not just for classification, but also for visualization of big data by keeping the head, since the head is self-similar to the whole. Head/tail breaks can be applied not only to vector data such as points, lines and polygons, but also to raster data like digital elevation model (DEM).


The head/tail breaks is mainly motivated by inability of conventional classification methods such as equal intervals, quantiles, geometric progressions, standard deviation, and natural breaks - commonly known as Jenks natural breaks optimization for revealing the underlying scaling pattern of far more small things than large ones. Note that the notion of far more small things than large one is not only referred to geometric property, but also to topological and semantic properties. In this connection, the notion should be interpreted as far more unpopular (or less-connected) things than popular (or well-connected) ones, or far more meaningless things than meaningful ones.


Given some variable X that demonstrates a heavy-tailed distribution, there are far more small x than large ones. Take the average of all xi, and obtain the first mean m1. Then calculate the second mean for those xi greater than m1, and obtain m2. In the same recursive way, we can get m3 depending on whether the ending condition of no longer far more small x than large ones is met. For simplicity, we assume there are three means, m1, m2, and m3. This classification leads to four classes: [minimum, m1], (m1, m2], (m2, m3], (m3, maximum]. In general, it can be represented as a recursive function as follows:

    Recursive function Head/tail Breaks:
    Break the input data (around mean or average) into the head and the tail;  
    // the head for data values greater the mean
    // the tail for data values less the mean
    while (head <= 40%):
        Head/tail Breaks(head);
    End Function

The resulting number of classes is referred to as ht-index, an alternative index to fractal dimension for characterizing complexity of fractals or geographic features: the higher the ht-index, the more complex the fractals.[2] Recently, a more sensitive ht-index, namely CRG-index,[3] has been developed, and it is able to capture slight changes which ht-index is unable to. Thus while ht-index is an integer, CRG-index is a real number. A PostgreSQL function for calculating ht-index can be found here.[4]

Threshold or its sensitivity[edit]

The criterion to stop the iterative classification process using the head/tail breaks method is that the remaining data (i.e., the head part) are not heavy-tailed, or simply, the head part is no longer a minority (i.e., the proportion of the head part is no longer less than a threshold such as 40%). This threshold is suggested to be 40% by Jiang et al. (2013),[5] just as the codes above (i.e., head <= 40%). But sometimes a larger threshold, for example 50% or more, can be used, as Jiang and Yin (2014)[2] noted in another article: "this condition can be relaxed for many geographic features, such as 50 percent or even more". However, all heads' percentage on average must be smaller than 40% (or 41, 42%), indicating far more small things than large ones. This sensitivity issue deserves further research in the future.

Rank-size plot and RA index[edit]

A good tool to display the scaling pattern, or the heavy-tailed distribution, is the rank-size plot, which is a scatter plot to display a set of values according to their ranks. With this tool, a new index [6] termed as the ratio of areas (RA) in a rank-size plot was defined to characterize the scaling pattern. The RA index has been successfully used in the estimation of traffic conditions. However, it should be noted that the RA index can only be used as a complementary method to the ht-index, because it is ineffective to capture the scaling structure of geographic features.


Instead of more or less similar things, there are far more small things than large ones surrounding us. Given the ubiquity of the scaling pattern, head/tail breaks is found to be of use to statistical mapping, map generalization, cognitive mapping and even perception of beauty .[5][7][8] It helps visualize big data, since big data are likely to show the scaling property of far more small things than large ones. The visualization strategy is to recursively drop out the tail parts until the head parts are clear or visible enough.[9] In addition, it helps delineate cities or natural cities to be more precise from various geographic information such as street networks, social media geolocation data, and nighttime images.

Characterizing the imbalance[edit]

As the head/tail breaks method can be used iteratively to obtain head parts of a data set, this method actually captures the underlying hierarchy of the data set. For example, if we divide the array (19, 8, 7, 6, 2, 1, 1, 1, 0) with the head/tail breaks method, we can get two head parts, i.e., the first head part (19, 8, 7, 6) and the second head part (19). These two head parts as well as the original array form a three-level hierarchy:

the 1st level (19),

the 2nd level (19, 8, 7, 6), and

the 3rd level (19, 8, 7, 6, 2, 1, 1, 1, 0).

The number of levels of the above-mentioned hierarchy is actually a characterization of the imbalance of the example array, and this number of levels has been termed as the ht-index.[2] With the ht-index, we are able to compare degrees of imbalance of two data sets. For example, the ht-index of the example array (19, 8, 7, 6, 2, 1, 1, 1, 0) is 3, and the ht-index of another array (19, 8, 8, 8, 8, 8, 8, 8, 8) is 2. Therefore, the degree of imbalance of the former array is higher than that of the latter array.

The left panel pattern contains 50,000 natural cities, which can be put into 7 hierarchical levels. It looks like a hair ball. Instead of showing all the 7 hierarchical levels, we show 4 top levels, by dropping out 3 low levels. Now with the right panel, the scaling pattern of far more small cities than large ones emerges. It is important to note that the right pattern (or the remaining part after dropping out the tails) is self-similar to the whole (or the left pattern). Thus the right pattern reflects the underlying structure of the left one, and enables us to see the whole.
The scaling pattern of US terrain surface is distorted by the natural breaks, but revealed by the head/tail breaks.

Delineating natural cities[edit]

The term ‘natural cities’ refers to the human settlements or human activities in general on Earth’s surface that are naturally or objectively defined and delineated from massive geographic information based on head/tail division rule, a non-recursive form of head/tail breaks.[10][11] Such geographic information could be from various sources, such as massive street junctions [11] and street ends, a massive number of street blocks, nighttime imagery and social media users’ locations etc. Distinctive from conventional cities, the adjective ‘natural’ could be explained not only by the sources of natural cities, but also by the approach to derive them. Natural cities are derived from a meaningful cutoff averaged from a massive amount of units extracted from geographic information.[9] Those units vary according to different kinds of geographic information, for example the units could be area units for the street blocks and pixel values for the nighttime images. A natural cities model has been created using ArcGIS model builder,[12] it follows the same process of deriving natural cities from location-based social media,[10] namely, building up huge triangular irregular network (TIN) based on the point features (street nodes in this case) and regarding the triangles which are smaller than a mean value as the natural cities.

Color rendering DEM[edit]

Current color renderings for DEM or density map are essentially based on conventional classifications such as natural breaks or equal intervals, so they disproportionately exaggerate high elevations or high densities. As a matter of fact, there are not so many high elevations or high-density locations.[13] It was found that coloring based head/tail breaks is more favorable than those by other classifications [14]

Software implementations[edit]

The following implementations are available under Free/Open Source Software licenses.

  • HT calculator: a winform application for obtaining related metrics of head/tail breaks applying on a single data array.
  • HT in JavaScript: a JavaScript implementation for applying head/tail breaks on a single data array.
  • HT Mapping tool: a function in the free plug-in Axwoman 6.3 to ArcMap 10.2 that conducts geo-data symbolization automatically based on the head/tail breaks classification.
  • HT in Python: Python and JavaScript code for the head/tail breaks algorithm. It's works great for choropleth map coloring.
  • pysal.esda.mapclassify: Python classification schemes for choropleth mapping, including head/tail breaks map classification.


  1. ^ Jiang, Bin (2013a). "Head/tail breaks: A new classification scheme for data with a heavy-tailed distribution", The Professional Geographer, 65 (3), 482 – 494.
  2. ^ a b c Jiang, Bin and Yin Junjun (2014). "Ht-index for quantifying the fractal or scaling structure of geographic features", Annals of the Association of American Geographers, 104(3), 530–541.
  3. ^ Gao, Peichao; Liu, Zhao; Xie, Meihui; Tian, Kun; Liu, Gang (2015-12-09). "CRG Index: A more sensitive ht-index for enabling dynamic views of geographic features". The Professional Geographer. 0 (0): 1–13. ISSN 0033-0124. doi:10.1080/00330124.2015.1099448. 
  4. ^ Kun Tian, Peichao Gao (2015-01-01). "A PostgreSQL function for calculating the ht-index". doi:10.13140/RG.2.1.3041.0324. 
  5. ^ a b Jiang, Bin, Liu, Xintao and Jia, Tao (2013). "Scaling of geographic space as a universal rule for map generalization", Annals of the Association of American Geographers, 103(4), 844 – 855.
  6. ^ Gao, Peichao; Liu, Zhao; Tian, Kun; Liu, Gang (2016-03-10). "Characterizing Traffic Conditions from the Perspective of Spatial-Temporal Heterogeneity". ISPRS International Journal of Geo-Information. 5 (3): 34. doi:10.3390/ijgi5030034. 
  7. ^ Jiang, Bin (2013b). "The image of the city out of the underlying scaling of city artifacts or locations", Annals of the Association of American Geographers, 103(6), 1552-1566.
  8. ^ Jiang, Bin and Sui, Daniel (2014). "A new kind of beauty out of the underlying scaling of geographic space", The Professional Geographer, 66(4), 676–686
  9. ^ a b Jiang, Bin (2015). "Head/tail breaks for visualization of city structure and dynamics", Cities, 43, 69 - 77.
  10. ^ a b Jiang, Bin and Miao, Yufan (2015). "The evolution of natural cities from the perspective of location-based social media", The Professional Geographer, 67(2), 295 - 306.
  11. ^ a b Long, Ying (2016). "Redefining Chinese city system with emerging new data", Applied Geography, 75, 36 - 48.
  12. ^ Ren, Zheng (2016). "Natural cities model in ArcGIS", http://www.arcgis.com/home/item.html?id=47b1d6fdd1984a6fae916af389cdc57d.
  13. ^ Jiang, Bin (2015). "Geospatial analysis requires a different way of thinking: The problem of spatial heterogeneity", GeoJournal, 80(1), 1-13.
  14. ^ Wu, Jou-Hsuan (2015). "Examining the new kind of beauty using the human being as a measuring instrument", http://www.diva-portal.org/smash/get/diva2:805296/FULLTEXT01.pdf.

Further reading[edit]