Git Product home page Git Product logo

Comments (14)

AdrianAntico avatar AdrianAntico commented on June 19, 2024 1

@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.

avati avatar avati commented on June 19, 2024 1

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.

Akai01 avatar Akai01 commented on June 19, 2024 1

A forecasting package based on ngboost is available on CRAN: https://cran.r-project.org/web/packages/ngboostForecast/index.html

from ngboost.

avati avatar avati commented on June 19, 2024

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.

AdrianAntico avatar AdrianAntico commented on June 19, 2024

@avati What if I make it available in my R package via reticulate calls to Python for now?

from ngboost.

avati avatar avati commented on June 19, 2024

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.

AdrianAntico avatar AdrianAntico commented on June 19, 2024

@avati Thanks for the update!

from ngboost.

avati avatar avati commented on June 19, 2024

Closing this issue for now. Please re-open it if there are any updates!

from ngboost.

acca3003 avatar acca3003 commented on June 19, 2024

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.

Akai01 avatar Akai01 commented on June 19, 2024

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.

AdrianAntico avatar AdrianAntico commented on June 19, 2024

@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.

Akai01 avatar Akai01 commented on June 19, 2024

@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.

AdrianAntico avatar AdrianAntico commented on June 19, 2024

@Akai01 I didn't know it was a single threaded algorithm. Thanks for the heads up

from ngboost.

Akai01 avatar Akai01 commented on June 19, 2024

@AdrianAntico see #156

from ngboost.

Related Issues (20)

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.