深度特征合成与遗传特征生成,两种自动特征生成策略的比较

特征工程是从现有特征创建新特征的过程,通过特征工程可以捕获原始特征不具有的与目标列的额外关系。这个过程对于提高机器学习算法的性能非常重要。尽管当数据科学家将特定的领域知识应用特定的转换时,特征工程效果最好,但有一些方法可以以自动化的方式完成,而无需先验领域知识。

在本文中,我们将通过一个示例介绍如何使用 ATOM 包来快速比较两种自动特征生成算法:深度特征合成 (Deep feature Synthesis, DFS) 和遗传特征生成 (Genetic feature generation, GFG)。ATOM 是一个开源 Python 包,可以帮助数据科学家加快对机器学习管道的探索。

基线模型

为了进行对比,作为对比的基线只使用初始特征来训练模型。这里使用的数据是来自 Kaggle的澳大利亚天气数据集的变体。该数据集的目标是预测明天是否会下雨,在目标列 RainTomorrow 上训练一个二元分类器。

  1. import pandas as pd
  2. from atom import ATOMClassifier
  3. # Load the data and have a look
  4. X = pd.read_csv("./datasets/weatherAUS.csv")
  5. X.head()

初始化实例并准备建模数据。这里仅使用数据集的一个子集(1000 行)进行演示。下面的代码估算缺失值并对分类特征进行编码。

  1. atom = ATOMClassifier(X, y="RainTomorrow", n_rows=1e3, verbose=2)
  2. atom.impute()
  3. atom.encode()

输出如下所示。

可以使用 dataset 属性快速检查数据转换后的样子。

  1. atom.dataset.head()

数据现在已准备好。本文将使用 LightGBM 模型进行预测。使用 atom 训练和评估模型非常简单:

  1. atom.run(models="LGB", metric="accuracy")

可以看到测试集上达到了 0.8471 的准确率。下面看看自动特征生成是否可以改善这一点。

 完整文章:

https://www.overfit.cn/post/389b1d229dae4d0fb7b584cb37a350de

posted @ 2022-02-28 10:34  deephub  阅读(82)  评论(0编辑  收藏  举报