Given four binary vectors which represent “classes”:
[1,0,0,0,0,0,0,0,0,0]
[0,0,0,0,0,0,0,0,0,1]
[0,1,1,1,1,1,1,1,1,0]
[0,1,0,0,0,0,0,0,0,0]
What methods are available for classifying a vector of floating point values into one of these “classes”?
Basic rounding works in most cases:
round([0.8,0,0,0,0.3,0,0.1,0,0,0]) = [1 0 0 0 0 0 0 0 0 0]
But how can I handle some interference?
round([0.8,0,0,0,0.6,0,0.1,0,0,0]) != [1 0 0 0 0 1 0 0 0 0]
This second case should be a better match for 1000000000, but instead, I have lost the solution entirely as there is no clear match.
I want to use MATLAB for this task.
Find the SSD (sum of squared differences) of your test vector with each “class” and use the one with the least SSD.
Here’s some code: I added a
0to the end of the test vector you provided since it was only 9 digits whereas the classes had 10.For illustrative purposes,
differencelooks like this:And the distance of each class from TEST looks like this,
class_diff:And obviously, the first one is the best match since it has the least difference.