RapidLib issueshttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues2017-09-07T14:42:06Zhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/103DTW: refactor2017-09-07T14:42:06ZMichael ZbyszyńskiDTW: refactorIn preparation for FastDTW.
DTW should just take two series as inputs. That is: DTW(series1, series2) with returns a cost. No storage in DTW.
Also, the shorter series should be second:
```
if (tsI.size() < tsJ.size())
return g...In preparation for FastDTW.
DTW should just take two series as inputs. That is: DTW(series1, series2) with returns a cost. No storage in DTW.
Also, the shorter series should be second:
```
if (tsI.size() < tsJ.size())
return getWarpDistBetween(tsJ, tsI, distFn);
````API demonstratorsMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/24Expose activation function for output node2017-08-30T12:43:24ZMichael ZbyszyńskiExpose activation function for output nodeIf we want to use our Perceptron as a classifier, we might want the output node to use a sigmoid activation function.
Easy to add... worthwhile?If we want to use our Perceptron as a classifier, we might want the output node to use a sigmoid activation function.
Easy to add... worthwhile?Future APIMick GriersonMick Griersonhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/82Expose hidden layers to API2017-09-01T10:12:54ZMichael ZbyszyńskiExpose hidden layers to APIThe neural network algorithm could have more hidden layers, but there's no way to set that right now. The algorithm code hasn't been seriously tested, either.
Add a set() and get() method, and make sure they work.The neural network algorithm could have more hidden layers, but there's no way to set that right now. The algorithm code hasn't been seriously tested, either.
Add a set() and get() method, and make sure they work.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/72Handle versioning2017-09-20T10:05:07ZMichael ZbyszyńskiHandle versioningPrint version out in JS console.
Define version as a C++ macro.Print version out in JS console.
Define version as a C++ macro.API v0.2Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/27Implement .initialize()2017-05-02T14:07:05ZMichael ZbyszyńskiImplement .initialize()There should be a method to reset trained models.
Feature request from @rebeccaf There should be a method to reset trained models.
Feature request from @rebeccaf API v0.1Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/115Implement exceptions for malformed data2017-11-22T11:29:11ZMichael ZbyszyńskiImplement exceptions for malformed dataBoth train() and run() methods could have malformed data as input, if the feature vector sizes aren't consistent.
Train() returns false, and run() returns [0]. These methods should throw legible exceptions that could be caught.
Also, ...Both train() and run() methods could have malformed data as input, if the feature vector sizes aren't consistent.
Train() returns false, and run() returns [0]. These methods should throw legible exceptions that could be caught.
Also, unit tests should make sure this works.Future APIMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/94Implement FastDTW2017-09-18T13:49:24ZMichael ZbyszyńskiImplement FastDTWThe current DTW in RapidLib is slow. Port FastDTW from Java.The current DTW in RapidLib is slow. Port FastDTW from Java.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/57Implement nameable inputs.2017-08-16T13:17:22ZMichael ZbyszyńskiImplement nameable inputs.Wekinator lets you name inputs. This could be useful later, for example using a model in the context of a different set.
Implement setting and checking for this feature.Wekinator lets you name inputs. This could be useful later, for example using a model in the context of a different set.
Implement setting and checking for this feature.Future APIMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/68Implement namespace2017-11-08T16:50:01ZMichael ZbyszyńskiImplement namespaceWe should probably have a single level of namespace for our library
rapidmix::
rapidlib::
??We should probably have a single level of namespace for our library
rapidmix::
rapidlib::
??API v0.3https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/17Implement train method in KNN.2017-09-20T10:05:07ZMichael ZbyszyńskiImplement train method in KNN.Currently, training of a knn is wrapped around the addNeighbour function.
1) Implement "train" for real
2) Implement some kind of clear function
Should train clear first, then add? Or just add? How to present these two modes in th...Currently, training of a knn is wrapped around the addNeighbour function.
1) Implement "train" for real
2) Implement some kind of clear function
Should train clear first, then add? Or just add? How to present these two modes in the API?API v0.1Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/67Improve handling of "k"2017-05-02T14:07:05ZMichael ZbyszyńskiImprove handling of "k"MZ just added getK() and setK() to the kNN model. This brings up some interesting issues:
1. I can't think of a case where k == 2 is better than k == 1. Disallow it?
1. Ties go to the first class found. Find a better metric? Dista...MZ just added getK() and setK() to the kNN model. This brings up some interesting issues:
1. I can't think of a case where k == 2 is better than k == 1. Disallow it?
1. Ties go to the first class found. Find a better metric? Distance? Average distance?
1. If setK() asks for a k that is greater than the current number of neighbours, then k is set to the number of neighbours. Maybe kNN should remember the number that the user requested so that k can be increased if new neighbours are added?
1. Using getK() and setK() in a modelSet required casting a baseModel* down the inheritance chain. Is this bad design? How will this work if more parameters are exposed in more models?
This issue should probably be broken up into sub-issues.
Future APIMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/33Improve JSON serialization2017-05-02T14:07:05ZMichael ZbyszyńskiImprove JSON serializationJSON serialization still needs:
- cross platform file paths (take path as arg?)
- option to get JSON as string.
Ideally, this supports our Unity plugin.JSON serialization still needs:
- cross platform file paths (take path as arg?)
- option to get JSON as string.
Ideally, this supports our Unity plugin.API v0.2Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/5Improve neural network training2017-12-12T14:15:00ZMichael ZbyszyńskiImprove neural network trainingI've written neural network training, but it's not the same as Wekinator. Figure out why.
I've written neural network training, but it's not the same as Wekinator. Figure out why.
Future APIMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/48Initialize variables in header?2017-05-02T14:07:05ZMichael ZbyszyńskiInitialize variables in header?C++11 lets use initialize variables in the header. That might streamline code in some places (eg the modelSet constructor).
C++11 lets use initialize variables in the header. That might streamline code in some places (eg the modelSet constructor).
Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/29JSON API inRanges, inBases, outRange, outBase2017-05-02T14:07:05ZMichael ZbyszyńskiJSON API inRanges, inBases, outRange, outBaseI had originally had the API giving inMaxes, etc. This should be changed so the regression object takes Ranges and Bases, which are calculated elsewhere.I had originally had the API giving inMaxes, etc. This should be changed so the regression object takes Ranges and Bases, which are calculated elsewhere.API v0.1Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/62JSON parsing will break if node order is changed2017-08-16T13:17:22ZMichael ZbyszyńskiJSON parsing will break if node order is changedThe current code relies on node order, rather than doing string matching on the node names. It will break if the nodes are presented in a different order than expected.The current code relies on node order, rather than doing string matching on the node names. It will break if the nodes are presented in a different order than expected.Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/42kNN serialization2017-05-02T14:07:05ZMichael ZbyszyńskikNN serializationJSON get/write/read works with regression. Add classification.JSON get/write/read works with regression. Add classification.API v0.2Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/70kNN should remember requested k.2017-09-25T12:59:40ZMichael ZbyszyńskikNN should remember requested k.If setK() asks for a k that is greater than the current number of neighbours, then k is set to the number of neighbours.
kNN should remember the number that the user requested so that k can be increased if new neighbours are added.If setK() asks for a k that is greater than the current number of neighbours, then k is set to the number of neighbours.
kNN should remember the number that the user requested so that k can be increased if new neighbours are added.API v0.2Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/83Logistic Regression2017-07-24T20:16:37ZMichael ZbyszyńskiLogistic RegressionByron Becker expressed interest in a logistic regression model.Byron Becker expressed interest in a logistic regression model.https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/20Make ofx example just like RapidAPI_0062017-09-20T10:05:07ZMichael ZbyszyńskiMake ofx example just like RapidAPI_006Write this:
http://live.codecircle.com/d/daRnfnruuWaxdYLDn
in ofx.Write this:
http://live.codecircle.com/d/daRnfnruuWaxdYLDn
in ofx.API v0.1Michael ZbyszyńskiMichael Zbyszyński