-1

I am working on a basic decision making algorithm, i.e. based on the time of a parallel loop iteration, a decision is made to either increase or decrease the amount of threads assigned to a process. My initial approach was to take the average time of ten iterations and compare it to the previous (average) time, every 5secs. This approach failed... left by itself it would always drive the thread count down to 1.

So i've turned to unsupervised learning, using clustering as a way to decide if time x, should be classified into either: increase, stick with, or decrease the amount of threads to assign.

Based on the data type i am classifying, I believe K-means is a good starting point for unsupervised learning? I am on the right track here...

  • 1
    My first thought is that you _don't_ want unsupervised learning, you want classification. Especially since you yourself used the word _classified_, along with the desired classes ;) – keyser Dec 26 '14 at 22:07

1 Answers1

1

If you have an objective, use supervised learning.

Unsupervised methods can cluster by some kind of objective. You have no control to have k-means cluster points according to this objective (e.g. "increase, stick with, or decrease"). Instead, k-means may yield clusters that have no relationship to this at all!

Try labeling some data (which should be fairly easy in retrospective, i.e. "should I have increased the number of threads at t minus 10") and then training a classifier on that.

Has QUIT--Anony-Mousse
  • 76,138
  • 12
  • 138
  • 194