docId labList = feature:val feature:val feature:val ...
where docId
is a unique identifier for the newsitem (drop it before training), labList
is a space-separated list of numerical labels, and feature:val
are feature-value pairs. Each feature is associated with a word and the value is a function of the frequency of the word in the newsitem. The coding is sparse: only the features with non-zero value are listed. Implement Pegasos from scratch and use it to train four binary classifiers (one-vs-all encoding), each recognizing the presence of one of the four most frequent labels in the dataset (the other labels can be ignored). Study the classification performance for different values of the parameters λ and T in Pegasos. Use external cross-validation to evaluate accuracy.
Extra (for groups only): Implement the Perceptron from scratch, and compare against Pegasos its classification performance on the same dataset (one-vs-all encoding as before) considering the predictor obtained by averaging all the Perceptron models. Consider different numbers of epochs on the training set.
Extra (for groups only): Implement the Bagging algorithm from scratch also using decision stumps as base classifiers and one-vs-all encoding. Study the classification performance considering different numbers of base classifiers.
Extra (for groups only): Apply to the same SVHN dataset a network architecture different from CNN and compare the performance of the two architectures.