A cluster of server computing devices receives a matrix of observations and divides the matrix into a plurality of input data sets. Each processor in the cluster generates a first data structure for a distance matrix based upon a corresponding input data set, the distance matrix comprising a plurality of items, and clusters the items to generate a clustered distance matrix. Each processor generates a second data structure for a linkage matrix using the clustered matrix. Each processor analyzes the linkage matrix to determine a number of items per cluster and analyzes the linkage matrix to assign a weight to each cluster based upon a distance of the cluster to other clusters and a size of the cluster. Each processor generates a third data structure containing the clusters and assigned weights. Each third data structure is consolidated into a hierarchical data structure, which is transmitted to a remote computing device.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system comprising: a cluster of server computing devices communicably coupled to each other and to a database computing device, each server computing device having one or more machine learning processors, the cluster of server computing devices programmed to: a) receive a matrix of observations; b) divide the matrix of observations into a plurality of input data sets and transmit each of the plurality of input data sets to a corresponding machine learning processor; c) generate, by each machine learning processor, a first data structure for a distance matrix based upon the corresponding input data set, the distance matrix comprising a plurality of items; d) determine, by each machine learning processor, a distance between any two column-vectors of the distance matrix; e) generate, by each machine learning processor, a cluster of items using a pair of columns associated with the two column-vectors; f) define, by each machine learning processor, a distance between the cluster and unclustered items of the distance matrix; g) update, by each machine learning processor, the distance matrix by appending the cluster and defined distance to the distance matrix and dropping clustered columns each rows of the distance matrix; h) append, by the machine learning processor, one or more additional clusters to the distance matrix by repeating steps e)-g) for each additional cluster; i) generate, by each machine learning processor, a second data structure for a linkage matrix using the clustered distance matrix; j) analyze, by each machine learning processor, the linkage matrix to determine a number of items per cluster; k) analyze, by each machine learning processor, the linkage matrix to assign a weight to each cluster based upon a distance of the cluster to other clusters and a size of the cluster; l) generate, by each machine learning processor, a third data structure containing the clusters and assigned weights; and m) consolidate each third data structure from each machine learning processor into a hierarchical data structure and transmit the hierarchical data structure to a remote computing device. 2. The system of claim 1, wherein generating a first data structure for a distance matrix further comprises: generating a correlation matrix based upon the corresponding input data set; defining a distance measure using the correlation matrix; and generating the first data structure based upon the correlation matrix and the distance. 3. The system of claim 1, wherein the distance between any two column-vectors of the distance matrix comprises a Euclidian distance. 4. The system of claim 1, wherein the distance between the cluster and unclustered items of the distance matrix is determined using a nearest point algorithm. 5. The system of claim 1, wherein analyzing the linkage matrix to determine a number of items per cluster further comprises: assigning a unit size to each item; and determining a size of each cluster based upon the unit size assigned to each item in the cluster. 6. The system of claim 5, wherein analyzing the linkage matrix to assign a weight to each cluster further comprises: assigning an equal weight to clusters that are separated by a distance that falls below a predetermined threshold; and assigning a weight that is proportional to the size of each cluster where the clusters are separated by a distance that falls above a predetermined threshold. 7. The system of claim 1, wherein the remote computing device uses the weights in the hierarchical data structure to rebalance an asset allocation for a financial portfolio. 8. The system of claim 1, wherein each server computing device includes a plurality of machine learning processors, each machine learning processor having a plurality of processing cores. 9. The system of claim 1, wherein each processing core of each machine learning processor receives and processes a portion of the corresponding input data set. 10. A method comprising: a) receiving, by a cluster of server computing devices communicably coupled to each other and to a database computing device and each server computing device comprising one or more machine learning processors, a matrix of observations; b) dividing, by the cluster of server computing devices, the matrix of observations into a plurality of input data sets and transmit each of the plurality of input data sets to a corresponding machine learning processor; c) generating, by each machine learning processor, a first data structure for a distance matrix based upon the corresponding input data set, the distance matrix comprising a plurality of items; d) determining, by each machine learning processor, a distance between any two column-vectors of the distance matrix; e) generating, by each machine learning processor, a cluster of items using a pair of columns associated with the two column-vectors; f) defining, by each machine learning processor, a distance between the cluster and unclustered items of the distance matrix; g) updating, by each machine learning processor, the distance matrix by appending the cluster and defined distance to the distance matrix and dropping clustered columns and rows of the distance matrix; h) appending, by each machine learning processor, one or more additional clusters to the distance matrix by repeating steps e)-g) for each additional cluster; i) generating, by each machine learning processor, a second data structure for a linkage matrix using the clustered distance matrix; j) analyzing, by each machine learning processor, the linkage matrix to determine a number of items per cluster; k) analyzing, by each machine learning processor, the linkage matrix to assign a weight to each cluster based upon a distance of the cluster to other clusters and a size of the cluster; l) generating, by each machine learning processor, a third data structure containing the clusters and assigned weights; and m) consolidating the third data structure from each machine learning processor into a hierarchical data structure and transmitting the hierarchical data structure to a remote computing device. 11. The method of claim 10, wherein generating a first data structure for a distance matrix further comprises: generating a correlation matrix based upon the corresponding input data set; defining a distance measure using the correlation matrix; and generating the first data structure based upon the correlation matrix and the distance. 12. The method of claim 10, wherein the distance between any two column-vectors of the distance matrix comprises a Euclidian distance. 13. The method of claim 10, wherein the distance between the cluster and unclustered items of the distance matrix is determined using a nearest point algorithm. 14. The method of claim 10, wherein analyzing the linkage matrix to determine a number of items per cluster further comprises: assigning a unit size to each item; and determining a size of each cluster based upon the unit size assigned to each item in the cluster. 15. The method of claim 14, wherein analyzing the linkage matrix to assign a weight to each cluster further comprises: assigning an equal weight to clusters that are separated by a distance that falls below a predetermined threshold; and assigning a weight that is proportional to the size of each cluster where the clusters are separated by a distance that falls above a predetermined threshold. 16. The method of claim 10, wherein the remote computing device uses the weights in the hierarchical data structure to rebalance an asset allocation for a financial portfolio. 17. The method of claim 10, wherein each server computing device includes a plurality of machine learning processors, each machine learning processor having a plurality of processing cores. 18. The method of claim 17, wherein each processing core of each machine learning processor receives and processes a portion of the corresponding input data set. 19. A computer program product, tangibly embodied in a non-transitory computer readable storage device, the computer program product comprising instructions that when executed, cause a cluster of server computing devices communicably coupled to each other and to a database computing device, each server computing device comprising one or more machine learning processors, to: a) receive a matrix of observations; b) divide the matrix of observations into a plurality of input data sets and transmit each one of the plurality of input data sets to a corresponding machine learning processor; c) generate, by each machine learning processor, a first data structure for a distance matrix based upon the corresponding input data set, the distance matrix comprising a plurality of items; d) determine, by each machine learning processor, a distance between any two column-vectors of the distance matrix; e) generate, by each machine learning processor, a cluster of items using a pair of columns associated with the two column-vectors; f) define, by each machine learning processor, a distance between the cluster and unclustered items of the distance matrix; g) update, by each machine learning processor, the distance matrix by appending the cluster and defined distance to the distance matrix and dropping clustered columns and rows of the distance matrix; h) append, by each machine learning processor, one or more additional clusters to the distance matrix by repeating steps e)-g) for each additional cluster; i) generate, by each machine learning processor, a second data structure for a linkage matrix using the clustered distance matrix; j) analyze, by each machine learning processor, the linkage matrix to determine a number of items per cluster; k) analyze, by each machine learning processor, the linkage matrix to assign a weight to each cluster based upon a distance of the cluster to other clusters and a size of the cluster; l) generate, by each machine learning processor, a third data structure containing the clusters and assigned weights; and m) consolidate each third data structure from each machine learning processor into a hierarchical data structure and transmitting the hierarchical data structure to a remote computing device.