将Sci-Kit学习分类器的预测结果与原始测试集数据相结合

时间:2018-03-24 14:58:46

标签: python scikit-learn

我正在研究ML项目(二进制分类问题),并且能够成功运行少量Sci-Kit分类器(RF,MLP,Extra Trees)。

我的问题是现在我有“Predict_Probas”结果,我已将其转换为Pandas数据框,我想将其与原始测试数据相结合,稍后我将以CSV格式导出。我需要向管理层展示我的ML项目的最终结果。问题是我采用了以下方法 -

  • 首先将整个数据标准化(使用StandardScaler)
  • 然后使用One-Hot编码对数据进行编码。
  • 然后使用Train_test_split,将标准化和编码数据分成两部分

我现在怎样才能恢复原始测试数据(没有标准化和一热编码),列名完整?

1 个答案:

答案 0 :(得分:0)

通常情况有所不同 - 在进行预处理操作之前,我们以原始格式分割数据集。

预处理操作将针对训练数据集(X_train)执行并传递给估算器。

然后,还将对测试数据集(X_test)执行相同的预处理操作集,以便使用看不见的数据子集估计(得分)模型。

在实践中,通常使用Pipeline()类:

完成
X_train, X_test, y_train, y_test = \
        train_test_split(df['text'], df['label'], test_size=0.25)

pipeline = Pipeline([
    ('scaler',StandardScaler()),
    ('clf', LogisticRegression())
])

pipeline.fit(X_train, y_train)

predicted = pipeline.predict(X_test)