Question
MatLab to caluclate 1. Sum of Squared Distances 2. Angle Between Vectors 3. Number of Common Words The remaining features are the training set, their
MatLab to caluclate
1. Sum of Squared Distances
2. Angle Between Vectors
3. Number of Common Words
The remaining features are the training set, their labels (positive, negative) should be stored in array train_label, and their feature vectors should be stored in array train_feat. 1. Template file cse408_knn.m This function returns the label (positive or negative) predicted by the kNN algorithm for the feature vector of a test file. 2. Function template function pred_label = cse408_knn(test_feat, train_label_set, train_feat_set, k, DstType) 3. Input arguments: a test_feat is the feature vector of a test file (size is the size of the lexicon) b train_label_set is the set of labels for the training set (size is the number of training files) c train_feat_set is the set of feature vectors for the training set (size is the size of lexicon X number of training files) d k is the hyperparameter of kNN algorithm, i.e. the number of neighbors used e DstType is the distance computation method, i.e. 1 for sum of squared distances (SSD) and 2 for angle between vectors and 3 for Number of words in common; 4. Output: a pred_label is the predicted label of the testing file. 1 for positive review, 0 for negative review; 5. Implement your code under %PUT YOUR IMPLEMENTATION HERE tag; 6. Useful Matlab functions sort();
Matlab Code
% function to run KNN classification
function pred_label = cse408_knn(test_feat_set, train_label, train_feat_set, k, DstType)
if DstType == 1 %SSD %PUT YOUR CODE HERE elseif DstType == 2 %Angle Between Vectors %PUT YOUR CODE HERE elseif DstType == 3 %Number of words in common %PUT YOUR CODE HERE dist = -dist; % Why minus? end
%Find the top k nearest neighbors, and do the voting.
[B,I] = sort(dist);
posCt=0; negCt=0; for ii = 1:k if train_label(I(ii)) == 1 posCt = posCt + 1; elseif train_label(I(ii)) == 0 negCt = negCt + 1; end end
if posCt >= negCt pred_label = 1; else pred_label = 0; end
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started