首页 > 解决方案 > 给定的特征/列名称与拟合期间给出的数据不匹配。错误

问题描述

我写了以下代码,它给了我这个错误:

“给定的特征/列名称与拟合期间给出的数据不匹配。”

训练和预测数据具有相同的特征。

df_train = data_preprocessing(df_train)

#Split X and Y
X_train = df_train.drop(target_columns,axis=1)
y_train = df_train[target_columns]

#Create a boolean mask for categorical columns
categorical_columns = X_train.columns[X_train.dtypes == 'O'].tolist()

# Create a boolean mask for numerical columns
numerical_columns = X_train.columns[X_train.dtypes != 'O'].tolist()

# Scaling & Encoding objects
numeric_transformer = Pipeline(steps=[('scaler', StandardScaler())])

categorical_transformer = OneHotEncoder(handle_unknown='ignore')

col_transformers = ColumnTransformer(
                        # name, transformer itself, columns to apply
                        transformers=[("scaler_onestep", numeric_transformer, numerical_columns),
                        ("ohe_onestep", categorical_transformer, categorical_columns)])

#Manual PROCESSING
model = MultiOutputClassifier(
        xgb.XGBClassifier(objective="binary:logistic",
                        colsample_bytree = 0.5
                        ))

#Define a pipeline
pipeline = Pipeline([("preprocessing", col_transformers), ("XGB", model)])

pipeline.fit(X_train, y_train)

#Data Preprocessing
predicted = data_preprocessing(predicted)
X_predicted = predicted.drop(target_columns,axis=1)

predictions=pipeline.predict(X_predicted)

我在预测过程中遇到错误。我该如何解决这个问题?我找不到任何解决方案。

标签: pythonpandasscikit-learn

解决方案


我猜测训练数据集中的特征名称与预测数据集不同。例如,如果您在训练数据集中有 19 个特征,则它必须与预测数据集中的 19 个样本相同。该模型无法测试特征,它以前没有见过。


推荐阅读