A method for performing efficient data sampling across a storage stack for training machine learning (ML) models. The method includes obtaining, by a processor, data. The processor clusters the data into clusters based on similarities of the obtained data across an entire storage stack including: storage infrastructure metrics, file metrics and application dependency taxonomy. The processor performs a random sampling process to sample representative data from each cluster. The sampled representative data are combined to generate training data for processing predictive analytics.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method comprising: obtaining, by a processor, data; clustering, by the processor, the data into a plurality of clusters based on similarities of the obtained data across an entire storage stack comprising: storage infrastructure metrics, file metrics and application dependency taxonomy; performing, by the processor, a random sampling process to sample representative data from each cluster; and combining the sampled representative data to generate training data for processing predictive analytics. 2. The method of claim 1, further comprising: progressively sampling the plurality of clusters by incrementing a sampling size in each cluster. 3. The method of claim 2, wherein progressively sampling continues until a prediction accuracy threshold is met by training a prediction model using the sampled data or until a sampling memory usage threshold has been met. 4. The method of claim 3, wherein the predictive analytics are used to perform a cloud-readiness recommendation for moving the data offsite to cloud-based storage. 5. The method of claim 4, wherein machine learning (ML) processing models are used to learn from the training data for predicting different categories for the data. 6. The method of claim 1, wherein the storage infrastructure metrics, file metrics and application dependency taxonomy are used instead of entire file content for reducing sampling processing time. 7. The method of claim 2, wherein progressively sampling the plurality of clusters comprises: sampling the plurality of clusters with a first sampling percentage; applying a previous clustering-based sampling to obtain a training data set, and combining the training data set with previous determined training data; training a machine learning (ML) model and obtaining a classification accuracy for the ML model on a held-out test data set or using k-fold cross validation on the obtained training data set; and comparing the classification accuracy with an accuracy from a previous sampling of the data. 8. The method of claim 7, wherein progressively sampling the plurality of clusters further comprises: upon a determination that the classification accuracy improves over the accuracy from the previous sampling of the data, perform incremental sampling to a second sampling percentage; and upon a determination that the classification accuracy converges or does not improve over the accuracy from the previous sampling of the data, or a total sampling size is larger than a predetermined sampling size threshold, outputting the sampled data and the trained ML model from a previous progressive sampling iteration. 9. A computer program product for performing efficient data sampling across a storage stack for training machine learning (ML) models, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to: obtain, by the processor, data; cluster, by the processor, the data into a plurality of clusters based on similarities of the obtained data across an entire storage stack comprising: storage infrastructure metrics, file metrics and application dependency taxonomy; perform, by the processor, a random sampling process to sample representative data from each cluster; and combine, by the processor, the sampled representative data to generate training data for processing predictive analytics. 10. The computer program product of claim 9, further comprising program instructions executable by the processor to cause the processor to: progressively sample, by the processor, the plurality of clusters by incrementing a sampling size in each cluster. 11. The computer program product of claim 10, wherein the progressively sampling continues until a prediction accuracy threshold is met by training a prediction model using the sampled data or until a sampling memory usage threshold has been met. 12. The computer program product of claim 11, wherein the predictive analytics are used to perform a cloud-readiness recommendation for moving the data offsite to cloud-based storage, and ML processing models are used to learn from the training data for predicting different categories for the data. 13. The computer program product of claim 9, wherein the storage infrastructure metrics, file metrics and application dependency taxonomy are used instead of entire file content for reducing sampling processing time. 14. The computer program product of claim 10, wherein progressively sampling of the plurality of clusters comprises program instructions executable by the processor to cause the processor to: sample, by the processor, the plurality of clusters with a first sampling percentage; apply, by the process, a previous clustering-based sampling to obtain a training data set, and combining the training data set with previous determined training data; train, by the processor, an ML model and obtaining a classification accuracy for the ML model on a held-out test data set or using k-fold cross validation on the obtained training data set; and compare, by the processor, the classification accuracy with an accuracy from a previous sampling of the data. 15. The computer program product of claim 14, wherein progressively sampling of the plurality of clusters comprises program instructions executable by the processor to cause the processor to: upon a determination that the classification accuracy improves over the accuracy from the previous sampling of the data, perform, by the processor, incremental sampling to a second sampling percentage; and upon a determination that the classification accuracy converges or does not improve over the accuracy from the previous sampling of the data, or a total sampling size is larger than a predetermined sampling size threshold, output, by the processor, the sampled data and the trained ML model from a previous progressive sampling iteration. 16. An apparatus comprising: a storage device configured to receive data; a clustering processor configured to cluster the data into a plurality of clusters based on similarities of the obtained data across an entire storage stack comprising: storage infrastructure metrics, file metrics and application dependency taxonomy; a sampling processor configured to a randomly sample representative data from each cluster; and a machine learning (ML) processor configured to combine the sampled representative data to generate training data for processing predictive analytics. 17. The apparatus of claim 16, wherein the sampling processor is further configured to: progressively sample the plurality of clusters by incrementing a sampling size in each cluster, wherein the sampling processor continues to progressively sample the plurality of clusters until a prediction accuracy threshold is met by training a prediction model using the sampled data or until a sampling memory usage threshold has been met. 18. The apparatus of claim 17, wherein: the predictive analytics are used to perform a cloud-readiness recommendation for moving the data offsite to cloud-based storage; ML processing models are used to learn from the training data for predicting different categories for the data; and the storage infrastructure metrics, file metrics and application dependency taxonomy are used instead of entire file content for reducing sampling processing time. 19. The apparatus of claim 18, wherein: the sampling processor is further configured to: sample the plurality of clusters with a first sampling percentage; apply a previous clustering-based sampling to obtain a training data set, and combining the training data set with previous determined training data; and the ML processor is further configured to: train an ML model and obtain a classification accuracy for the ML model on a held-out test data set or using k-fold cross validation on the obtained training data set; and comparing the classification accuracy with an accuracy from a previous sampling of the data. 20. The apparatus of claim 19, wherein the ML processor is further configured to: upon a determination that the classification accuracy improves over the accuracy from the previous sampling of the data, perform incremental sampling to a second sampling percentage; and upon a determination that the classification accuracy converges or does not improve over the accuracy from the previous sampling of the data, or a total sampling size is larger than a predetermined sampling size threshold, output the sampled data and the trained ML model from a previous progressive sampling iteration.