如何使用TensorFlow和Estimator与提升树一起训练和评估模型?


TensorFlow 和 Estimator 可以结合提升树,借助 “BoostedTreesClassifier” 来训练和评估模型。这个估计器分别使用 “train” 方法和 “evaluate” 方法来训练和评估数据集。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协同创建神经网络?

我们将使用 Keras Sequential API,它有助于构建一个顺序模型,用于处理简单的层堆栈,其中每一层只有一个输入张量和一个输出张量。

包含至少一层卷积层的神经网络称为卷积神经网络。我们可以使用卷积神经网络来构建学习模型。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 基于 Jupyter Notebook 构建。

我们将了解如何使用决策树和 tf.estimator API 训练梯度提升模型。

让我们了解如何使用 Estimator。Estimator 是 TensorFlow 对完整模型的高级表示。它旨在易于扩展和异步训练。

我们将使用 tf.estimator API 训练一个逻辑回归模型。该模型用作其他算法的基线。我们使用泰坦尼克号数据集,目标是根据性别、年龄、等级等特征预测乘客的生存情况。

Estimator 使用特征列来描述模型如何解释原始输入特征。Estimator 期望一个数值输入向量,而特征列将有助于描述模型应该如何转换数据集中每个特征。选择和使用正确的特征列集对于学习有效的模型至关重要。特征列可以是原始特征字典中的一个原始输入,也可以是使用在一个或多个基列上定义的转换创建的新列。

提升树模型被认为是回归和分类中最流行和有效的机器学习方法。它是一种集成技术,它结合了来自许多(10 个、100 个或 1000 个)树模型的预测。

BoostedTreesRegressor 和分类支持 BoostedTreesClassifier。目标是预测一个类别,即生存或不生存。

示例

print("Using boosted trees")
print("Data fits into memory, hence entire dataset per layer is used as a single batch")
print("This would be quick")
n_batches = 1
est = tf.estimator.BoostedTreesClassifier(feature_columns,
n_batches_per_layer=n_batches)
print("The model stops training once the number of trees specified is built")
est.train(train_input_fn, max_steps=100)
print("The model is evaluated")
result = est.evaluate(eval_input_fn)
clear_output()
print(pd.Series(result))

输出

accuracy              0.833333
accuracy_baseline     0.625000
auc                   0.875237
auc_precision_recall  0.859974
average_loss          0.405130
label/mean            0.375000
loss                  0.405130
precision             0.795699
prediction/mean       0.383989
recall                0.747475
global_step         100.000000
dtype: float64

解释

  • 训练了提升树模型。
  • 目标是预测一个类别,可能是生存或不生存。
  • 为此,使用了 BoostedTreesClassifier。

更新于:2021年2月25日

135 次浏览

启动你的职业生涯

完成课程后获得认证

开始
广告