-
-
Notifications
You must be signed in to change notification settings - Fork 245
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
Roadmap #7
Comments
Hi, I'm eager to help I'll take Linear regression, Lasso and ridge. |
Cool! I worked a bit on linear regression a while ago - you can find a very vanilla implementation of it here: https://github.com/rust-ndarray/ndarray-examples/tree/master/linear_regression @Nimpruda |
What does |
Exactly @InCogNiTo124. |
This is an interesting project and I will work on the PCA implementation |
I am the author of the friedrich crate which implements Gaussian Processes. While it is still a work in progress, it is fully featured and I would be happy to help integrate it into the project if you have directions to do so. |
That would be awesome @nestordemeure - I'll have a look at the project and I'll get back to you! Should I open an issue on |
Both are ok with me. An issue in friedrich's repository might help avoid overcrowning linfa with issues but do as you prefer. |
I'd love to take the Nearest Neighbors implementation |
I think this is really great, I just started on a sklearn like implementation of their pipelines, here but more or less for experimentation without anything serious. I'll be sure to keep my eye on issues/goals here and help out where I can. Thanks for the initiative! 👏 |
Hi there! First off, I don't have any experience in ML, but I read a lot about it (and listen to way too many podcasts on the topic). I'm interested in jumping in. I have quite some experience developing in Rust, and specifically high fidelity simulation tools (cf nyx and hifitime). I wrote an Ant Colony Optimizer in Rust. ACOs are great for traversing graphs which represent a solution space, a problem which is considered NP hard if I'm not mistaken. Is that something used at all in ML? If so, would it be of interest to this library, or is there a greater interest (for now) to focus on the problems listed in the first post? Cheers |
Hi @ChristopherRabotin I've never heard of ACOs but as it's in relation with graphs you should check if it has any uses with Markov Chains. |
So far, I haven't found how both can be used together. The closest I found was finding several papers which use Markov Chains to analyze ACOs. |
I would like to take the Naive Bayes one. |
I'll take on Gaussian Processes. |
I'll put some work towards the text tokenization algorithms (CountVectorizer and TFIDF). I'm also extremely interested in a good SVM implementation in Rust. Whoever is working on that, let me know if you'd like some help or anything. |
Please take a look at what is already out there before diving head down into a reimplementation @tyfarnan - I haven't had the time to look at friedrich by @nestordemeure yet (taking a break after the final push to release the blog post and related code 😅) but we should definitely start from there as well as the GP sub-module in rusty-machine. |
@tyfarnan, don't hesitate to contact me via an issue on friedrich's repository once @LukeMathWalker has explicited what is expected of code that is integrated into Linfa and how this integration will be done. |
I did a quick round up of crates that implement the algorithms listed on the roadmap. Probably missed quite a few too but this can be a good starting point. It was just a quick search so I don't know how reliavent each crate is but I tried to make a note if the crate was old and unmaintained. Hopefully this can be useful for helping with algorithm design or saving us from having to reimplement something that is already there. |
Tracking |
I have updated the Issue to make sure it's immediately clear who is working on what and what items are still looking for an owner 👍 |
hey @LukeMathWalker could you add me next to the normalization? I plan to do it by New Year's as I'm still not very experienced with Rust, but I have an idea how to implement it |
Done @InCogNiTo124 🙏 |
Started implementing DBScan in #12. Also if there are suggestions Gaussian Mixture Models would be cool |
Implementation of |
Is there any interest for linfa supporting model selection algorithms such as grid search or hyperparameter tuning? |
@Clara322 I personally think that would be a good candidate for a new linfa crate if you want to open an issue for it specifically then there can be some discussion on the specifics of what the design will look like and the steps to implement it 👍 |
Could it be added "causal inference" like https://github.com/microsoft/dowhy library or would be out of scope for linfa? |
Hi everyone, I've implemented the semi-supervised learning algorithm called dynamic label propagation using Rust. I'm getting accuracy score up to 98% for one of the datasets I've been using. I don't think this algorithm is very well known, but could it be added to the Linfa library? |
there are many interesting pattern which linfa can learn from but we would need first to support graphical models
cool, sure! Once you have a working prototype, submit a PR and I will review the integration. We have to see how to add support for incomplete datasets though |
@bytesnake I'm playing with it, creating graph and identification support. If one day i feel it can be ready i'll submit a PR. https://github.com/vaijira/linfa/tree/causal/algorithms/linfa-causal-inference |
Infrastructure GoalsAside from just adding new algorithms, there are also some infrastructure tasks that will significantly improve the ergonomics and performance of Linfa. They are listed here in descending order of importance, in my opinion:
|
Can I work on adding Linear Discriminant Analysis to linfa? Here is a link to the Sklearn analog |
I've been working on some features like: Categorical Encoding, MAPE and random forest. How can I contribute? |
Does LDA output the dimensionally-reduced data at all? If so it should go into |
Random forests are covered by this PR. Categorical encoding would go into MAPE is a simple function that would go into |
It can perform dimensionality-reduction (transform). It can also just be used to predict classes (predict). The parentheses hold the method analog in Sklearn. Is there a preference for which should be implemented? Also, I am still getting familiar with Rust so it may take a few weeks to get done. |
Preferably implement both if possible. |
Gotcha
…On Sun, Oct 23, 2022, 11:32 PM Yuhan Lin ***@***.***> wrote:
Preferably implement both if possible.
—
Reply to this email directly, view it on GitHub
<#7 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALHYMCWVD5TXQ3UTMGHVNSTWEX7LPANCNFSM4JTOIM2Q>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Are there plans to implement ridge regression in the linear sub-package? Looking for models to contribute. |
Ridge regression should already be in |
What about imputation, similar to scikit imput? |
We don't have that. That can go in |
Hi! |
#229 implements bootstrap aggregation, which is a generalization of random forests, so you could work on that. xgboost and adaboost seem to both be ensemble algorithms that are not necessarily tied to decision trees (correct me if I'm wrong), so we should probably put them in a new algorithm crate called |
I'd like to contribute quantile regression |
Id love to take on Random Forest! I have previously implemented it simplistically in Go, but I'd love to make it happen in Rust. This is my first open source contribution - let me know how I can make it happen :) |
I'd also would like to help this. |
I'm interested in the least angle regression (lars). It seems that PR #115 was trying to implement it but it has paused for 3 years. So I guess it's basically abolished. I'm going to pick it up. |
I am interested in random forests. |
@MarekJReid @giorgiozoppi did either of you take a chance at random forests? |
i look into. At school we did this week. For python binding maturin is perfect. @zenconnor should i look inside scitkit-learn? I was looking at scikit learn implementation, as soon I can i provide a class diagram of that. |
Hello. I want to ask if you accept algorithms that are out of the box with I want to use Rust to achieve machine learning on streaming data. I haven't found crates that suit my needs, so I may implement several algorithms. I wonder if I could integrate them into Linfa in the future. |
In terms of functionality, the mid-term end goal is to achieve an offering of ML algorithms and pre-processing routines comparable to what is currently available in Python's
scikit-learn
.These algorithms can either be:
In no particular order, focusing on the main gaps:
Clustering:
Preprocessing:
Supervised Learning:
friedrich
- tracking issue Integrating friedrich into linfa nestordemeure/friedrich#1)The collection is on purpose loose and non-exhaustive, it will evolve over time - if there is an ML algorithm that you find yourself using often on a day to day, please feel free to contribute it 💯
The text was updated successfully, but these errors were encountered: