Summer of Code - Getting Started: Difference between revisions

Line 61: Line 61:
{{Note|Do you use Octave at your working place or university? Do you have some numerical project in mind?  You are always welcome to '''propose your own projects'''.  If you are passionate about your project, it will be easy to find an Octave developer to mentor and guide you. Please note that for such a proposal to be successful it will almost certainly involve initiating pre-proposal discussion over at the [https://octave.discourse.group Octave Discourse forum].}}
{{Note|Do you use Octave at your working place or university? Do you have some numerical project in mind?  You are always welcome to '''propose your own projects'''.  If you are passionate about your project, it will be easy to find an Octave developer to mentor and guide you. Please note that for such a proposal to be successful it will almost certainly involve initiating pre-proposal discussion over at the [https://octave.discourse.group Octave Discourse forum].}}


== Adding more Classification classes and implementing missing methods in statistics package ==
== Adding Clustering classes and implementing missing methods in statistics package ==


Although a ClassificationKNN class was added in the latest statistics release (1.6.1), it still lacks several methods (only `predict` is available at the moment). This GSoC project aims at implementing more methods, such as crossval, cvloss, lime, loss, margin, partialDependence, plotPartialDependence, etc., as well as adding more classdefs related to classification classes, such as ClassificationGAM, ClassificationDiscriminant, ClassificationSVM, ClassificationNeuralNetwork, ClassificationNaiveBayes, etc. The statistics package, although heavily developed during the past years, still lacks a lot of classdef functionality. The scope is to implement classification classdef objects and their relevant methods in a MATLAB-compatible way.  
Although the statistics package already has `knnsearch` and `rangesearch` functions, it misses classdefs for extending their functionality. Furthermore, the `KDTree` method is currently disabled, because it is very slow and poorly implemented (see GitHub issue [#151](https://github.com/gnu-octave/statistics/issues/151). The goal of this project if to implement`KDTreeSearcher`, `ExhaustiveSearcher`, and `hnswSearcher` classdefs (including their `knnsearch` and `rangesearch` methods) along with the `createns` helper function. Beyond MATLAB compatibility, the KDTree implementation should ideally utilize a compiled oct library for faster construction and queries of points.


* '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
* '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
116

edits