Git Product home page Git Product logo

Comments (4)

aecker avatar aecker commented on August 22, 2024

This issue is most likely not a bug but a problem with the data. Component starvation means that one of the components had less data points assigned to it than necessary to estimate the covariance matrix. This usually happens once you start overfitting (obviously not the case here) or if there are outliers in the dataset.

There are two things you can try to diagnose the problem:

  1. Plot the peak-to-peak amplitudes or first PC versus time to check if there are obvious outliers. If that's the case, try removing them manually and re-run the algorithm.

  2. Run MoKsm with verbose=true and maybe have it plot the data after every few iterations (insert a call to plot() in the EM iteration) to see what's happening. Most likely one of the two components converges towards a small number of data points and gets a weird shape.

from moksm.

eywalker avatar eywalker commented on August 22, 2024

I've tried what you suggested - removing outliers and also plotting during EM iteration. However, even when using only the feature dimension with greatest separation between two clusters, I observed that two cluster means converge towards each other with one cluster eventually dropping out. I played around with the parameter settings, but again this doesn't seem to help.

I have created test-case at eywalker/moksm debug branch eywalker/moksm@eb282e9 - it will be great if you can take a look at it by running through the testMoKsm script.

from moksm.

aecker avatar aecker commented on August 22, 2024

I think the problem is the scale of the data. It has to be in muV, but it seems your data is on a different scale (judging from the feature vs. time plot in the image above). In this case the CovRidge and DriftRate parameters (and possibly others, which are sensitive to the scale of the data) need to be scaled down accordingly.

from moksm.

eywalker avatar eywalker commented on August 22, 2024

Scaling was indeed the problem - scaling up the data by a factor of 100 did the trick and now the data clusters correctly using the parameter settings I have configured previously. It looks like that for some reason this particular data-set breaks assumptions made in the gain adjustment inside the SpikeSortingHelper. I'll work on correcting the issue there. Thanks!

from moksm.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.