1. A method for compressing a plurality of data sets, each data set having a data set context and a history context, the compression method comprising: grouping a plurality of data set contexts into a plurality of data set context clusters; grouping a plurality of history contexts into a plurality of history context clusters; varying the groupings within the data set context clusters and the history context clusters until a minimum total cost is achieved.