stanfordmlgroup / ngboost

Natural Gradient Boosting for Probabilistic Prediction
Apache License 2.0
1.64k stars 214 forks source link

About the regression problem using NGBoost #154

Closed yang911113 closed 4 years ago

yang911113 commented 4 years ago

Hello professors, Recently, I try to use NGBoost to do house price prediction. But the result seems to be weird, it only slightly floats in a certain value. When I try to use another database, the result is still weird. eg: pred: 206223.15351660148 label: 122500.0 pred: 206220.01918655884 label: 87200.0 pred: 206220.01918655884 label: 71000.0 pred: 206219.86433928832 label: 103400.0 pred: 206219.51956425532 label: 151600.0 pred: 206219.57320352976 label: 103600.0 pred: 206223.1237039902 label: 97600.0 pred: 206229.75965149773 label: 430200.0 pred: 206219.86433928832 label: 105700.0 pred: 206219.72805080027 label: 189700.0 pred: 206226.0452579732 label: 229400.0 pred: 206231.08766741856 label: 186300.0 pred: 206221.73433743903 label: 173400.0 pred: 206226.6751202078 label: 133700.0 pred: 206221.75150650492 label: 235600.0 pred: 206226.66010173922 label: 319700.0 pred: 206231.47243177023 label: 177900.0 pred: 206219.206962057 label: 139100.0 pred: 206219.1570302272 label: 104700.0

I just use the default setting of NGBoost, do you have any suggestions to tune this problem?

Looking forward to your reply!

Thank you so much, Yang

alejandroschuler commented 4 years ago

Hmm, hard to know without further details. Can you share the dataset and your code?

yang911113 commented 4 years ago

Hmm, hard to know without further details. Can you share the dataset and your code?

Thank you so much for your reply!!! Seems it's a little hard to share files here, I will send the dataset and code to your email(alejandro.schuler@gmail.com).

Thanks again for your help!

guyko81 commented 4 years ago

Can you try LogNormal distribution? (* I'm not in the development team at all, just a fan)

from ngboost.distns import LogNormal model = NGBRegressor(Dist=LogNormal) model.fit(X, y)

yang911113 commented 4 years ago

Can you try LogNormal distribution? (* I'm not in the development team at all, just a fan)

from ngboost.distns import LogNormal model = NGBRegressor(Dist=LogNormal) model.fit(X, y)

Hi, Seems the result gets better when I use other distribution types, thanks for your suggestion!

ryan-wolbeck commented 4 years ago

Closing as this seems to be resolved