Comments (14)
@avati reticulate is a package in R that allows R users to call Python functions. An example of its use would be the keras pacakge in R, which is a set of reticulate bindings to call the Python functions to build those models. If you plan on making simplification changes, I can wait till the version is in a steady state before I do anything.
from ngboost.
The plan is to have the following new classes: NGBRegressor
, NGBClassifier
, NGBSurvival
etc. in place of the current single NGBoost
which takes different probability distributions and scoring rules as parameters. The new classes will just invoke NGBoost
internally with the appropriate probability distribution, scoring rule and base learner. That's the simplification I was referring to. Otherwise it sounds like reticulate is just providing language bindings, and should be a fine addition/contribution!
from ngboost.
A forecasting package based on ngboost is available on CRAN: https://cran.r-project.org/web/packages/ngboostForecast/index.html
from ngboost.
Hi Adrian,
I would currently put this as low priority for us. I personally am not too familiar or comfortable with R. However we would VERY MUCH welcome contributions for R integration at API level.
from ngboost.
@avati What if I make it available in my R package via reticulate calls to Python for now?
from ngboost.
Hi @AdrianAntico, unfortunately I am not familiar with what reticulate is. Might be good to have R API be part of ngboost to keep the APIs in sync over versions. We do plan to make some simplification changes to the model creation API. Could you create a pull request so we can have a look and discuss?
from ngboost.
@avati Thanks for the update!
from ngboost.
Closing this issue for now. Please re-open it if there are any updates!
from ngboost.
I have created a R version of NGBoost.
https://github.com/acca3003/ngboostR
It is a prelimiar version but you can test example.
from ngboost.
I have created an R interface which is supporting all APIs and their public methods:
https://github.com/Akai01/ngboost
Using R6 (OO programming in R) and reticulate (enables running Python in R)
from ngboost.
@Akai01 I couldn't tell from the reference manual but is the forecasting for single series only at this point or does it support panel data?
from ngboost.
@AdrianAntico It's a univariate time series forecasting technique. Please see the README file for further information on how to supply time series as ts objects. Univariate forecasting is faster since the base algorithm (ngboost) is single-core in nature. I'm also working on a panel version of it, but I don't expect to publish it on CRAN. The modeling strategy is as following:
The fitted forecasting model can be formulated as follows:
y = f(X) + e where X is a matrix of lags (order p) and Fourier transformation of y (in order K <= freq/2 where freq is the frequency of y) and other external variables if available. f() is the base learner and e is the error term which is assumed to be a martingale-difference sequence (A hart assumption!).
The reason for using Fourier transformation is to model seasonality.
The forecasting is done recursively.
from ngboost.
@Akai01 I didn't know it was a single threaded algorithm. Thanks for the heads up
from ngboost.
@AdrianAntico see #156
from ngboost.
Related Issues (20)
- NGBoost is not deterministic when setting 'random_state'
- Python 3.11 support
- quantile regression
- AttributeError: 'NGBClassifier' object has no attribute 'classes_' HOT 2
- estimator compatibility issues with sklearn HOT 2
- Slide deck not accessible HOT 2
- Deprecation warning for np.bool in Y_from_censored function HOT 2
- Is there a way to visualize the distributions ? HOT 2
- Relation to mean-field variational inference.
- AttributeError with np.bool when fitting NGBRegressor with Exponential distribution HOT 3
- Monotonicity of some parameters in distribution HOT 3
- load_boston removed from sklearn
- Support for Incremental Learning? HOT 1
- Linalg error
- Add support for python 3.12
- 'NGBClassifier' object has no attribute 'classes_' HOT 1
- Discrete explanatory variables HOT 5
- RuntimeWarning: overflow encountered in square/exp HOT 3
- About the fisher matrix of Normal Distribution HOT 2
- Use XGBoost as base estimator HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ngboost.