Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Kalman Filter #17

Closed
mandar2812 opened this issue Jun 1, 2016 · 7 comments
Closed

Implement Kalman Filter #17

mandar2812 opened this issue Jun 1, 2016 · 7 comments

Comments

@mandar2812
Copy link
Member

References

  1. Simplified
  2. Wikipedia
@amitkumarj441
Copy link
Member

Hey @mandar2812 ,

I come across Mozilla Science Lab and found your project interesting. I would like to contribute to this project, Please let me know do i need to implement linear kalman filter or something else?
I know python and can try to code in Python.

Cheers,
Amit Kumar Jaiswal

@mandar2812
Copy link
Member Author

Hi @amitkumarj441 ,

Good to see your interest in contributing to development, implementing Kalman filter in python would create some problems in integrating it into the Scala shell environment. If you like, you can work on creating a python port of DynaML using Py4j, this can be a sub-project in itself. If you have used pyspark, this will be something of that sort. I have created a new issue for this purpose: #21.

Regards,
Mandar

@amitkumarj441
Copy link
Member

Hi @mandar2812 ,

I know basics of Scala and can try to code in Scala, but before that i have to use breeze numerical computing library for 1st order DLM so please let me know where i can initiate a PR or do i need to create a folder, if yes, then where?? Please let me know about this!

Thank you
Amit Kumar Jaiswal

@mandar2812
Copy link
Member Author

Sounds great!, I will assign this ticket to you. Take your time to get comfortable with scala if you feel like, or you can pick it up as you go. Also please join the gitter channel. After you sign in using your github account, we can chat in the DynaML chat room and also in private to discuss how you can implement Kalman filter using breeze vectors and DynaML models API. I will keep you posted soon on the details you need to know about the API on gitter.

Looking forward to working with you!

Regards,
Mandar

@mandar2812
Copy link
Member Author

@amitkumarj441 : you can start by forking the repo on your github, and later after we finish the implementation I can merge your PR.

@amitkumarj441
Copy link
Member

Hi @mandar2812 ,

Now Kalman filter implementation is completed.
Do we need to anything more in this part?
If not, then close this issue for now and in-future re-open again this issue for further development!

Cheers,
Amit Kumar Jaiswal

@mandar2812
Copy link
Member Author

So a status report on where this stands ...

  1. KFilter and generalDLM objects use some interesting things for example the type members Loglikelihood, as I understand now in Scala type members are the dual of Generics, so far in DynaML I have used generics but we can convert some of the code to type members to make it more readable.
  2. KFilter and generalDLM should be converted to classes or abstract classes which extend the Model[T, Q, R] interface, by implementing the predict(point: Q): R method
  3. KFilter and generalDLM should be generalized so they can predict targets for input features that are breeze DenseVector[Double] instances.
  4. KFilter and generalDLM can be thought of in general terms, as Dynamic models and a good abstract API of interfaces can be written which is extended for specific examples like linear Kalman filtering with real valued targets and vector/matrix input points.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants