Posts

Showing posts from June, 2024

Week 5 (June 24 – June 30) Progress

This week, I worked on ClassificationPartitionedModel for the ClassificationSVM crossval method. I used the following resources: Libsvm PDF by CSIE :  This document contains the mathematical formulations implemented in LIBSVM, which I will use to cross-check against MATLAB's documentation. README  provided with the LIBSVM package for MATLAB/Octave. The ClassificationPartitionedModel.m file by Ruchika.

Week 4 (June 17 – June 23) Progress

Working on crossval method of the classdef  ClassificationSVM and made a Matlab vs Octave output comparison doc for all the methods that I have implemented so far . This week, I started working on the  crossval  method. I used the following resources: Libsvm PDF by CSIE :  This document contains the mathematical formulations implemented in LIBSVM, which I will use to cross-check against MATLAB's documentation. README  provided with the LIBSVM package for MATLAB/Octave. Matlab's Documentation: crossval Also I am looking at the  crossval  method code written by Ruchika in her fork . I also made a doc for side by side comparison of the outputs of Matlab and Octave to give you (the reader of this blog) a better look at my work. More on this can be found in the previous blog . The link to the doc . I also added two demos to the ClassificationSVM.m file. The next meeting will be on June 25, 2024. Thank you for reading my blog. See you in the next one! 😊

Output comparison between Matlab and Octave for the classdef ClassificationSVM

  Planning on creating a document to compare the outputs of Matlab and Octave of ClassificationSVM. I am planning to create a document that compares MATLAB's and Octave's outputs side by side for each method I have added in the ClassificationSVM classdef. This way, you (the readers of this blog) can get a better idea and also point out any mistakes or bugs. This document will be updated regularly as new methods are added.  Link:  https://drive.google.com/file/d/1jKCygK2FuNDSPukzl3FPgDLfFZWBgmKg/view?usp=sharing

Week 3 (June 10 – June 16) Progress

Added the loss, resubpredict, resubloss, resubmargin method to the classdef ClassificationSVM . This week, I added the loss, resubpredict, resubloss, resubmargin method. I used the following resources: Libsvm PDF by CSIE :  This document contains the mathematical formulations implemented in LIBSVM, which I will use to cross-check against MATLAB's documentation. README provided with the LIBSVM package for MATLAB/Octave. Matlab's Documentation:  resubpredict , resubloss , resubmargin On June 11, 2024, I had a meeting with Andreas. The following points were discussed: I discussed the printf problem  of the svmtrain function. Andreas advised me not to worry about it now as he plans to update the svmtrain and svmpredict functions in the coming months, and we can address this issue towards the end of the GSoC period. MATLAB's ClassificationSVM Supports only binary or one-class SVM. However, my classdef supports multi-class SVM as well. The methods (like margin, loss ) of th...

Week 2 (June 3 – June 9) Progress

Added the margin method to the classdef ClassificationSVM . This week, I completed my work on the margin method. I used the following resources: Libsvm PDF by CSIE : It contains the mathematical formulations implemented in LIBSVM, which I used to cross-check against MATLAB's documentation. README provided with the LIBSVM package for MATLAB/Octave. Matlab's Documentation  on the margin method. Note: The output of the margin method is not matching because of differences in the internal optimizations of MATLAB's implementation and LIBSVM. In the MATLAB documentation, I only found the formula for binary classification . However, LIBSVM supports multi-class classification as well. Therefore, I had to add a condition in the margin method to restrict it to binary class SVM objects. Training and prediction can still be done for multi-class classification. MATLAB's ClassificationSVM only supports binary or one-class SVM. However, my classdef supports multi-class SVM as w...

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 : Taking the inp...

Completion of the Community Bonding Period

Completion of the Community Bonding Period: What I Learned, Communication Channels, and Workflow The Community Bonding Period (May 1 to May 26) just ended. We had our first group meeting on May 9th, where we introduced ourselves and got to know each other. Several important topics were discussed, such as expectations, how to get started, and more. Some key points from that meeting include: Development Environment: Use both the Octave build from the source code and the latest version to ensure compatibility of your code with both. Preferred OS: Linux. Use of Resources: First, try to google solutions to your problems. If you're still unable to resolve an issue, use the forum. Workflow: My mentor, Andreas Bertsatos, suggested making a fork of the statistics repository. We will be making only one pull request at the end of the GSoC period. This approach will simplify the evaluation process and allow us to make frequent changes to our fork without affecting users. Classdef Developme...