8
$\begingroup$

I need a machine learning algorithm to identify any patterns in a CSV file, which contains details of a cache performance of a CPU workload. More specifically, the CSV file contains columns like Readhits, Readmiss or Writehits.

Which ML algorithms can I use?

$\endgroup$
0
$\begingroup$

Restricted Boltzmann Machines (RBMs) can identify patterns in a CSV file without the user specifying any conditions. They are well fitted for generating, "distributed and graded representations," of a, "complex set of features composing real high-dimensional data is crucial for achieving high performance in machine–learning tasks."1

Because the CSV format is specifically designed to represent instances in rows and a static set of attributes in columns, the set up of the training is straightforward. If the goal is to identify temporal patterns, a windowing strategy may be required.

K-RBMs are a merger of k-mean approaches with RBMs. The choice of approach has much to do with what kinds of patterns are sought. The term pattern can apply to simple trends in numbers over time, common patterns found in textual columns, or complex patterns inferred from multiple columns.

References

[1] Emergence of Compositional Representations in Restricted Boltzmann Machines, J. Tubiana, R. Monasson, 2017)

[2] Learning Multiple Non-Linear Sub-Spaces using K-RBMs, Siddhartha Chandra, Shailesh Kumar & C. V. Jawahar

$\endgroup$
0
$\begingroup$

I would personally go with k-means clustering. Its designed for problems like this.

$\endgroup$
0
$\begingroup$

I need a machine learning algorithm to identify any patterns in a CSV file

You want to do unsupervised learning. The Wikipedia definition of the same is:

Unsupervised machine learning is the machine learning task of inferring a function to describe hidden structure from "unlabeled" data (a classification or categorization is not included in the observations).

I shall recommend you to go through the list of unsupervised learning algorithms here and use the one which would fit your need.

If you're starting out, then I would recommend starting with learning the K-means clustering algorithm.

$\endgroup$
0
$\begingroup$

First, you must classify each chunk of the CSV file and label it based on the current situation, like A) optimal situation B) critical.

Then you cluster your data with an unsupervised learning algorithm, like SOM or k-means, and then you simply classify the classes you will get.

$\endgroup$
0
$\begingroup$

You're basically looking for is unsupervised learning (UL). There are a lot of UL techniques around, but I'm not sure you'll find one that does exactly what you want with no user input at all. Still, if you skim the literature on these approaches, you may well find something useful.

One option is DBSCAN, a very popular clustering algorithm that does not require the user to input an initial target number of clusters (something that most clustering algorithms do require). But even then, you still have to give the algorithm values for epsilon (a distance used in calculating the clusters) and minPts (the minimum number of points required to constitute a "dense" region).

You might also look at self-organizing maps, an approach to unsupervised learning for neural networks.

Some other search terms that might lead you in a useful direction include "data mining" and "knowledge discovery in databases" (KDD).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.