- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 XGBRegressor 与管道。管道包含预处理步骤和模型 ( XGBRegressor )。
以下是完整的预处理步骤。 (我已经定义了 numeric_cols 和 cat_cols)
numerical_transfer = SimpleImputer()
cat_transfer = Pipeline(steps = [
('imputer', SimpleImputer(strategy = 'most_frequent')),
('onehot', OneHotEncoder(handle_unknown = 'ignore'))
])
preprocessor = ColumnTransformer(
transformers = [
('num', numerical_transfer, numeric_cols),
('cat', cat_transfer, cat_cols)
])
my_model = Pipeline(steps = [('preprocessor', preprocessor), ('model', model)])
(my_model.fit(X_train, y_train))
my_model.fit(X_train, y_train, model__early_stopping_rounds=5, model__eval_metric = "mae", model__eval_set=[(X_valid, y_valid)])
model__eval_set=[(X_valid, y_valid)]) and the error is
ValueError: DataFrame.dtypes for data must be int, float or bool.
Did not expect the data types in fields MSZoning, Street, Alley, LotShape, LandContour, Utilities, LotConfig, LandSlope, Condition1, Condition2, BldgType, HouseStyle, RoofStyle, RoofMatl, MasVnrType, ExterQual, ExterCond, Foundation, BsmtQual, BsmtCond, BsmtExposure, BsmtFinType1, BsmtFinType2, Heating, HeatingQC, CentralAir, Electrical, KitchenQual, Functional, FireplaceQu, GarageType, GarageFinish, GarageQual, GarageCond, PavedDrive, PoolQC, Fence, MiscFeature, SaleType, SaleCondition
最佳答案
问题是管道不适合 eval_set。所以,正如你所说,你需要预处理 X_valid。要做到这一点,最简单的方法是在没有“模型”步骤的情况下使用您的管道。在拟合管道之前使用以下代码:
# Make a copy to avoid changing original data
X_valid_eval=X_valid.copy()
# Remove the model from pipeline
eval_set_pipe = Pipeline(steps = [('preprocessor', preprocessor)])
# fit transform X_valid.copy()
X_valid_eval = eval_set_pipe.fit(X_train, y_train).transform (X_valid_eval)
然后在更改 model__eval_set 后适合您的管道,如下所示:
my_model.fit(X_train, y_train, model__early_stopping_rounds=5, model__eval_metric = "mae", model__eval_set=[(X_valid_eval, y_valid)])
关于python - 使用管道的 XGBRegressor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58136107/
我正在使用 XGBRegressor 与管道。管道包含预处理步骤和模型 ( XGBRegressor )。 以下是完整的预处理步骤。 (我已经定义了 numeric_cols 和 cat_cols)
我尝试使用 Python API 中的 XGBRegressor 评分方法,它返回的结果为 0.917。我期望这是回归的 r2 分数。 但是,在同一包上尝试 sklearn 的 r2_score 时,
我想使用 XGBRegressor 来预测一些数据。所以我加载了训练数据和测试数据。 iowa_file_path = '../input/train.csv' test_data_path = '.
Scikit-learn GridSearchCV 用于 XGBRegressor 模型的超参数调整。独立于 XGBRegressor().fit() 中指定的 eval_metric,GridSea
所以我对 Python 中的 ML/AI 游戏相对较新,目前正在研究围绕 XGBoost 自定义目标函数实现的问题。 我的微分方程知识相当生疏,所以我创建了一个带有梯度和粗麻布的自定义 obj 函数,
我是新来的 xgboost并试图通过将它与传统的 gbm 进行比较来学习如何使用它.但是,我注意到 xgboost比gbm慢得多.例子是: from sklearn.model_selection i
我尝试使用spyder和python运行xgboost,但我不断收到此错误: 属性错误:模块“xgboost”没有属性“XGBRegressor” 代码如下: import xgboost as xg
xgboost.XGBRegressor尽管给出了新的随机种子,但似乎产生了相同的结果。 根据xgboost文档 xgboost.XGBRegressor : seed : int Random nu
我在同一数据集上使用具有相同参数的 python 的 XGBRegressor 和 R 的 xgb.train,但得到了不同的预测。 我知道 XGBRegressor 使用“gbtree”,并且我已经
我有一个非常大的数据集(700 万行,54 个特征),我想使用 XGBoost 拟合回归模型。 .为了训练最好的模型,我想使用 BayesSearchCV来自 scikit-optimize对不同的超
我注意到 Python 中的 XGBoost 有两种可能的实现,如所讨论的 here和 here 当我尝试通过两种可能的实现运行相同的数据集时,我注意到结果不同。 代码 import xgboost
我已经知道“xgboost.XGBRegressor 是 XGBoost 的 Scikit-Learn Wrapper 接口(interface)。” 但是它们还有什么不同吗? 最佳答案 xgboos
无论内容如何,将 fit_params 传递到包含 XGBRegressor 的管道都会返回错误 训练数据集已经过热编码并被拆分以用于管道 train_X, val_X, train_y, val
我是一名优秀的程序员,十分优秀!