Try Different Classification Models
Instructions are in the task pane to the left. Complete and submit each task one at a time.
load letterdata.mat
traindata
Task 1
histogram(traindata.Character)
Task 2
boxplot(traindata.MADX,traindata.Character)
Make Predictions with a Classification Model
Instructions are in the task pane to the left. Complete and submit each task one at a time.
This code loads the data and fits a kNN model.
load letterdata.mat
traindata
knnmodel = fitcknn(traindata,"Character","NumNeighbors",5,"Standardize",true,"DistanceWeight","squaredinverse");
testdata
Task 1
predLetter = predict(knnmodel,testdata)
Task 2
misclassrate = sum(predLetter ~= testdata.Character)/numel(predLetter)
Task 3
testloss = loss(knnmodel,testdata)
Investigate Misclassifications
Instructions are in the task pane to the left. Complete and submit each task one at a time.
This code loads the data and a trained kNN model and makes a confusion chart.
load letterdata.mat
load predmodel.mat
testdata
predLetter
confusionchart(testdata.Character,predLetter);
Task 1
confusionchart(testdata.Character,predLetter,"RowSummary","row-normalized");
Task 2
falseneg = (testdata.Character == "U") & (predLetter ~= "U");
Task 3
fnfiles = testfiles(falseneg)
fnpred = predLetter(falseneg)
Task 4
badU = readtable(fnfiles(4));
plot(badU.X,badU.Y)
Investigate Features of Misclassified Samples
Instructions are in the task pane to the left. Complete and submit each task one at a time.
This code loads the data and a trained kNN model.
load letterdata.mat
load predmodel.mat
traindata
testdata
predLetter
Task 1
idx = (traindata.Character == "N") | (traindata.Character == "U");
UorN = traindata(idx,:)
idx = (testdata.Character == "U") & (predLetter ~= "U");
fnU = testdata(idx,:)
Task 2
UorN.Character = removecats(UorN.Character);
Task 3
UorNfeat = UorN{:,1:end-1};
fnUfeat = fnU{:,1:end-1};
Task 4
parallelcoords(UorNfeat,"Group",UorN.Character)
Task 5
hold on
plot(fnUfeat(4,:),"k")
hold off