MATLAB: How to make cosine Distance classify

classificationcosine distance classifyeuclidean distancemachine learning

Hello! I am a beginner in Matlab.
I have dataset that consisted of 90 data (10 label x 9 data).
Can I get an idea to make classify based on cosine distance or euclidean distance, etc?

Best Answer

If you want to classify a new vector by using the Euclidean or cosine distance between the rows of your matrix and the new vector the try this
data = readmatrix('geo01_KTH.csv');
predictors = data(:, 1:end-1);
labels = data(:, end);
predictors = normalize(predictors, 2, 'range'); % normalize each row to be in range 0-1
x = rand(1, 2352); % generate a random vector
euclidean_dist = pdist2(predictors, x, 'euclidean');
cosine_dist = pdist2(predictors, x, 'cosine');
[~, euclidean_index] = min(euclidean_dist);
[~, cosine_index] = min(cosine_dist);
euclidean_prediction = labels(euclidean_index);
cosine_prediction = labels(cosine_index);