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

NaN predictions #26

Open
ldesreumaux opened this issue Apr 15, 2021 · 4 comments
Open

NaN predictions #26

ldesreumaux opened this issue Apr 15, 2021 · 4 comments
Labels
bug Something isn't working

Comments

@ldesreumaux
Copy link

The following code:

library(agtboost)
data(caravan.train, package = "agtboost")
train <- caravan.train
gbt.train(train$y, train$x, loss_function="logloss", verbose=10, nrounds=500, learning_rate=0.1)

gives the following output:

it: 1  |  n-leaves: 167  |  tr loss: 0.1703  |  gen loss: 0.1686
it: 10  |  n-leaves: 80  |  tr loss: 0.1073  |  gen loss: 0.1041
it: 20  |  n-leaves: 6  |  tr loss: 0.05831  |  gen loss: 0.0536
it: 30  |  n-leaves: 432  |  tr loss: 0.0302  |  gen loss: 0.02553
it: 40  |  n-leaves: 411  |  tr loss: 0.01981  |  gen loss: 0.01515
it: 50  |  n-leaves: 433  |  tr loss: 0.01582  |  gen loss: 0.01117
it: 60  |  n-leaves: 30  |  tr loss: 0.01389  |  gen loss: 0.009244
it: 70  |  n-leaves: 434  |  tr loss: 0.01263  |  gen loss: 0.007985
it: 80  |  n-leaves: 4  |  tr loss: 0.01221  |  gen loss: 0.007566
it: 90  |  n-leaves: 2  |  tr loss: 0.01183  |  gen loss: 0.007186
it: 100  |  n-leaves: 217  |  tr loss: 0.01156  |  gen loss: 0.006912
it: 110  |  n-leaves: 473  |  tr loss: 0.01138  |  gen loss: 0.00674
it: 120  |  n-leaves: 496  |  tr loss: 0.01129  |  gen loss: 0.006649
it: 130  |  n-leaves: 252  |  tr loss: 0.01125  |  gen loss: 0.006602
it: 140  |  n-leaves: 475  |  tr loss: 0.01122  |  gen loss: 0.006576
it: 150  |  n-leaves: 485  |  tr loss: 0.01121  |  gen loss: 0.006563
it: 160  |  n-leaves: 276  |  tr loss: 0.0112  |  gen loss: 0.006554
it: 170  |  n-leaves: 276  |  tr loss: 0.01119  |  gen loss: 0.00655
it: 180  |  n-leaves: 276  |  tr loss: 0.01119  |  gen loss: 0.006547
it: 190  |  n-leaves: 276  |  tr loss: 0.01119  |  gen loss: 0.006546
it: 200  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006545
it: 210  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006545
it: 220  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 230  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 240  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 250  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 260  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 270  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 280  |  n-leaves: 281  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 290  |  n-leaves: 282  |  tr loss: 0.01119  |  gen loss: 0.006544
it: 300  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 310  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 320  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 330  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 340  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 350  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 360  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 370  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 380  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 390  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 400  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 410  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 420  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 430  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 440  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 450  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 460  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 470  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 480  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 490  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan
it: 500  |  n-leaves: 1  |  tr loss: -nan  |  gen loss: -nan

And predict outputs NaN predictions.

@Blunde1
Copy link
Owner

Blunde1 commented Apr 15, 2021

@ldesreumaux Thank you for raising the issue!

I am not able to reproduce the result that you are showing.
With a fresh install from the developer version together with your code

devtools::install_github("Blunde1/agtboost/R-package")
library(agtboost)
data(caravan.train, package = "agtboost")
train <- caravan.train
gbt.train(train$y, train$x, loss_function="logloss", verbose=10, nrounds=500, learning_rate=0.1)

I got the following output

it: 1  |  n-leaves: 2  |  tr loss: 0.2143  |  gen loss: 0.2145
it: 10  |  n-leaves: 2  |  tr loss: 0.1969  |  gen loss: 0.201
it: 20  |  n-leaves: 2  |  tr loss: 0.1913  |  gen loss: 0.1981
it: 30  |  n-leaves: 2  |  tr loss: 0.1887  |  gen loss: 0.1977
C++ object <000001e8ce835610> of class 'ENSEMBLE' <000001e8cdeae5a0>

I obtained almost identical results at consecutive runs.
May I ask which system/compiler you are using, or if you have worked on the internal C++ code?
The tree-depths you obtain are vastly different from mine, so something strange is deffinitely going on here.

@ldesreumaux
Copy link
Author

Indeed, the issue cannot be reproduced with the development version. I can only reproduce it when agtboost is installed with:

install.packages("agtboost")

And it does not seem to be platform-dependent: I reproduced it on Windows 10 and openSUSE 12.3 with R 4.0.5.

@Blunde1
Copy link
Owner

Blunde1 commented Apr 16, 2021

Thank you, I was now able to reproduce it on R 4.0.5 (2021-03-31). Strangely CRAN and development version should be the same. I will look into it.

@Blunde1 Blunde1 added the bug Something isn't working label Oct 12, 2021
@Blunde1
Copy link
Owner

Blunde1 commented Nov 10, 2021

Hoping this will be fixed in v0.9.2.
Waiting for CRAN mirrors to be updated to test with docker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants