Week 1 (May 27 - June 2) Progress

Week 1 (May 27 - June 2) Progress

Implemented the constructor of the ClassificationSVM and added the predict method to the classdef.

This week, I started my work by creating the necessary files (ClassificationSVM, ClassificationNeuralNetwork, fitcsvm, fitcnet) and placing them in the appropriate folders.

Note: I have added ClassificationNeuralNetwork and fitcnet to my fork, but not much work has been done on them yet. According to the timeline, I will be focusing on these files at the end of July and August.

I wrote the help documentation for ClassificationSVM and fitcsvm in Texinfo, within their respective files.

  • The fitcsvm Texinfo contains help related to the expected inputs from the user.
  • The ClassificationSVM Texinfo contains help related to the returned object properties.

I studied the svmtrain and svmpredict functions from LIBSVM for Octave. I will be using them for the background algorithm.

I was implementing the following tasks in the classdef:

  1. Taking the inputs and performing validation tests on them.
  2. Converting the inputs to a form that can be fed into the svmtrain function.

I encountered a problem with the second step, as svmtrain was returning a scalar instead of a structure, resulting in an indexing error. I spent a day trying to debug this but did not find a solution. I asked for help on the forum, and Dasergatskov helped me.

This Tuesday, I had a meeting with Andreas, and we discussed the project's progress. Some key points from that meeting:

  • The current SVM-related functions are from LIBSVM 3.25, but the latest available version is 3.32. We will look into upgrading if we have enough time after finishing the main tasks. Since version 3.32 is very similar to 3.25, it won't affect the classdef code and should not be our main focus for now.
  • Emphasis on using the forum and providing regular updates on the blog.

I have added demos and tests for both the constructor and the predict function in the classdef. However, I am facing an issue with the svmtrain function: whenever it is called, it prints the cross-validation accuracy. I want to suppress this output. I tried using evalc(), but it didn't solve the problem. You can see the problem by running the command test ClassificationSVM, which prints the accuracy repeatedly for each test.

Comments

Popular posts from this blog

My Plans for Google Summer of Code 2024: A Brief Overview of My Project and Timeline.

Week 7 (July 8 –July 14) Progress