pycytominer icon indicating copy to clipboard operation
pycytominer copied to clipboard

Determine epsilon from the data

Open niranjchandrasekaran opened this issue 3 years ago • 3 comments

The current implementation of sphering in pycytominer uses a constant value (1e-6) for the regularization parameter epsilon.

https://github.com/cytomining/pycytominer/blob/a5dac9e3fa3cdf61e9607f479ba53eac7fed18b1/pycytominer/operations/transform.py#L25

Sphering performance may improve if the value of epsilon is determined directly from the data using @shntnu's approach where epsilon is one-tenth the eigenvalue at the knee of the the eigenvalue curve.

Here is crude implementation of this approach that I wrote used the kneed package. We may want to rewrite and add it to the sphering method in pycytominer.

niranjchandrasekaran avatar Dec 18 '20 23:12 niranjchandrasekaran