Как упомянуто в этом сообщении , скорректированный показатель R2 можно рассчитать по следующему уравнению, где n
- это число выборок, p
- это количество параметров модели.
adj_r2 = 1-(1-R2)*(n-1)/(n-p-1)
Согласно этому другому сообщению , мы можем получить число параметров нашей модели с помощью model.coef_
.
Однако для Gradient Boosting (GBM) это Кажется, мы не можем получить количество параметров в нашей модели:
from sklearn.ensemble import GradientBoostingRegressor
import numpy as np
X = np.random.randn(100,10)
y = np.random.randn(100,1)
model = GradientBoostingRegressor()
model.fit(X,y)
model.coef_
output >>>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-4650e3f7c16c> in <module>
----> 1 model.coef_
AttributeError: 'GradientBoostingRegressor' object has no attribute 'coef_'
После проверки документации кажется, что GBM состоит из разных оценщиков. Количество оценок равно количеству параметров?
Тем не менее, я не могу получить количество параметров для каждого отдельного оценщика
model.estimators_[0][0].coef_
output >>>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-2-27216ebb4944> in <module>
----> 1 model.estimators_[0][0].coef_
AttributeError: 'DecisionTreeRegressor' object has no attribute 'coef_'
Как рассчитать скорректированный показатель R2 для GBM?