调用XGBoost.fit后的Python sklearn NotFitteError
我试图在XGBoost fitted模型上使用sklearn plot_partial_dependence函数,即调用.fit之后。但我一直在犯错误: 未安装错误:此XGBRegressionor实例尚未安装。在使用此估计器之前,使用适当的参数调用“fit” 下面是我使用虚拟数据集采取的步骤 使用虚拟数据完成示例:调用XGBoost.fit后的Python sklearn NotFitteError,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我试图在XGBoost fitted模型上使用sklearn plot_partial_dependence函数,即调用.fit之后。但我一直在犯错误: 未安装错误:此XGBRegressionor实例尚未安装。在使用此估计器之前,使用适当的参数调用“fit” 下面是我使用虚拟数据集采取的步骤 使用虚拟数据完成示例: import numpy as np # dummy dataset from sklearn.datasets import make_regression X_train, y
import numpy as np
# dummy dataset
from sklearn.datasets import make_regression
X_train, y_train = make_regression(n_samples = 1000, n_features = 10)
# Import xgboost
import xgboost as xgb
# Initialize the model
model_xgb_1 = xgb.XGBRegressor(max_depth = 5,
learning_rate = 0.01,
n_estimators = 100,
objective = 'reg:squarederror',
booster = 'gbtree')
# Fit the model
# Not assigning to a new variable
model_xgb_1.fit(X_train, y_train)
# Just to check that .predict can be called and works
# without error
print(np.sum(model_xgb_1.predict(X_train)))
# the above works ok and prints the output
#This next step throws an error:
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(model_xgb_1, X_train, [0])
输出:
import numpy as np
# dummy dataset
from sklearn.datasets import make_regression
X_train, y_train = make_regression(n_samples = 1000, n_features = 10)
# Import xgboost
import xgboost as xgb
# Initialize the model
model_xgb_1 = xgb.XGBRegressor(max_depth = 5,
learning_rate = 0.01,
n_estimators = 100,
objective = 'reg:squarederror',
booster = 'gbtree')
# Fit the model
# Not assigning to a new variable
model_xgb_1.fit(X_train, y_train)
# Just to check that .predict can be called and works
# without error
print(np.sum(model_xgb_1.predict(X_train)))
# the above works ok and prints the output
#This next step throws an error:
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(model_xgb_1, X_train, [0])
662.3468
未安装错误:此XGBRegressionor实例尚未安装。在使用此估计器之前,使用适当的参数调用“fit”
更新
增压器='gblinear'时的解决方法
# CHANGE 1/2: Use booster = 'gblinear'
# as no coef are returned for the case of 'gbtree'
model_xgb_1 = xgb.XGBRegressor(max_depth = 5,
learning_rate = 0.01,
n_estimators = 100,
objective = 'reg:squarederror',
booster = 'gblinear')
# Fit the model
# Not assigning to a new variable
model_xgb_1.fit(X_train, y_train)
# Just to check that .predict can be called and works
# without error
print(np.sum(model_xgb_1.predict(X_train)))
# the above works ok and prints the output
#This next step throws an error:
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(model_xgb_1, X_train, [0])
# CHANGE 2/2
# Add the following:
model_xgb_1.coef__ = model_xgb_1.coef_
model_xgb_1.intercept__ = model_xgb_1.intercept_
# Now call plot_partial_dependence --- It works ok
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(model_xgb_1, X_train, [0])
为避免此错误,请不要影响变量的拟合模型
# Import xgboost
import xgboost as xgb
# Initialize the model
model_xgb_1 = xgb.XGBRegressor(max_depth = max_depth,
learning_rate = shrinkage,
n_estimators = nTrees,
objective = 'reg:squarederror',
booster = 'gbtree')
# Fit the model
model_xgb_1.fit(X_train, y_train)
# Just to check that .predict can be called and works
# without error
model_xgb_1.predict(X_train)
# the above works ok and prints the output
#This next step throws an error:
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(model_xgb_1, X_train, [0])
进行了更改,但这并不能解决错误。我还将编辑问题以反映它。